Amazon ECS작업 실행IAM역할 - Amazon Elastic Container Service

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

Amazon ECS작업 실행IAM역할

작업 실행 역할은Amazon ECS컨테이너 및 Fargate 에이전트는AWSAPI 호출에 대해 설명합니다. 작업의 요구 사항에 따라 작업 실행 IAM 역할이 필요합니다. 계정과 연결된 다른 용도 및 서비스에 대한 여러 작업 실행 역할이 있을 수 있습니다.

작업 실행 IAM 역할의 일반 사용 사례는 다음과 같습니다.

  • 작업이 다음 위치에 호스팅됩니다.AWS Fargate또는 외부 인스턴스그리고...

    • 에서 컨테이너 이미지를 가져옵니다.Amazon ECR프라이빗 리포지토리

    • 가 컨테이너 로그를CloudWatch Logs을 사용하는awslogs로그 드라이버를 사용합니다. 자세한 정보는 awslogs 로그 드라이버 사용을 참조하십시오.

  • 작업은 다음 중 하나에서 호스팅됩니다.AWS Fargate또는Amazon EC2인스턴스 및...

참고

작업 실행 역할은 Amazon ECS 컨테이너 에이전트 버전 1.16.0 이상에서 지원됩니다.

Amazon ECS는 위에서 설명한 일반 사용 사례에서 필요로 하는 권한을 포함하는 AmazonECSTaskExecutionRolePolicy라는 관리형 정책을 제공합니다. 아래에 간단히 설명한 특수 사용 사례에서는 인라인 정책을 작업 실행 역할에 추가해야 할 수도 있습니다.

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

원래 요청 ping에 대한Amazon ECS작업 실행 역할은Amazon ECS콘솔을 수동으로 연결해야 합니다. 그러나 관리되는IAM허용할 작업에 대한 정책Amazon ECS가 도입될 때 가 이에 대한 권한을 추가할 수 있도록 합니다. 다음 절차를 사용하여 사용자 계정에 이미 Amazon ECS 작업 실행 역할이 있는지 확인하고 필요할 경우 관리형 IAM 정책을 연결할 수 있습니다.

IAM 콘솔에서 ecsTaskExecutionRole를 확인하려면

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다.

  3. 역할 목록에서 ecsTaskExecutionRole을 검색합니다. 역할이 존재하지 않을 경우 작업 실행 IAM 역할 생성 단원을 참조하십시오. 역할이 존재하지 않을 경우, 연결된 정책을 볼 역할을 선택합니다.

  4. 권한 탭에서 AmazonECSTaskExecutionRolePolicy 관리형 정책이 역할에 연결되었는지 확인합니다. 정책이 연결된 경우, Amazon ECS 작업 실행 역할이 적절히 구성된 것입니다. 그렇지 않다면 아래의 하위 단계에 따라 정책을 연결합니다.

    1. 정책 연결을 선택합니다.

    2. 연결에 사용할 수 있는 정책의 범위를 좁히려면 필터AmazonECSTaskExecutionRolePolicy를 입력합니다.

    3. [AmazonECSTaskExecutionRolePolicy] 정책 왼쪽의 확인란을 선택하고 [Attach policy]를 선택합니다.

  5. 신뢰 관계, 신뢰 관계 편집을 차례대로 선택합니다.

  6. 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 아래 정책과 일치하는 경우, Cancel을 선택합니다. 신뢰 관계가 일치하지 않는 경우, 정책을 Policy Document 창에 복사하고 Update Trust Policy를 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

작업 실행 IAM 역할 생성

계정에 아직 작업 실행 역할이 없는 경우 다음 단계를 사용하여 역할을 만듭니다.

작업 실행을 만들려면IAM역할 (AWS Management Console)

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  3. 에서신뢰할 수 있는 유형의 엔터티 선택섹션에서AWS서비스,엘라스틱 컨테이너.

  4. 사용 사례 선택를 선택하고탄력적 컨테이너 서비스을 선택한 후다음: Permissions)]을 선택합니다.

  5. 에서권한 연결섹션에서AmazonECSTaskExecutionRolePolicy을 선택한 후 정책을 선택한 후다음: Tags)]를 선택합니다.

  6. 태그 추가 (선택 사항)에서 정책과 연결할 사용자 지정 태그를 지정한 다음다음: Review)]를 선택합니다.

  7. 역할 이름을 입력합니다.ecsTaskExecutionRole를 선택하고역할 생성.

