기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 컨테이너 서비스의 액세스를 관리하려면 다음 절차를 완료하세요.
-
Lightsail 콘솔
에 로그인합니다. -
Lightsail 홈 페이지에서 컨테이너(Containers) 탭을 선택합니다.
-
Amazon ECR 프라이빗 리포지토리에 대한 액세스를 구성하려는 컨테이너 서비스의 이름을 선택합니다.
-
이미지(Images) 탭을 선택합니다.
-
Amazon ECR 프라이빗 리포지토리에 컨테이너 서비스에 대한 액세스 권한을 부여하려면 리포지토리 추가를 선택합니다.
참고
이전에 추가한 Amazon ECR 프라이빗 리포지토리에서 컨테이너 서비스에 대한 액세스를 제거하려면 제거를 선택할 수 있습니다.
-
표시되는 드롭다운에서 액세스하려는 프라이빗 리포지토리를 선택한 다음 추가(Add)를 선택합니다.
Lightsail에서 보안 주체 Amazon 리소스 이름(ARN)을 포함하는 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할을 활성화하는 데 몇 분 정도 걸립니다. 그런 다음 Lightsail은 선택한 Amazon ECR 프라이빗 리포지토리의 권한 정책에 IAM 역할 보안 주체 ARN을 자동으로 추가합니다. 그러면 컨테이너 서비스에 프라이빗 리포지토리와 해당 이미지에 대한 액세스 권한이 부여됩니다. 프로세스가 완료되고 계속(Continue)을 선택할 수 있음을 나타내는 모달이 표시될 때까지 브라우저 창을 닫지 마세요.
-
활성화가 완료되면 계속(Continue)을 선택합니다.
선택한 Amazon ECR 프라이빗 리포지토리가 추가되면 페이지의 Amazon ECR 프라이빗 리포지토리 섹션에 나열됩니다. 이 페이지에는 프라이빗 리포지토리에서 Lightsail컨테이너 서비스로 이미지를 배포하는 방법에 대한 지침이 포함되어 있습니다. 프라이빗 리포지토리에서 이미지를 사용하려면 컨테이너 서비스 배포를 생성할 때 이미지(Image) 값으로 페이지에 표시되는 URI 형식을 지정합니다. 지정한 URI에서 예시
{image tag}
를 배포하려는 이미지의 태그로 바꿉니다. 자세한 내용은 컨테이너 서비스 배포 생성 및 관리를 참조하세요.
AWS CLI를 사용하여 프라이빗 리포지토리에 대한 액세스 관리
AWS Command Line Interface(AWS CLI)를 사용하여 Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스 액세스를 관리하려면 다음 단계를 수행해야 합니다.
중요
과정을 단순화하기 때문에 Lightsail 콘솔을 사용하여 Amazon ECR 프라이빗 리포지토리에 대한 Lightsail 컨테이너 서비스 액세스를 관리하는 것이 좋습니다. 자세한 내용을 알아보려면 이 가이드 앞부분의 Lightsail 콘솔을 사용하여 프라이빗 리포지토리에 대한 액세스 관리를 참조하세요.
-
Amazon ECR 이미지 풀러 IAM 역할 활성화 또는 비활성화 - Lightsail용 AWS CLI
update-container-service
명령을 사용하여 Amazon ECR 이미지 풀러 IAM 역할을 활성화하거나 비활성화합니다. 활성화하면 Amazon ECR 이미지 풀러 IAM 역할에 대한 보안 주체 Amazon 리소스 이름(ARN)이 생성됩니다. 자세한 내용은, 이 설명서의 Amazon ECR 이미지 풀러 IAM 역할 활성화 또는 비활성화 섹션을 참조하세요. -
Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인 - Amazon ECR 이미지 풀러 IAM 역할을 활성화한 후 컨테이너 서비스로 액세스하려는 Amazon ECR 프라이빗 리포지토리에 기존 정책 문이 있는지 확인해야 합니다. 자세한 내용은, 이 설명서 뒷부분의 Amazon ECR 프라이빗 리포지토리에 정책 문이 있는지 확인을 참조하세요.
리포지토리에 기존 정책 문이 있는지에 따라 다음 방법 중 하나를 사용하여 IAM 역할 보안 주체 ARN을 리포지토리에 추가합니다.
-
정책 문이 없는 프라이빗 리포지토리에 정책 추가 - Amazon ECR용 AWS CLI
set-repository-policy
명령을 사용하여 기존 정책이 있는 프라이빗 리포지토리에 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 역할 보안 주체 ARN을 추가합니다. 자세한 내용을 알아보려면, 이 가이드 뒷부분의 정책 문이 없는 프라이빗 리포지토리에 정책 추가를 참조하세요. -
정책 문이 있는 프라이빗 리포지토리에 정책 추가 - 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과 함께 작동하도록 구성을 참조하세요.
-
터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.
-
다음 명령을 입력하여 컨테이너 서비스를 업데이트하고 Amazon ECR 이미지 풀러 IAM 역할을 활성화 또는 비활성화합니다.
aws lightsail update-container-service --service-name
ContainerServiceName
--private-registry-access ecrImagePullerRole={isActive=RoleActivationState
} --regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
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
} --regionus-east-1
-
Amazon ECR mazon ECR 이미지 풀러 IAM 역할 비활성화
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=false
} --regionus-east-1
-
-
경우에 따라 다음 작업을 수행합니다.
-
Amazon ECR 이미지 풀러 역할을 활성화한 경우 - 이전 응답을 받은 후 30초 이상 기다립니다. 그리고 다음 단계로 계속 진행하여 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할의 보안 주체 ARN을 가져옵니다.
-
Amazon ECR 이미지 풀러 역할 비활성화한 경우 - 이전에 Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN을 Amazon ECR 프라이빗 리포지토리의 권한 정책에 추가한 경우 리포지토리에서 해당 권한 정책을 제거해야 합니다. 자세한 내용은 Amazon ECR 사용 설명서의 프라이빗 리포지토리 정책 문 삭제를 참조하세요.
-
-
다음 명령을 입력하여 컨테이너 서비스에 대한 Amazon ECR 이미지 풀러 IAM 역할의 보안 주체 ARN을 가져옵니다.
aws lightsail get-container-services --service-name
ContainerServiceName
--regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
ContainerServiceName
- Amazon ECR 이미지 풀러 IAM 역할 보안 주체 ARN을 가져올 컨테이너 서비스의 이름입니다. -
AwsRegionCode
- 컨테이너 서비스의 AWS 리전 코드(예:us-east-1
)입니다.
예제:
aws lightsail get-container-services --service-name
my-container-service
--regionus-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을 사용하여 설정을 참조하세요.
-
터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.
-
다음 명령을 입력하여 특정 프라이빗 리포지토리에 대한 정책 문을 가져옵니다.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
RepositoryName
- Lightsail 컨테이너 서비스에 대한 액세스를 구성하려는 프라이빗 리포지토리의 이름을 선택합니다. -
AwsRegionCode
- 프라이빗 리포지토리의 AWS 리전 코드(예:us-east-1
)입니다.
예제:
aws ecr get-repository-policy --repository-name
my-private-repo
--regionus-east-1
다음과 같은 응답 중 하나가 표시됩니다.
-
RepositoryPolicyNotFoundException - 프라이빗 리포지토리에 정책 문이 없습니다. 리포지토리에 정책 문이 없으면 이 가이드 뒷부분의 정책 문이 없는 프라이빗 리포지토리에 정책 추가 섹션의 단계를 따릅니다.
-
리포지토리 정책이 발견됨 - 프라이빗 리포지토리에 정책 문이 있으며 요청 응답에 표시됩니다. 리포지토리에 정책 문이 있으면 기존 정책을 복사한 다음 이 가이드 뒷부분의 정책 문이 없는 프라이빗 리포지토리에 정책 추가 섹션의 단계를 따릅니다.
-
정책 문이 없는 프라이빗 리포지토리에 정책 추가
정책 문이 없는 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을 사용하여 설정을 참조하세요.
-
텍스트 편집기를 열고 다음 정책 문을 새 텍스트 파일에 붙여 넣습니다.
{ "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으로 바꿉니다. -
파일을 컴퓨터의 액세스 가능한 위치에
ecr-policy.json
으로 저장합니다(예: Windows의 경우C:\Temp\ecr-policy.json
, macOS 또는 Linux의 경우/tmp/ecr-policy.json
). -
생성된
ecr-policy.json
파일의 경로 위치를 기록해 둡니다. 이 절차의 뒷부분에 나오는 명령에서 이 위치를 지정합니다. -
터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.
-
다음 명령을 입력하여 컨테이너 서비스로 액세스하려는 프라이빗 리포지토리에 대한 정책 문을 설정합니다.
aws ecr set-repository-policy --repository-name
RepositoryName
--policy-text file://path/to/
ecr-policy.json --regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
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 --regionus-east-1
-
macOS 또는 Linux에서
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-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을 사용하여 설정을 참조하세요.
-
터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.
-
다음 명령을 입력하여 특정 프라이빗 리포지토리에 대한 정책 문을 가져옵니다.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
RepositoryName
- Lightsail 컨테이너 서비스에 대한 액세스를 구성하려는 프라이빗 리포지토리의 이름을 선택합니다. -
AwsRegionCode
- 프라이빗 리포지토리의 AWS 리전 코드(예:us-east-1
)입니다.
예제:
aws ecr get-repository-policy --repository-name
my-private-repo
--regionus-east-1
-
-
응답에서 기존 정책을 복사하고 다음 단계로 계속 진행합니다.
다음 예에서 강조 표시된 것처럼 큰따옴표로 묶인
policyText
의 내용만 복사해야 합니다. -
텍스트 편집기를 열고 이전 단계에서 복사한 프라이빗 리포지토리의 기존 정책을 붙여 넣습니다.
결과는 다음 예제와 같아야 합니다.
-
붙여 넣은 텍스트에서
\n
을 줄 바꿈으로 바꾸고 나머지\
를 삭제합니다.결과는 다음 예제와 같아야 합니다.
-
텍스트 파일 끝에 다음 정책 문을 붙여 넣습니다.
, { "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으로 바꿉니다.결과는 다음 예제와 같아야 합니다.
-
파일을 컴퓨터의 액세스 가능한 위치에
ecr-policy.json
으로 저장합니다(예: Windows의 경우C:\Temp\ecr-policy.json
, macOS 또는 Linux의 경우/tmp/ecr-policy.json
). -
ecr-policy.json
파일의 경로 위치를 기록해 둡니다. 이 절차의 뒷부분에 나오는 명령에서 이 위치를 지정합니다. -
터미널(Terminal) 또는 명령 프롬프트(Command Prompt) 창을 엽니다.
-
다음 명령을 입력하여 컨테이너 서비스로 액세스하려는 프라이빗 리포지토리에 대한 정책 문을 설정합니다.
aws ecr set-repository-policy --repository-name
RepositoryName
--policy-text file://path/to/
ecr-policy.json --regionAwsRegionCode
명령에서 아래 예 텍스트를 사용자의 값으로 대체합니다.
-
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 --regionus-east-1
-
macOS 또는 Linux에서
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
다음 예와 비슷한 응답이 나타나는 것을 볼 수 있습니다.
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
-