Amazon ECS 컨테이너 인스턴스 IAM 역할 - Amazon Elastic Container Service

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

Amazon ECS 컨테이너 인스턴스 IAM 역할

Amazon EC2와 외부 인스턴스를 포함한 Amazon ECS 컨테이너 인스턴스는 Amazon ECS 컨테이너 에이전트를 실행하며, 에이전트가 사용자에게 속한다는 것을 서비스에 알리기 위해 IAM 역할이 필요합니다. 컨테이너 인스턴스를 시작해 클러스터에 등록하기 전에 사용할 컨테이너 인스턴스의 IAM 역할을 생성해야 합니다. 역할은 콘솔에 로그인하거나 AWS CLI 명령을 실행하는 데 사용하는 계정에서 생성됩니다.

중요

클러스터에 외부 인스턴스를 등록하는 경우 사용하는 IAM 역할에도 Systems Manager 권한이 필요합니다. 자세한 설명은 ECS Anywhere IAM 역할 섹션을 참조하세요.

Amazon ECS는 전체 Amazon ECS 기능 세트를 사용하는 데 필요한 권한이 포함된 AmazonEC2ContainerServiceforEC2Role 관리형 IAM 정책을 제공합니다. 이 관리형 정책은 IAM 연결에 연결하고, 컨테이너 인스턴스와 연결할 수 있습니다. 또는 사용할 사용자 지정 정책을 생성할 때 관리형 정책을 가이드로 사용할 수 있습니다. 컨테이너 인스턴스 역할은 Amazon ECS 컨테이너 에이전트와 Docker 데몬이 사용자를 대신하여 AWS API를 호출하는 데 필요한 권한을 제공합니다. 관리형 정책에 대한 자세한 정보는 아마존 EC2 EC2 역할 ContainerServicefor 섹션을 참조하세요.

Amazon ECS에서는 지원되는 Amazon EC2 인스턴스 유형을 사용하여 늘어난 ENI 밀도와 함께 컨테이너 인스턴스를 시작할 수 있습니다. 이 기능을 사용할 때는 컨테이너 인스턴스 역할을 2개 생성하는 것이 좋습니다. 역할 하나에 awsvpcTrunking 계정 설정을 활성화하고 ENI 트렁킹이 필요한 작업에 해당 역할을 사용하십시오. awsvpcTrunking계정 설정에 대한 자세한 내용은 을 참조하십시오. 계정 설정을 통해 Amazon ECS 기능에 액세스

컨테이너 인스턴스(ecsInstanceRole) 역할 생성

중요

클러스터에 외부 인스턴스를 등록하는 경우 ECS Anywhere IAM 역할 섹션을 참조하세요.

장래 기능 및 개선 사항이 도입될 때 Amazon ECS가 이에 대한 권한을 추가할 수 있도록 하려면 수동으로 역할을 생성하고 컨테이너 인스턴스의 관리형 IAM 정책을 연결해야 합니다. 필요한 경우 다음 절차를 사용하여 관리형 IAM 정책을 연결하십시오.

AWS Management Console
컨테이너 인스턴스의 ecsInstanceRole IAM 역할을 생성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택한 후 역할 생성(Create role)을 선택합니다.

  3. AWS 서비스 역할 유형을 선택한 다음 다른 서비스의 사용 사례에서 Elastic AWS Container Service를 선택합니다.

  4. Elastic Container Service에 대한 EC2 역할 사용 사례를 선택하고 다음: 권한(Next: Permissions)을 선택합니다.

  5. 권한 정책 섹션에서 AmazonEC2 ContainerServicefor EC2Role 정책이 선택되었는지 확인한 후 다음을 선택합니다.

    중요

    Amazon EC2 ContainerServicefor EC2Role 관리형 정책을 컨테이너 인스턴스 IAM 역할에 연결해야 합니다. 그렇지 않으면 를 사용하여 클러스터를 생성할 때 오류가 발생합니다. AWS Management Console

  6. 역할 이름에ecsInstanceRole입력하고 선택적으로 설명을 입력할 수 있습니다.

  7. Add tags(태그 추가)(선택 사항)에서 정책과 연결할 사용자 지정 태그를 지정한 다음, Next: Review(다음: 검토)를 선택합니다.

  8. 역할 정보를 검토한 후 역할 생성을 선택하여 마칩니다.