작업 실행을 만들려면IAM역할 (AWS CLI)

  1. 이라는 이름의 파일을 만듭니다.ecs-tasks-trust-policy.json에 사용할 트러스트 정책을 포함하는IAM역할 파일에 다음을 포함해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 생성IAM역할 이름ecsTaskExecutionRole이전 단계에서 생성한 트러스트 정책을 사용합니다.

    aws iam create-role \ --role-name ecsTaskExecutionRole \ --assume-role-policy-document file://ecs-tasks-trust-policy.json
  3. 연결AWS관리형AmazonECSTaskExecutionRolePolicy정책을ecsTaskExecutionRole역할 이 정책은 다음을 제공합니다.

    aws iam attach-role-policy \ --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

필수IAM프라이빗 레지스트리 인증에 대한 권한

Amazon ECS 작업 실행 역할은 프라이빗 레지스트리 인증 기능을 사용해야 합니다. 컨테이너 에이전트는 이 기능을 통해 컨테이너 이미지를 가져올 수 있습니다. 자세한 정보는 작업에 대한 프라이빗 레지스트리 인증을 참조하십시오.

생성하는 보안 암호에 액세스 권한을 부여하려면 다음 권한을 인라인 정책으로 작업 실행 역할에 수동으로 추가하십시오. 자세한 내용은 IAM 정책 추가 및 제거 단원을 참조하십시오.

  • secretsmanager:GetSecretValue

  • kms:Decrypt—사용자 키가 사용자 지정KMS key및 기본 키가 아닙니다. 사용자 지정 키의 ARN을 리소스로 추가해야 합니다.

권한을 추가하는 예제 인라인 정책은 아래와 같습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }

필수IAM권한Amazon ECS보안 암호

Amazon ECS 암호 기능을 사용하려면 Amazon ECS 작업 실행 역할이 있어야 하며 작업 정의에서 해당 역할을 참조해야 합니다. 이렇게 하면 컨테이너 에이전트가 필요한 AWS Systems Manager 또는 Secrets Manager 리소스를 가져올 수 있습니다. 자세한 정보는 중요 데이터 지정을 참조하십시오.

사용자가 생성하는 AWS Systems Manager 파라미터 스토어 파라미터에 액세스 권한을 부여하려면 작업 실행 역할에 다음 권한을 인라인 정책으로서 직접 추가하십시오. 자세한 내용은 IAM 정책 추가 및 제거 단원을 참조하십시오.

  • ssm:GetParameters—작업 정의에서 Systems Manager 파라미터 스토어 파라미터를 참조하는 경우에 필요합니다.

  • secretsmanager:GetSecretValue—Secrets Manager 암호를 직접 참조하는 경우 또는 Systems Manager 파라미터 스토어 파라미터가 작업 정의에서 Secrets Manager 암호를 참조하는 경우에 필요합니다.

  • kms:Decrypt—비밀이 사용자 지정KMS key및 기본 키가 아닙니다. 사용자 지정 키의 ARN을 리소스로 추가해야 합니다.

다음 예제에서는 인라인 정책이 필수 권한을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }

선택IAM권한Fargate작업 끌어오기Amazon ECR인터페이스 엔드포인트를 통한 이미지

인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성한 경우 Amazon ECR에서 이미지를 가져오는 Fargate 시작 유형을 사용하는 작업을 시작할 때 특정 VPC 또는 VPC 엔드포인트에 대한 작업 액세스를 제한할 수 있습니다. 이를 위해선 IAM 조건 키를 사용하는 작업에 대한 작업 실행 역할을 생성합니다.

다음 IAM 전역 조건 키를 사용하여 특정 VPC 또는 VPC 엔드포인트에 대한 액세스를 제한합니다. 자세한 내용은 단원을 참조하십시오.AWS전역 조건 컨텍스트 키.

  • aws:SourceVpc — 특정 VPC에 대한 액세스를 제한합니다.

  • aws:SourceVpce — 특정 VPC 엔드포인트에 대한 액세스를 제한합니다.

다음 작업 실행 역할 정책은 조건 키 추가에 대한 예를 제공합니다.

중요

GetAuthorizationToken API 호출이 작업의 탄력적 네트워크 인터페이스가 아닌 AWS Fargate 소유의 탄력적 네트워크 인터페이스를 통과하므로 ecr:GetAuthorizationToken API 작업에 aws:sourceVpc 또는 aws:sourceVpce 조건 키가 적용될 수 없습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-xxxxxx", "aws:sourceVpc": "vpc-xxxxx" } } } ] }