ECR Permissions

Hoju·2022년 8월 25일
0
post-custom-banner

Amazon ECR은 리소스 기반 권한을 사용하여 리포지토리에 대한 액세스를 제어합니다. 리소스 기반 권한을 사용하면 리포지토리에 액세스할 수 있는 IAM 사용자 또는 역할과 해당 리포지토리에서 수행 가능한 작업을 지정할 수 있습니다.

저는 Codebuild와 ECR를 함께 사용하기 위해서 특정 Codebuild Project가 ECR에 접근 가능하도록 JSON Policy를 구축 한 뒤, ECR 리포지토리에 적용시켜줬습니다.

실습

  1. 먼저 ECR 리포지토리가 생성되어있어야합니다. 생성 하는 방법은 따로 만들지 않겠습니다.
  2. 해당 리포지토리를 선택하면 좌측에 Permissions 부분을 선택합니다.
  3. 그런 다음 정책 JSON 편집을 선택합니다.
  4. JSON 편집기에 아래와 같은 JSON을 입력합니다.(사용자에 맞게 바꿔 주셔야합니다)
{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"CodeBuildAccessPrincipal",
         "Effect":"Allow",
         "Principal":{
            "Service":"codebuild.amazonaws.com"
         },
         "Action":[
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability"
         ],
         "Condition":{
            "StringEquals":{
               "aws:SourceArn":"arn:aws:codebuild:<region>:<aws-account-id>:project/<project-name>",
               "aws:SourceAccount":"<aws-account-id>"
            }
         }
      },
      {
         "Sid":"CodeBuildAccessCrossAccount",
         "Effect":"Allow",
         "Principal":{
            "AWS":"arn:aws:iam::<AWS-account-ID>:root"
         },
         "Action":[
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability"
         ]
      }
   ]
}
  • 적용 예시
  1. 저장을 합니다. 그럼 아래 이미지 처럼 ECR 리포지토리에 대한 Permissions 권한이 적용됩니다.
profile
Devops가 되고 싶은 청소년
post-custom-banner

0개의 댓글