Amazon ECR에서 교차 계정 복제를 위한 레지스트리 권한 부여
Amazon ECR에서 교차 계정 복제를 위한 레지스트리 권한 부여
교차 계정 정책 유형은 AWS 보안 주체에게 권한을 부여해 소스 레지스트리에서 내 레지스트리로 리포지토리를 복제할 수 있게 하는 데 사용됩니다. 기본적으로 자체 레지스트리 내에서 교차 리전 복제를 구성할 권한이 있습니다. 다른 계정에 콘텐츠를 내 레지스트리로 복제할 권한을 부여하는 경우에만 레지스트리 정책을 구성하면 됩니다. 레지스트리 정책은 ecr:ReplicateImage API 작업에 대한 권한을 부여해야 합니다. 이 API는 리전 또는 계정 간에 이미지를 복제할 수 있는 내부 Amazon ECR API입니다. 또한 ecr:CreateRepository 권한을 부여할 수 있으며, 이는 리포지토리가 아직 존재하지 않는 경우 Amazon ECR이 내 레지스트리에 리포지토리를 만들 수 있게 합니다. ecr:CreateRepository 권한이 제공되지 않으면 소스 리포지토리와 같은 이름의 리포지토리를 내 레지스트리에 수동으로 생성해야 합니다. 둘 중 어느 것도 수행되지 않으면 복제가 실패합니다.
출처: 문서
본문
실패한 CreateRepository 또는 ReplicateImage API 작업은 CloudTrail에 표시됩니다.
다음 단계에 따라 콘솔에서 교차 계정 복제를 위한 레지스트리 권한을 설정합니다.
- https://console.aws.amazon.com/ecr/ 에서 Amazon ECR 콘솔을 엽니다.
- 탐색 모음에서 레지스트리 정책을 구성할 리전을 선택합니다.
- 탐색 창에서 Private registry, Features & Settings를 선택한 다음 Permissions를 선택합니다.
- Registry permissions 페이지에서 Generate statement를 선택합니다.
- 정책 생성기를 사용해 정책 문을 정의하려면 다음 단계를 완료합니다.
- Policy type에서 Replication - cross account를 선택합니다.
- Statement id에 고유한 문 ID를 입력합니다. 이 필드는 레지스트리 정책의 Sid로 사용됩니다.
- Accounts에 권한을 부여할 각 계정의 계정 ID를 입력합니다. 여러 계정 ID를 지정할 때는 쉼표로 구분합니다.
- Save를 선택합니다.
registry_policy.json이라는 파일을 만들고 레지스트리 정책으로 채웁니다.
JSON
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"ReplicationAccessCrossAccount",
"Effect":"Allow",
"Principal":{
"AWS":"arn:aws:iam::111122223333:root"
},
"Action":[
"ecr:CreateRepository",
"ecr:ReplicateImage"
],
"Resource": [
"arn:aws:ecr:us-west-2:444455556666:repository/*"
]
}
]
}
정책 파일을 사용해 레지스트리 정책을 만듭니다.
aws ecr put-registry-policy \
--policy-text file://registry_policy.json \
--region us-west-2
확인을 위해 레지스트리의 정책을 검색합니다.
aws ecr get-registry-policy \
--region us-west-2
더 알아보기 (Learn more)
- Amazon ECR 프라이빗 레지스트리 권한
- Amazon ECR 프라이빗 리포지토리 정책
- Amazon ECR 프라이빗 이미지 복제