AWS CLI

모든 사용자 입력을 자체 값으로 바꾸십시오.

  1. 다음 콘텐츠를 가진 instance-role-trust-policy.json이라는 파일을 생성합니다:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. 다음 명령을 사용하여 신뢰 정책 문서를 사용하여 인스턴스 IAM 역할을 생성합니다.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. create-instance-profile명령을 ecsInstanceRole-profile 사용하여 이름을 지정한 인스턴스 프로필을 생성합니다.

    aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile

    응답의 예

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2022-04-12T23:53:34.093Z", "InstanceProfileName": "ecsInstanceRole-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile" } }
  4. ecsInstanceRole 인스턴스 프로파일에 ecsInstanceRole-profile 역할을 추가합니다.

    aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole-profile \ --role-name ecsInstanceRole
  5. 다음 명령을 사용하여 AmazonEC2ContainerServiceRoleForEC2Role 관리형 정책을 역할에 연결합니다.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole

컨테이너 인스턴스(ecsInstanceRole) 역할에 Amazon S3 읽기 전용 액세스 추가

Amazon S3에서 구성 정보를 프라이빗 버킷에 저장하고 컨테이너 인스턴스 IAM 역할에 읽기 전용 액세스를 부여하면 시작 시점에 컨테이너 인스턴스 구성을 안전하고 편리하게 허용할 수 있습니다. 프라이빗 버킷에 ecs.config 파일 사본을 저장하고, Amazon EC2 사용자 데이터를 사용하여 설치한 다음, 인스턴스가 시작될 /etc/ecs/ecs.config 때 구성 정보를 복사할 수 있습니다. AWS CLI

ecs.config 파일을 생성하여 Amazon S3에 저장하고 이 구성으로 인스턴스를 시작하는 자세한 방법은 Amazon S3에 컨테이너 인스턴스 구성 저장 섹션을 참조하세요.

다음 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로 전송할 수 있으려면 먼저 컨테이너 인스턴스가 Logs API를 사용하도록 허용하는 IAM 정책을 생성한 다음 해당 정책을 CloudWatch Logs에 연결해야 합니다. ecsInstanceRole

AWS Management Console
JSON 정책 편집기를 사용하여 정책을 생성하려면
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. 왼쪽의 탐색 창에서 정책을 선택합니다.

    정책을 처음으로 선택하는 경우 관리형 정책 소개 페이지가 나타납니다. 시작하기를 선택합니다.

  3. 페이지 상단에서 정책 생성을 선택합니다.

  4. 정책 편집기 섹션에서 JSON 옵션을 선택합니다.

  5. 다음 JSON 정책 문서를 입력합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  6. 다음을 선택합니다.

    참고

    언제든지 시각적 편집기 옵션과 JSON 편집기 옵션 간에 전환할 수 있습니다. 그러나 변경을 적용하거나 시각적 편집기에서 다음을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 IAM 사용 설명서정책 재구성을 참조하십시오.

  7. 검토 및 생성 페이지에서 생성하는 정책에 대한 정책 이름설명(선택 사항)을 입력합니다. 이 정책에 정의된 권한을 검토하여 정책이 부여한 권한을 확인합니다.

  8. 정책 생성을 선택하고 새로운 정책을 저장합니다.

정책을 생성한 후 정책을 컨테이너 인스턴스 역할에 연결합니다. 정책을 역할에 연결하는 방법에 대한 자세한 내용은 사용 설명서의 역할 권한 정책 수정 (콘솔) 을AWS Identity and Access Management 참조하십시오.

AWS CLI
  1. 다음 콘텐츠를 통해 instance-cw-logs.json이라는 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  2. 다음 명령을 사용하여 JSON 정책 문서 파일을 사용하여 IAM 정책을 생성합니다.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. 다음 명령을 사용하여 생성한 IAM 정책의 ARN을 검색합니다. cwlogspolicy를 생성한 정책 이름으로 바꾸십시오.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogsppolicy`].Arn'
  4. 다음 명령을 사용하여 정책 ARN을 사용하여 컨테이너 인스턴스 IAM 역할에 정책을 연결합니다.

    aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy