반응형
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/
반응형
'IT > AWS' 카테고리의 다른 글
[AWS] IRSA 란? (IAM Roles for Service Accounts) (0) | 2022.09.09 |
---|---|
[AWS] EKS내부 pod가 Node의 IAM Role 권한 가져오지 못하는 이슈 (feat.IMDSv2) (1) | 2022.07.20 |
[AWS] PaaS형 서비스 Auto Failover에 대해(elasticache, RDS, AuroraDB) (0) | 2022.06.01 |
[AWS] Cognito를 사용하여 앱(모바일) 유저에 IAM Role 부여하기 (0) | 2022.04.19 |
[AWS] VPC flow log란? (생성 방법) (0) | 2022.04.14 |