Lightsail에서 Amazon ECR 프라이빗 리포지토리 액세스 관리 - Amazon Lightsail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lightsail에서 Amazon ECR 프라이빗 리포지토리 액세스 관리

Amazon Elastic Container Registry(Amazon ECR)는 AWS Identity and Access Management (IAM)를 사용하여 리소스 기반 권한이 있는 프라이빗 리포지토리를 지원하는 AWS 관리형 컨테이너 이미지 레지스트리 서비스입니다. Amazon ECR 프라이빗 리포지토리에 대한 액세스 권한을 Amazon Lightsail 컨테이너 서비스에 부여할 수 있습니다. 그런 다음 프라이빗 리포지토리에서 컨테이너 서비스로 이미지를 배포할 수 있습니다.

Lightsail 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Lightsail 컨테이너 서비스와 Amazon ECR 프라이빗 리포지토리에 대한 액세스를 관리할 수 있습니다. 그러나 과정을 단순화하는 Lightsail 콘솔을 사용하는 것이 좋습니다.

컨테이너 서비스에 대한 자세한 내용은 컨테이너 서비스를 참조하세요. Amazon ECR에 대한 자세한 내용은 Amazon ECR 사용 설명서를 참조하세요.

목차

필요한 권한

Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스 액세스를 관리할 사용자는 IAM에서 다음 권한 정책 중 하나를 가지고 있어야 합니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 IAM 자격 증명 권한 추가 및 제거 섹션을 참조하세요.

모든 Amazon ECR 프라이빗 리포지토리에 대한 액세스 권한 부여

