

# Amazon ECS EventBridge IAM 역할
<a name="CWE_IAM_role"></a>

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

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

------
#### [ JSON ]

****  

```
{
    "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 역할](task_execution_IAM_role.md) 섹션을 참조하세요.

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

------
#### [ JSON ]

****  

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

------

예약된 작업을 구성할 때 AWS Management Console에서 EventBridge 역할을 생성하도록 선택할 수 있습니다. 자세한 내용은 [Amazon EventBridge Scheduler를 사용하여 Amazon ECS 태스크 예약](tasks-scheduled-eventbridge-scheduler.md) 섹션을 참조하세요.

## EventBridge 역할 생성
<a name="cw-iam-role-create"></a>

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

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

------
#### [ JSON ]

****  

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

------

1. 다음 명령을 사용하여 이전 단계에서 생성한 신뢰 정책을 사용해 `ecsEventsRole`이라는 이름의 IAM 역할을 생성합니다.

   ```
   aws iam create-role \
         --role-name ecsEventsRole \
         --assume-role-policy-document file://eventbridge-trust-policy.json
   ```

1. 다음 명령을 사용하여 AWS 관리형 `AmazonEC2ContainerServiceEventsRole`을 `ecsEventsRole` 역할에 연결합니다.

   ```
   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/](https://console.aws.amazon.com/iam/))를 사용하여 역할을 생성할 수 있습니다. 지침은 *IAM 사용자 설명서*의 [사용자 지정 신뢰 정책을 사용하여 역할 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

## `ecsEventsRole` 역할에 정책 연결
<a name="cw-iam-role-attach"></a>

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

------
#### [ AWS Management Console ]

**JSON 정책 편집기를 사용하여 정책을 생성하는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 에서 IAM 콘솔을 엽니다.

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

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

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

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

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

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

1. **다음**을 선택합니다.
**참고**  
언제든지 **시각적** 편집기 옵션과 **JSON** 편집기 옵션 간에 전환할 수 있습니다. 그러나 변경을 적용하거나 **시각적** 편집기에서 **다음**을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [정책 재구성](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)을 참조하세요.

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

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

정책을 생성한 후 EventBridge 역할에 정책을 연결합니다. 정책을 역할에 연결하는 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [역할 권한 업데이트](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)를 참조하세요.

------
#### [ AWS CLI ]

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

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

------
#### [ JSON ]

****  

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

------

1. 다음 AWS CLI 명령을 사용하여 JSON 정책 문서 파일을 사용해 IAM 정책을 생성합니다.

   ```
   aws iam create-policy \
         --policy-name eventsTaskExecutionPolicy \
         --policy-document file://ev-iam-passrole.json
   ```

1. 다음 명령을 사용하여 생성한 IAM 정책의 ARN을 검색합니다.

   ```
   aws iam list-policies --scope Local --query 'Policies[?PolicyName==`eventsTaskExecutionPolicy`].Arn'
   ```

1. 다음 명령을 사용하여 정책 ARN을 사용해 정책을 EventBridge IAM 역할에 연결합니다.

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

------