Amazon ECS 컨테이너 인스턴스 IAM 역할
Amazon EC2와 외부 인스턴스를 포함한 Amazon ECS 컨테이너 인스턴스는 Amazon ECS 컨테이너 에이전트를 실행하며, 에이전트가 사용자에게 속한다는 것을 서비스에 알리기 위해 IAM 역할이 필요합니다. 컨테이너 인스턴스를 시작해 클러스터에 등록하기 전에 사용할 컨테이너 인스턴스의 IAM 역할을 생성해야 합니다. 역할은 콘솔에 로그인하거나 AWS CLI 명령을 실행하는 데 사용되는 계정에 생성됩니다.
중요
클러스터에 외부 인스턴스를 등록하는 경우 사용하는 IAM 역할에도 Systems Manager 권한이 필요합니다. 자세한 내용은 Amazon ECS Anywhere IAM 역할 섹션을 참조하세요.
Amazon ECS는 전체 Amazon ECS 기능 세트를 사용하는 데 필요한 권한이 포함된 AmazonEC2ContainerServiceforEC2Role
관리형 IAM 정책을 제공합니다. 이 관리형 정책은 IAM 연결에 연결하고, 컨테이너 인스턴스와 연결할 수 있습니다. 또는 사용할 사용자 지정 정책을 생성할 때 관리형 정책을 가이드로 사용할 수 있습니다. 컨테이너 인스턴스 역할은 Amazon ECS 컨테이너 에이전트 및 Docker 대몬이 사용자를 대신하여 AWS API를 호출하는 데 필요한 권한을 제공합니다. 관리형 정책에 대한 자세한 정보는 AmazonEC2ContainerServiceforEC2Role 섹션을 참조하세요.
컨테이너 인스턴스 역할 생성
중요
클러스터에 외부 인스턴스를 등록하는 경우 Amazon ECS Anywhere IAM 역할 섹션을 참조하세요.
장래 기능 및 개선 사항이 도입될 때 Amazon ECS가 이에 대한 권한을 추가할 수 있도록 하려면 수동으로 역할을 생성하고 컨테이너 인스턴스의 관리형 IAM 정책을 연결해야 합니다. 필요한 경우 다음 절차에 따라 관리형 IAM 정책을 연결합니다.
역할을 생성한 후 다음 기능에 대한 추가 권한을 역할에 추가합니다.
Feature | 추가 권한 |
---|---|
Amazon ECR에 컨테이너 이미지가 있음 |
|
CloudWatch Logs에서 컨테이너 인스턴스 모니터링 | |
Amazon S3 버킷에서 구성 파일 호스팅 |
Amazon ECR 권한
컨테이너 인스턴스와 함께 사용하는 Amazon ECS 컨테이너 인스턴스 역할은 Amazon ECR에 대해 다음 IAM 정책 권한을 보유해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
컨테이너 인스턴스에 AmazonEC2ContainerServiceforEC2Role
관리형 정책을 사용하는 경우, 역할에 적절한 권한이 부여됩니다. 역할이 Amazon ECR을 지원하는지 확인하려면 Amazon Elastic Container Service 개발자 안내서의 Amazon ECS 컨테이너 인스턴스 IAM 역할을 참조하세요.
awsvpcTrunking 계정 설정을 설정하는 데 필요한 권한
Amazon ECS에서는 지원되는 Amazon EC2 인스턴스 유형을 사용하여 늘어난 ENI 밀도와 함께 컨테이너 인스턴스를 시작할 수 있습니다. 이 기능을 사용하는 경우 2개의 컨테이너 인스턴스 역할을 생성하는 것이 좋습니다. 역할 하나에 awsvpcTrunking
계정 설정을 활성화하고 ENI 트렁킹이 필요한 작업에 해당 역할을 사용합니다. awsvpcTrunking
계정 설정에 관한 자세한 내용은 계정 설정을 사용하여 Amazon ECS 기능에 액세스 섹션을 참조하세요.
컨테이너 인스턴스와 함께 사용하는 컨테이너 인스턴스 역할에는 계정 설정을 위한 다음 IAM 정책 권한이 있어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:ListAccountSettings", "ecs:ListAttributes", "ecs:PutAccountSetting" ], "Resource": "*" } ] }
컨테이너 인스턴스 역할을 사용하려면 인스턴스 사용자 데이터에 다음을 추가합니다.
#!/bin/bash aws ecs put-account-setting --name awsvpcTrunking --value enabled --region
region
ECS_CLUSTER=MyCluster
>> /etc/ecs/ecs.config EOF
EC2 인스턴스에 사용자 데이터 추가에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Linux 인스턴스를 시작할 때 명령 실행을 참조하세요.
Amazon S3 읽기 전용 액세스
Amazon S3에서 구성 정보를 프라이빗 버킷에 저장하고 컨테이너 인스턴스 IAM 역할에 읽기 전용 액세스를 부여하면 시작 시점에 컨테이너 인스턴스 구성을 안전하고 편리하게 허용할 수 있습니다. ecs.config
파일의 사본을 프라이빗 버킷에 저장했다가 인스턴스가 시작할 때 Amazon EC2 사용자 데이터를 사용하여 AWS CLI를 설치하고 구성 정보를 /etc/ecs/ecs.config
에 복사할 수 있습니다.
ecs.config
파일을 생성하여 Amazon S3에 저장하고 이 구성으로 인스턴스를 시작하는 자세한 방법은 Amazon S3에 Amazon ECS 컨테이너 인스턴스 구성 저장 섹션을 참조하세요.
다음 AWS CLI 명령을 사용하여 컨테이너 인스턴스 역할에 Amazon S3 읽기 전용 액세스를 허용할 수 있습니다. ecsInstanceRole
을 사용자가 생성한 역할 이름으로 바꿉니다.
aws iam attach-role-policy \ --role-name
ecsInstanceRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
IAM 콘솔을 사용하여 역할에 Amazon S3 읽기 전용 액세스(AmazonS3ReadOnlyAccess
)를 추가할 수도 있습니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 역할 권한 업데이트를 참조하세요.
컨테이너 인스턴스 모니터링 권한
컨테이너 인스턴스가 로그 데이터를 CloudWatch Logs로 전송할 수 있으려면 먼저 Amazon ECS 에이전트가 고객의 애플리케이션 로그를 CloudWatch(일반적으로 awslogs
드라이버를 통해 처리됨)에 쓸 수 있는 IAM 정책을 생성해야 합니다. 정책을 생성한 후 ecsInstanceRole
에 정책을 연결합니다.