Amazon ECS 인프라 IAM 역할 - Amazon Elastic Container Service

Amazon ECS 인프라 IAM 역할

Amazon ECS 인프라 IAM 역할을 사용하면 Amazon ECS가 사용자를 대신하여 클러스터의 인프라 리소스를 관리할 수 있으며, 다음과 같은 경우에 사용됩니다.

  • Amazon EBS 볼륨을 Fargate 또는 EC2 시작 유형의 Amazon ECS 작업에 연결하려고 합니다. 인프라 역할을 통해 Amazon ECS에서 작업에 사용할 Amazon EBS 볼륨을 관리할 수 있습니다.

  • 전송 계층 보안(TLS)을 사용하여 Amazon ECS Service Connect 서비스 간 트래픽을 암호화하려고 합니다.

Amazon ECS에서 이 역할을 수임하여 사용자를 대신해 작업을 수행하면 AWS CloudTrail에 이벤트가 표시됩니다. Amazon ECS가 이 역할을 사용하여 작업에 연결된 Amazon EBS 볼륨을 관리하는 경우 CloudTrail 로그 roleSessionNameECSTaskVolumesForEBS입니다. 역할을 사용하여 Service Connect 서비스 간 트래픽을 암호화하는 경우 CloudTrail 로그 roleSessionNameECSServiceConnectForTLS입니다. 이 이름을 사용하여 사용자 이름을 필터링해 CloudTrail 콘솔에서 이벤트를 검색할 수 있습니다.

Amazon ECS에서는 볼륨 연결과 TLS에 필요한 권한을 포함하는 관리형 정책을 제공합니다. 자세한 내용은 AWS 관리형 정책 참조 안내서의 AmazonECSInfrastructureRolePolicyForVolumesAmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity를 참조하세요.

Amazon ECS 인프라 역할 생성

모든 사용자 입력을 사용자 정보로 바꿉니다.

  1. IAM 역할에 사용할 신뢰 정책이 포함된 ecs-infrastructure-trust-policy.json이라는 이름의 파일을 생성합니다. 파일에 다음을 포함해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToECSForInfrastructureManagement", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 다음 AWS CLI 명령을 사용하여 이전 단계에서 생성한 신뢰 정책을 사용해 ecsInfrastructureRole이라는 이름의 역할을 생성합니다.

    aws iam create-role \ --role-name ecsInfrastructureRole \ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
  3. 사용 사례에 따라 AWS 관리형 AmazonECSInfrastructureRolePolicyForVolumes 또는 AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 정책을 ecsInfrastructureRole 역할에 연결합니다.

    aws iam attach-role-policy \ --role-name ecsInfrastructureRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForVolumes
    aws iam attach-role-policy \ --role-name ecsInfrastructureRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity

IAM 콘솔의 사용자 지정 신뢰 정책 워크플로를 사용하여 역할을 생성할 수도 있습니다. 지침은 IAM 사용자 설명서의 사용자 지정 신뢰 정책을 사용하여 역할 생성(콘솔)을 참조하세요.

중요

Amazon ECS에서 ECS 인프라 역할을 사용해 작업에 연결된 Amazon EBS 볼륨을 관리하는 경우 Amazon EBS 볼륨을 사용하는 작업을 중지하기 전에 다음 사항을 확인합니다.

  • 역할은 삭제되지 않습니다.

  • 역할에 대한 신뢰 정책은 Amazon ECS 액세스 권한(ecs.amazonaws.com)을 제거하도록 수정되지 않습니다.

  • 관리형 정책 AmazonECSInfrastructureRolePolicyForVolumes는 제거되지 않습니다. 역할의 권한을 수정해야 하는 경우 볼륨 삭제를 위해 적어도 ec2:DetachVolume, ec2:DeleteVolume, ec2:DescribeVolumes를 유지합니다.

Amazon EBS 볼륨이 연결된 작업을 중지하기 전에 역할을 삭제하거나 수정하면 작업이 DEPROVISIONING 상태로 멈추고 관련 Amazon EBS 볼륨이 삭제되지 않습니다. Amazon ECS는 필요한 권한이 복원될 때까지 작업을 중지하고 볼륨을 삭제하기 위해 정기적으로 자동 재시도합니다. DescribeTasks API를 사용하여 작업의 볼륨 연결 상태 및 관련 상태 이유를 볼 수 있습니다.

파일을 생성한 후 Amazon ECS로 역할을 전달할 수 있는 권한을 사용자에게 부여해야 합니다.

인프라 역할을 Amazon ECS로 전달하는 권한

ECS 인프라 IAM 역할을 사용하려면 Amazon ECS로 역할을 전달할 수 있는 권한을 사용자에게 부여해야 합니다. 사용자에게 다음 iam:PassRole 권한을 연결합니다. ecsInfrastructureRole을 사용자가 생성한 인프라 역할 이름으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/ecsInfrastructureRole"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }

iam:Passrole 및 사용자 권한 업데이트에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 사용자에게 AWS 서비스에 역할을 전달할 권한 부여IAM 사용자의 권한 변경을 참조하세요.