IT/AWS
[AWS] 타계정에서 메인계정 ECR repository를 push/pull하는 권한 설정 방법
kimdragon
2022. 6. 10. 00:21
반응형
Intro
ECR은 AWS에서 제공하는 docker hub repository 입니다. 만약 여러 AWS계정을 사용할 경우 (e.g. prod/staging/dev 등등) ECR을 각각 가져갈 필요없이 main으로 사용할 AWS계정에서 ECR을 만들고 타계정에서 메인계정의 ECR을 접근할 수 있도록 설정해주면 됩니다. 오늘은 이 작업을 어떻게 하는지에 대해 알려드리도록 하겠습니다. 물론 AWS DOC에 잘 나와있습니다만, 잘 이해가 되지 않는 부분도 있기 때문에 명확하게 설정하는 방법을 알려드리겠습니다.
타계정에서 메인계정 ECR에 push/pull 하는 방법
타계정(secondary account) 에서
- 타계정의 IAM user에 "AmazonEC2ContainerRegistryPowerUser" 권한 추가
메인계정(main account) 에서
- 메인 계정의 ECR repository에 아래와 같은 권한 추가 [ECR] - [Repositories]- [Permissions]
- 해당권한 설정은 Registry permissions 설정이 아님을 주의해야합니다.
- 메인 계정의 ECR에 권한이 필요한 repository에 각각 설정 필요
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPushPull",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::secondary_account_id:user/iam_user_name"
},
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:CompleteLayerUpload",
"ecr:GetDownloadUrlForLayer",
"ecr:InitiateLayerUpload",
"ecr:PutImage",
"ecr:UploadLayerPart"
]
}
]
}
docker pull/push 테스트
타계정의 iam user key를 aws configure 설정한 뒤 docker login
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin main_account_id.dkr.ecr.ap-northeast-2.amazonaws.com
위 상태에서 docker pull main_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/repo_name:tag
했을때 잘되는지 확인, push도 동일하게 테스트 진행
참고 URL
https://aws.amazon.com/ko/premiumsupport/knowledge-center/secondary-account-access-ecr/
반응형