다음 권한 정책은 모든 Amazon ECR 프라이빗 리포지토리에 대한 액세스를 구성할 수 있는 권한을 사용자에게 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:*:AwsAccountId:repository/*" } ] }

정책에서 AwsAccountId를 AWS 계정 ID 번호로 바꿉니다.

특정 Amazon ECR 프라이빗 리포지토리에 대한 액세스 권한 부여

다음 권한 정책은 특정 AWS 리전의 특정 Amazon ECR 프라이빗 리포지토리에 대한 액세스를 구성할 수 있는 권한을 사용자에게 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:AwsRegion:AwsAccountId:repository/RepositoryName" } ] }

정책에서 아래 예제 텍스트를 사용자의 값으로 바꿉니다.

  • AwsRegion - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다. Lightsail 컨테이너 서비스는 액세스하려는 프라이빗 리포지토리와 동일한 AWS 리전에 있어야 합니다.

  • AwsAccountId - AWS 계정 ID 번호입니다.

  • RepositoryName - 액세스를 관리하려는 프라이빗 리포지토리의 이름입니다.

다음은 예제 값으로 채워진 권한 정책의 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-private-repo" } ] }

Lightsail 콘솔을 사용하여 프라이빗 리포지토리에 대한 액세스 관리

Lightsail 콘솔을 사용하여 Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스의 액세스를 관리하려면 다음 절차를 완료하세요.

  1. Lightsail 콘솔에 로그인합니다.

  2. Lightsail 홈 페이지에서 컨테이너(Containers) 탭을 선택합니다.

  3. Amazon ECR 프라이빗 리포지토리에 대한 액세스를 구성하려는 컨테이너 서비스의 이름을 선택합니다.

    
                        Lightsail 콘솔의 컨테이너 서비스
  4. 이미지(Images) 탭을 선택합니다.

    
                        Lightsail 콘솔의 컨테이너 서비스 관리 페이지에 있는 이미지(Images) 탭
  5. Amazon ECR 프라이빗 리포지토리에 컨테이너 서비스에 대한 액세스 권한을 부여하려면 리포지토리 추가를 선택합니다.

    참고

    이전에 추가한 Amazon ECR 프라이빗 리포지토리에서 컨테이너 서비스에 대한 액세스를 제거하려면 제거를 선택할 수 있습니다.

    
                        이미지 탭의 Amazon ECR 프라이빗 리포지토리 섹션
  6. 표시되는 드롭다운에서 액세스하려는 프라이빗 리포지토리를 선택한 다음 추가(Add)를 선택합니다.

    
                        Amazon ECR 프라이빗 리포지토리 드롭다운 선택

    Lightsail에서 보안 주체 Amazon 리소스 이름(ARN)을 포함하는 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할을 활성화하는 데 몇 분 정도 걸립니다. 그런 다음 Lightsail은 선택한 Amazon ECR 프라이빗 리포지토리의 권한 정책에 IAM 역할 보안 주체 ARN을 자동으로 추가합니다. 그러면 컨테이너 서비스에 프라이빗 리포지토리와 해당 이미지에 대한 액세스 권한이 부여됩니다. 프로세스가 완료되고 계속(Continue)을 선택할 수 있음을 나타내는 모달이 표시될 때까지 브라우저 창을 닫지 마세요.

    
                        권한이 Amazon ECR 프라이빗 리포지토리에 추가되고 있음을 확인하는 모달
  7. 활성화가 완료되면 계속(Continue)을 선택합니다.

    선택한 Amazon ECR 프라이빗 리포지토리가 추가되면 페이지의 Amazon ECR 프라이빗 리포지토리 섹션에 나열됩니다. 이 페이지에는 프라이빗 리포지토리에서 Lightsail컨테이너 서비스로 이미지를 배포하는 방법에 대한 지침이 포함되어 있습니다. 프라이빗 리포지토리에서 이미지를 사용하려면 컨테이너 서비스 배포를 생성할 때 이미지(Image) 값으로 페이지에 표시되는 URI 형식을 지정합니다. 지정한 URI에서 예시 {image tag}를 배포하려는 이미지의 태그로 바꿉니다. 자세한 내용은 컨테이너 서비스 배포 생성 및 관리를 참조하세요.

    
                        Amazon ECR 프라이빗 리포지토리 추가 후 다음 단계

AWS CLI를 사용하여 프라이빗 리포지토리에 대한 액세스 관리

AWS Command Line Interface(AWS CLI)를 사용하여 Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스 액세스를 관리하려면 다음 단계를 수행해야 합니다.

중요

과정을 단순화하기 때문에 Lightsail 콘솔을 사용하여 Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스 액세스를 관리하는 것이 좋습니다. 자세한 내용을 알아보려면 이 가이드 앞부분의 Lightsail 콘솔을 사용하여 프라이빗 리포지토리에 대한 액세스 관리를 참조하세요.

  1. Amazon ECR 이미지 풀러 IAM 역할 활성화 또는 비활성화 - Lightsail용 AWS CLI update-container-service 명령을 사용하여 Amazon ECR 이미지 풀러 IAM 역할을 활성화하거나 비활성화합니다. 활성화하면 Amazon ECR 이미지 풀러 IAM 역할에 대한 보안 주체 Amazon 리소스 이름(ARN)이 생성됩니다. 자세한 내용은, 이 설명서의 Amazon ECR 이미지 풀러 IAM 역할 활성화 또는 비활성화 섹션을 참조하세요.

  2. Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인 - Amazon ECR 이미지 풀러 IAM 역할을 활성화한 후 컨테이너 서비스로 액세스하려는 Amazon ECR 프라이빗 리포지토리에 기존 정책 문이 있는지 확인해야 합니다. 자세한 내용은, 이 설명서 뒷부분의 Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인을 참조하세요.

    리포지토리에 기존 정책 문이 있는지에 따라 다음 방법 중 하나를 사용하여 IAM 역할 보안 주체 ARN을 리포지토리에 추가합니다.

    1. 정책 문이 없는 프라이빗 리포지토리에 정책 추가 - Amazon ECR용 AWS CLI set-repository-policy 명령을 사용하여 기존 정책이 있는 프라이빗 리포지토리에 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 역할 보안 주체 ARN을 추가합니다. 자세한 내용을 알아보려면, 이 가이드 뒷부분의 정책 문이 없는 프라이빗 리포지토리에 정책 추가를 참조하세요.

    2. 정책 문이 있는 프라이빗 리포지토리에 정책 추가 - Amazon ECR용 AWS CLI set-repository-policy 명령을 사용하여 기존 정책이 없는 프라이빗 리포지토리에 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 역할을 추가합니다. 자세한 내용을 알아보려면 이 가이드 뒷부분의 정책 문이 있는 프라이빗 리포지토리에 정책 추가를 참조하세요.

Amazon ECR 이미지 풀러 IAM 역할 활성화 또는 비활성화

Lightsail 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할을 활성화하거나 비활성화하려면 다음 절차를 완료하세요. Lightsail용 AWS CLI update-container-service 명령을 사용하여 Amazon ECR 이미지 풀러 IAM 역할을 활성화하거나 비활성화할 수 있습니다. 자세한 내용은 AWS CLI 명령 레퍼런스의 update-container-service를 참조하세요.

참고

AWS CLI를 설치하고 Lightsail에 맞게 구성해야 이 절차를 계속할 수 있습니다. 자세한 내용은 AWS CLI가 Lightsail과 함께 작동하도록 구성을 참조하세요.

  1. 터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.

  2. 다음 명령을 입력하여 컨테이너 서비스를 업데이트하고 Amazon ECR 이미지 풀러 IAM 역할을 활성화 또는 비활성화합니다.

    aws lightsail update-container-service --service-name ContainerServiceName --private-registry-access ecrImagePullerRole={isActive=RoleActivationState} --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • ContainerServiceName - Amazon ECR 이미지 풀러 IAM 역할을 활성화하거나 비활성화할 컨테이너 서비스의 이름입니다.

    • RoleActivationState - Amazon ECR 이미지 풀러 IAM 역할의 활성화 상태입니다. true를 지정하여 역할을 활성화하거나 false를 지정하여 비활성화합니다.

    • AwsRegionCode - 컨테이너 서비스의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    • Amazon ECR 이미지 풀러 IAM 역할 활성화

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
    • Amazon ECR mazon ECR 이미지 풀러 IAM 역할 비활성화

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=false} --region us-east-1
  3. 경우에 따라 다음 작업을 수행합니다.

    • Amazon ECR 이미지 풀러 역할을 활성화한 경우 - 이전 응답을 받은 후 30초 이상 기다립니다. 그리고 다음 단계로 계속 진행하여 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할의 보안 주체 ARN을 가져옵니다.

    • Amazon ECR 이미지 풀러 역할 비활성화한 경우 - 이전에 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN을 Amazon ECR 프라이빗 리포지토리의 권한 정책에 추가한 경우 리포지토리에서 해당 권한 정책을 제거해야 합니다. 자세한 내용은 Amazon ECR 사용 설명서의 프라이빗 리포지토리 정책 문 삭제를 참조하세요.

  4. 다음 명령을 입력하여 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할의 보안 주체 ARN을 가져옵니다.

    aws lightsail get-container-services --service-name ContainerServiceName --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • ContainerServiceName - Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN을 가져올 컨테이너 서비스의 이름입니다.

    • AwsRegionCode - 컨테이너 서비스의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    aws lightsail get-container-services --service-name my-container-service --region us-east-1

    응답에서 ECR 이미지 풀러 IAM 역할 보안 주체 ARN을 찾습니다. 역할이 나열되면 복사하거나 기록해 둡니다. 이 가이드의 다음 섹션에 필요합니다. 다음으로, 컨테이너 서비스로 액세스하려는 Amazon ECR 프라이빗 리포지토리에 기존 정책 문이 있는지 확인해야 합니다. 이 설명서의 Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인 섹션으로 계속 진행합니다.

Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인

다음 절차를 사용하여 Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인합니다. Amazon ECR에 AWS CLI get-repository-policy 명령을 사용할 수 있습니다. 자세한 내용은 AWS CLI 명령 레퍼런스의 update-container-service를 참조하세요.

참고

AWS CLI를 설치하고 Amazon ECR에 맞게 구성해야 이 절차를 계속할 수 있습니다. 자세한 내용은 Amazon ECR 사용 설명서의 Amazon ECR을 사용하여 설정을 참조하세요.

  1. 터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.

  2. 다음 명령을 입력하여 특정 프라이빗 리포지토리에 대한 정책 문을 가져옵니다.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • RepositoryName - Lightsail 컨테이너 서비스에 대한 액세스를 구성하려는 프라이빗 리포지토리의 이름을 선택합니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1

    다음과 같은 응답 중 하나가 표시됩니다.

정책 문이 없는 프라이빗 리포지토리에 정책 추가

정책 문이 없는 Amazon ECR 프라이빗 리포지토리에 정책을 추가하려면 다음 절차를 완료하세요. 추가하는 정책에는 Lightsail 컨테이너 서비스의 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN이 포함되어야 합니다. 그러면 컨테이너 서비스가 프라이빗 리포지토리에서 이미지를 배포할 수 있는 액세스 권한이 부여됩니다.

중요

Lightsail은 사용자가 Lightsail 콘솔을 사용하여 액세스를 구성할 때 Amazon ECR 이미지 풀러 역할을 Amazon ECR 프라이빗 리포지토리에 자동으로 추가합니다. 이 경우 이 섹션의 절차를 사용하여 Amazon ECR 이미지 풀러 역할을 프라이빗 리포지토리에 수동으로 추가할 필요가 없습니다. 자세한 내용을 알아보려면 이 가이드 앞부분의 Lightsail 콘솔을 사용하여 프라이빗 리포지토리에 대한 액세스 관리를 참조하세요.

AWS CLI를 사용하여 프라이빗 리포지토리에 정책을 추가할 수 있습니다. 정책이 포함된 JSON 파일을 생성한 다음 Amazon ECR에 대한 set-repository-policy 명령으로 해당 파일을 참조하면 됩니다. 자세한 내용은 AWS CLI 명령 레퍼런스의 set-repository-policy를 참조하세요.

참고

이 절차를 계속하기 전에 AWS CLI를 설치하고 Amazon ECR에 맞게 구성해야 합니다. 자세한 내용은 Amazon ECR 사용 설명서의 Amazon ECR을 사용하여 설정을 참조하세요.

  1. 텍스트 편집기를 열고 다음 정책 문을 새 텍스트 파일에 붙여 넣습니다.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

    텍스트에서 IamRolePrincipalArn을 이 설명서의 앞부분에서 얻은 컨테이너 서비스의 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN으로 바꿉니다.

  2. 파일을 컴퓨터의 액세스 가능한 위치에 ecr-policy.json으로 저장합니다(예: Windows의 경우 C:\Temp\ecr-policy.json, macOS 또는 Linux의 경우 /tmp/ecr-policy.json).

  3. 생성된 ecr-policy.json 파일의 경로 위치를 기록해 둡니다. 이 절차의 뒷부분에 나오는 명령에서 이 위치를 지정합니다.

  4. 터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.

  5. 다음 명령을 입력하여 컨테이너 서비스로 액세스하려는 프라이빗 리포지토리에 대한 정책 문을 설정합니다.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • RepositoryName - 정책을 추가하려는 프라이빗 리포지토리의 이름입니다.

    • path/to/ - 이 설명서의 앞부분에서 생성한 컴퓨터의 ecr-policy.json 파일 경로입니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    • Windows의 경우:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • macOS 또는 Linux에서

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    이제 컨테이너 서비스에서 프라이빗 리포지토리와 해당 이미지에 액세스할 수 있습니다. 리포지토리의 이미지를 사용하려면 컨테이너 서비스 배포에 대한 이미지(Image) 값으로 다음 URI를 지정합니다. URI에서 예제 태그를 배포하려는 이미지의 태그로 바꿉니다. 자세한 내용은 컨테이너 서비스 배포 생성 및 관리를 참조하세요.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    URI에서 아래 예제 텍스트를 사용자의 값으로 바꿉니다.

    • AwsAccountId - AWS 계정 ID 번호입니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    • RepositoryName - 컨테이너 이미지를 배포할 프라이빗 리포지토리의 이름입니다.

    • ImageTag - 컨테이너 서비스에 배포할 프라이빗 리포지토리의 컨테이너 이미지 태그입니다.

    예제:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage

정책 문이 있는 프라이빗 리포지토리에 정책 추가

정책 문이 있는 Amazon ECR 프라이빗 리포지토리에 정책을 추가하려면 다음 절차를 완료하세요. 추가하는 정책에는 기존 정책과 Lightsail 컨테이너 서비스의 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN이 들어 있는 새 정책이 포함되어야 합니다. 이렇게 하면 프라이빗 리포지토리에 대한 기존 권한이 유지되는 동시에 컨테이너 서비스가 프라이빗 리포지토리의 이미지를 배포할 수 있는 액세스 권한도 부여됩니다.

중요

Lightsail은 사용자가 Lightsail 콘솔을 사용하여 액세스를 구성할 때 Amazon ECR 이미지 풀러 역할을 Amazon ECR 프라이빗 리포지토리에 자동으로 추가합니다. 이 경우 이 섹션의 절차를 사용하여 Amazon ECR 이미지 풀러 역할을 프라이빗 리포지토리에 수동으로 추가할 필요가 없습니다. 자세한 내용을 알아보려면 이 가이드 앞부분의 Lightsail 콘솔을 사용하여 프라이빗 리포지토리에 대한 액세스 관리를 참조하세요.

AWS CLI를 사용하여 프라이빗 리포지토리에 정책을 추가할 수 있습니다. 기존 정책과 새 정책이 포함된 JSON 파일을 만들어 이를 수행합니다. 그런 다음 Amazon ECR에 대한 set-repository-policy 명령을 사용하여 해당 파일을 참조합니다. 자세한 내용은 AWS CLI 명령 레퍼런스의 set-repository-policy를 참조하세요.

참고

AWS CLI를 설치하고 Amazon ECR에 맞게 구성해야 이 절차를 계속할 수 있습니다. 자세한 내용은 Amazon ECR 사용 설명서의 Amazon ECR을 사용하여 설정을 참조하세요.

  1. 터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.

  2. 다음 명령을 입력하여 특정 프라이빗 리포지토리에 대한 정책 문을 가져옵니다.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • RepositoryName - Lightsail 컨테이너 서비스에 대한 액세스를 구성하려는 프라이빗 리포지토리의 이름을 선택합니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
  3. 응답에서 기존 정책을 복사하고 다음 단계로 계속 진행합니다.

    다음 예에서 강조 표시된 것처럼 큰따옴표로 묶인 policyText의 내용만 복사해야 합니다.

    
                            정책 문이 없는 프라이빗 리포지토리를 대상으로 한 get-repository-policy 명령에 대한 응답
  4. 텍스트 편집기를 열고 이전 단계에서 복사한 프라이빗 리포지토리의 기존 정책을 붙여 넣습니다.

    결과는 다음 예제와 같아야 합니다.

    
                            정책 문 JSON 파일 예제
  5. 붙여 넣은 텍스트에서 \n을 줄 바꿈으로 바꾸고 나머지 \를 삭제합니다.

    결과는 다음 예제와 같아야 합니다.

    
                            편집된 정책 문 JSON 파일 예제
  6. 텍스트 파일 끝에 다음 정책 문을 붙여 넣습니다.

    , { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
  7. 텍스트에서 IamRolePrincipalArn을 이 설명서의 앞부분에서 얻은 컨테이너 서비스의 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN으로 바꿉니다.

    결과는 다음 예제와 같아야 합니다.

    
                            전체 정책 문 JSON 파일 예제
  8. 파일을 컴퓨터의 액세스 가능한 위치에 ecr-policy.json으로 저장합니다(예: Windows의 경우 C:\Temp\ecr-policy.json, macOS 또는 Linux의 경우 /tmp/ecr-policy.json).

  9. ecr-policy.json 파일의 경로 위치를 기록해 둡니다. 이 절차의 뒷부분에 나오는 명령에서 이 위치를 지정합니다.

  10. 터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.

  11. 다음 명령을 입력하여 컨테이너 서비스로 액세스하려는 프라이빗 리포지토리에 대한 정책 문을 설정합니다.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.

    • RepositoryName - 정책을 추가하려는 프라이빗 리포지토리의 이름입니다.

    • path/to/ - 이 설명서의 앞부분에서 생성한 컴퓨터의 ecr-policy.json 파일 경로입니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    예제:

    • Windows의 경우:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • macOS 또는 Linux에서

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    다음 예와 비슷한 응답이 나타나는 것을 볼 수 있습니다.

    
                            set-repository-policy 명령에 대한 응답

    get-repository-policy 명령을 다시 실행하면 프라이빗 리포지토리에 새로운 추가 정책 문이 표시됩니다. 이제 컨테이너 서비스에서 프라이빗 리포지토리와 해당 이미지에 액세스할 수 있습니다. 리포지토리의 이미지를 사용하려면 컨테이너 서비스 배포에 대한 이미지(Image) 값으로 다음 URI를 지정합니다. URI에서 예제 태그를 배포하려는 이미지의 태그로 바꿉니다. 자세한 내용은 컨테이너 서비스 배포 생성 및 관리를 참조하세요.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    URI에서 아래 예제 텍스트를 사용자의 값으로 바꿉니다.

    • AwsAccountId - AWS 계정 ID 번호입니다.

    • AwsRegionCode - 프라이빗 리포지토리의 AWS 리전 코드(예: us-east-1)입니다.

    • RepositoryName - 컨테이너 이미지를 배포할 프라이빗 리포지토리의 이름입니다.

    • ImageTag - 컨테이너 서비스에 배포할 프라이빗 리포지토리의 컨테이너 이미지 태그입니다.

    예제:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage