Amazon ECS EventBridge IAM 역할 - Amazon Elastic Container Service

Amazon ECS EventBridge IAM 역할

EventBridge 규칙 및 대상과 함께 Amazon ECS의 예약된 작업을 사용하려면 먼저 EventBridge 서비스에 사용자를 대신하여 Amazon ECS 작업을 실행할 수 있는 권한이 필요합니다. 이러한 권한은 EventBridge IAM 역할(ecsEventsRole)에 의해 제공됩니다.

AmazonEC2ContainerServiceEventsRole 정책은 아래 나와 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ecs:RunTask"], "Resource": ["*"] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["*"], "Condition": { "StringLike": {"iam:PassedToService": "ecs-tasks.amazonaws.com"} } }, { "Effect": "Allow", "Action": "ecs:TagResource", "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": ["RunTask"] } } } ] }

예약된 작업에서 작업 실행 역할, 작업 역할 또는 작업 역할 재정의를 사용해야 하는 경우 각 작업 실행 역할, 작업 역할 또는 작업 역할 재정의를 위한 iam:PassRole 권한을 EventBridge IAM 역할에 추가해야 합니다. 태스크 실행 역할에 대한 자세한 정보는 Amazon ECS 태스크 실행 IAM 역할 섹션을 참조하세요.

참고

태스크 실행 역할 또는 태스크 역할 재정의의 전체 ARN을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }

예약된 작업을 구성할 때 AWS Management Console에서 EventBridge 역할을 생성하도록 선택할 수 있습니다. 자세한 내용은 Amazon EventBridge 스케줄러를 사용하여 Amazon ECS 태스크 예약 단원을 참조하십시오.

EventBridge 역할 생성

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

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

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

    aws iam create-role \ --role-name ecsEventsRole \ --assume-role-policy-document file://eventbridge-policy.json
  3. 다음 명령을 사용하여 AWS 관리형 AmazonEC2ContainerServiceEventsRoleecsEventsRole 역할에 연결합니다.

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceEventsRole

또한 IAM 콘솔의 사용자 지정 신뢰 정책 워크플로(https://console.aws.amazon.com/iam/)를 사용하여 역할을 생성할 수 있습니다. 지침은 IAM 사용자 설명서의 사용자 지정 신뢰 정책을 사용하여 역할 생성(콘솔)을 참조하세요.

ecsEventsRole 역할에 정책 연결

다음 절차를 사용하여 작업 실행 역할에 대한 권한을 EventBridge IAM 역할에 추가할 수 있습니다.

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": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  6. Next(다음)를 선택합니다.

    참고

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

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

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

정책을 생성한 후 EventBridge 역할에 정책을 연결합니다. 정책을 역할에 연결하는 방법에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 역할 권한 정책 수정(콘솔)을 참조하세요.

AWS CLI

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

  1. 다음 콘텐츠를 통해 ev-iam-passrole.json이라는 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  2. 다음 AWS CLI 명령을 사용하여 JSON 정책 문서 파일을 사용해 IAM 정책을 생성합니다.

    aws iam create-policy \ --policy-name eventsTaskExecutionPolicy \ --policy-document file://ev-iam-passrole.json
  3. 다음 명령을 사용하여 생성한 IAM 정책의 ARN을 검색합니다.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`eventsTaskExecutionPolicy`].Arn'
  4. 다음 명령을 사용하여 정책 ARN을 사용해 정책을 EventBridge IAM 역할에 연결합니다.

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/eventsTaskExecutionPolicy