Amazon ECS에서 Amazon ECR 이미지 사용 - Amazon ECR

Amazon ECS에서 Amazon ECR 이미지 사용

Amazon ECR 프라이빗 리포지토리를 사용하여 Amazon ECS 태스크에서 가져올 수 있는 컨테이너 이미지 및 아티팩트를 호스팅할 수 있습니다. 이 항목이 작동하려면 Amazon ECS 또는 Fargate, 컨테이너 에이전트에 ecr:BatchGetImage, ecr:GetDownloadUrlForLayerecr:GetAuthorizationToken API를 만들 수 있는 권한이 있어야 합니다.

필수 IAM 권한

다음 표에는 Amazon ECR 프라이빗 리포지토리에서 태스크를 가져오는 데 필요한 권한을 제공하는 각 시작 유형에 사용할 IAM 역할이 표시되어 있습니다. Amazon ECS는 필요한 권한이 포함된 관리형 IAM 정책을 제공합니다.

시작 유형 IAM 역할 AWS 관리형 IAM 정책
Amazon EC2 인스턴스의 Amazon ECS

Amazon ECS 클러스터에 등록된 Amazon EC2 인스턴스와 연결된 컨테이너 인스턴스 IAM 역할을 사용합니다. 자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서컨테이너 인스턴스 IAM 역할을 참조하세요.

AmazonEC2ContainerServiceforEC2Role

자세한 내용은 Amazon Elastic Container Service 개발자 안내서AmazonEC2ContainerServiceforEC2Role 섹션을 참조하세요.

Fargate의 Amazon ECS

Amazon ECS 태스크 정의에서 참조하는 태스크 실행 IAM 역할을 사용하세요. 자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서태스크 실행 IAM 역할을 참조하세요.

AmazonECSTaskExecutionRolePolicy

자세한 내용은 Amazon Elastic Container Service 개발자 안내서AmazonECSTaskExecutionRolePolicy 섹션을 참조하세요.

외부 인스턴스의 Amazon ECS

Amazon ECS 클러스터에 등록된 온프레미스 서버 또는 가상 머신(VM)과 연결된 컨테이너 인스턴스 IAM 역할을 사용하세요. 자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서컨테이너 인스턴스 Amazon ECS 역할을 참조하세요.

AmazonEC2ContainerServiceforEC2Role

자세한 내용은 Amazon Elastic Container Service 개발자 안내서AmazonEC2ContainerServiceforEC2Role 섹션을 참조하세요.

중요

AWS 관리형 IAM 정책은 사용하는 데 필요하지 않을 수 있는 추가 권한을 포함합니다. 이 경우 이 항목들은 Amazon ECR 프라이빗 리포지토리에서 가져오는 데 필요한 최소 권한입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Amazon ECS 태스크 정의에서 Amazon ECR 이미지 지정

Amazon ECS 태스크 정의를 만들 때 Amazon ECR 프라이빗 리포지토리에서 호스팅되는 컨테이너 이미지를 지정할 수 있습니다. 태스크 정의에서 Amazon ECR 이미지에 대해 전체 registry/repository:tag 이름 지정을 사용하고 있는지 확인하세요. 예: aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:latest.

다음 작업 정의 조각은 Amazon ECS 작업 정의의 Amazon ECR에서 호스트되는 컨테이너 이미지를 지정하는 데 사용할 구문을 보여줍니다.

{ "family": "task-definition-name", ... "containerDefinitions": [ { "name": "container-name", "image": "aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:latest", ... } ], ... }