업스트림 레지스트리를 Amazon ECR 프라이빗 레지스트리와 동기화하기 위한 IAM 권한
업스트림 레지스트리를 Amazon ECR 프라이빗 레지스트리와 동기화하기 위한 IAM 권한 (IAM permissions required to sync an upstream registry with an Amazon ECR private registry)
프라이빗 레지스트리에 인증하고 이미지를 푸시/풀하는 데 필요한 Amazon ECR API 권한 외에도, 풀 스루 캐시 규칙을 효과적으로 사용하려면 몇 가지 추가 권한이 필요해요.
출처: 문서
본문
프라이빗 레지스트리에 인증하고 이미지를 푸시/풀하는 데 필요한 Amazon ECR API 권한 외에도, 풀 스루 캐시 규칙을 효과적으로 사용하려면 다음 추가 권한이 필요해요.
- ecr:CreatePullThroughCacheRule – 풀 스루 캐시 규칙을 생성할 권한을 부여해요. 이 권한은 ID 기반 IAM 정책(identity-based IAM policy)을 통해 부여해야 해요.
- ecr:BatchImportUpstreamImage – 외부 이미지를 검색해 프라이빗 레지스트리로 가져올 권한을 부여해요. 이 권한은 프라이빗 레지스트리 권한 정책, ID 기반 IAM 정책, 또는 리소스 기반 레포지토리 권한 정책을 사용해 부여할 수 있어요. 레포지토리 권한 사용에 대한 자세한 내용은 "Private repository policies in Amazon ECR"을 참고하세요.
- ecr:CreateRepository – 프라이빗 레지스트리에 레포지토리를 생성할 권한을 부여해요. 캐시된 이미지를 저장하는 레포지토리가 아직 없을 때 이 권한이 필요해요. 이 권한은 ID 기반 IAM 정책이나 프라이빗 레지스트리 권한 정책으로 부여할 수 있어요.
레지스트리 권한 사용하기 (Using registry permissions)
Amazon ECR 프라이빗 레지스트리 권한을 사용해 개별 IAM 엔터티의 풀 스루 캐시 사용 권한을 범위 지정할 수 있어요. IAM 엔터티가 IAM 정책으로 부여받은 권한이 레지스트리 권한 정책이 부여하는 권한보다 많으면 IAM 정책이 우선해요. 예를 들어 사용자가 ecr:* 권한을 부여받았다면 레지스트리 수준에서 추가 권한이 필요하지 않아요.
- Amazon ECR 콘솔(https://console.aws.amazon.com/ecr/)을 엽니다.
- 탐색 모음에서 프라이빗 레지스트리 권한 문(statement)을 구성할 리전을 선택합니다.
- 탐색 창에서 Private registry, Registry permissions을 선택합니다.
- Registry permissions 페이지에서 Generate statement을 선택합니다.
- 만들고 싶은 각 풀 스루 캐시 권한 정책 문에 대해 다음을 수행합니다.
- Policy type에서 Pull through cache policy를 선택합니다.
- Statement id에 풀 스루 캐시 문 정책의 이름을 제공합니다.
- IAM entities에서 정책에 포함할 사용자, 그룹, 역할을 지정합니다.
- Repository namespace에서 정책과 연결할 풀 스루 캐시 규칙을 선택합니다.
- Repository names에서 규칙을 적용할 레포지토리 기본 이름을 지정합니다. 예를 들어 Amazon ECR Public의 Amazon Linux 레포지토리를 지정하려면 레포지토리 이름은 amazonlinux가 됩니다.
AWS CLI를 사용해 프라이빗 레지스트리 권한을 지정하려면 다음 AWS CLI 명령을 사용합니다. 먼저 레지스트리 정책 내용이 담긴 ptc-registry-policy.json이라는 로컬 파일을 만듭니다. 다음 예제는 ecr-pull-through-cache-user에게 이전에 만든 풀 스루 캐시 규칙과 연결된 업스트림 소스인 Amazon ECR Public에서 이미지를 풀하고 레포지토리를 생성할 권한을 부여합니다.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "PullThroughCacheFromReadOnlyRole",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:user/ecr-pull-through-cache-user"
},
"Action": [
"ecr:CreateRepository",
"ecr:BatchImportUpstreamImage"
],
"Resource": "arn:aws:ecr:us-east-1:111122223333:repository/ecr-public/*"
}
]
}
중요: ecr:CreateRepository 권한은 캐시된 이미지를 저장하는 레포지토리가 아직 존재하지 않을 때만 필요해요. 예를 들어 레포지토리 생성 작업과 이미지 풀 작업이 관리자와 개발자처럼 서로 다른 IAM 프린시펄에 의해 수행되는 경우가 해당돼요.
put-registry-policy 명령을 사용해 레지스트리 정책을 설정합니다.
aws ecr put-registry-policy \
--policy-text file://ptc-registry.policy.json
다음 단계 (Next steps)
풀 스루 캐시 규칙 사용을 시작할 준비가 되면 다음 단계를 진행하세요.
- 풀 스루 캐시 규칙 생성하기. 자세한 내용은 "Creating a pull through cache rule in Amazon ECR"을 참고하세요.
- 레포지토리 생성 템플릿 만들기. 레포지토리 생성 템플릿은 풀 스루 캐시 액션 중에 Amazon ECR이 대신 만드는 새 레포지토리에 사용할 설정을 정의할 수 있게 해줘요. 자세한 내용은 "Templates to control repositories created during a pull through cache, create on push, or replication action"을 참고하세요.