설명
ECR 리포지토리 정책은 특정 리포지토리에 대한 접근 권한을 부여하거나 제한합니다. 정책이 없다고 리포지토리가 공개되는 것은 아니며, 같은 계정에서는 IAM 자격 증명 정책으로도 권한을 부여할 수 있습니다.
잠재적 영향
실제 사용 주체를 고려하지 않고 광범위한 리포지토리 정책을 추가하면 의도하지 않은 이미지 접근을 허용할 수 있습니다.
해결 방법
유효한 IAM 권한을 먼저 확인하고 리포지토리 정책이 필요한 경우 허용할 주체와 작업만 지정하세요. 이미지 송수신 인증에 필요한 ecr:GetAuthorizationToken 권한은 IAM 정책으로 부여하세요.
예시
변경 후는 지정한 역할에 두 이미지 조회 작업을 허용하는 예시입니다. 역할 ARN은 실제 허용할 역할로 바꾸세요.
변경 전
hcl
resource "aws_ecr_repository" "example" {
name = "bar"
}
변경 후
hcl
resource "aws_ecr_repository" "example" {
name = "bar"
}
resource "aws_ecr_repository_policy" "example_policy" {
repository = aws_ecr_repository.example.name
policy = <<EOF
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "new policy",
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::123456789012:role/ImagePuller"},
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
]
}
]
}
EOF
}