

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 管理主控台 建立 EventBridge 角色。如需詳細資訊，請參閱[使用 Amazon EventBridge 排程器排程 Amazon ECS 任務](tasks-scheduled-eventbridge-scheduler.md)。

## 建立 EventBridge 角色
<a name="cw-iam-role-create"></a>

將所有 *user input* 取代為自己的資訊。

1. 建立名為 `eventbridge-trust-policy.json` 的檔案，其中包含用於 IAM 角色的信任政策。檔案應包含以下內容：

------
#### [ 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 User Guide* 中的 [Creating a role using custom trust policies (console)](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 管理主控台 ]

**若要使用 JSON 政策編輯器來建立政策**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在左側的導覽窗格中，選擇 **Policies (政策)**。

   如果這是您第一次選擇 **Policies (政策)**，將會顯示 **Welcome to Managed Policies (歡迎使用受管政策)** 頁面。選擇 **Get Started (開始使用)**。

1. 在頁面頂端，選擇 **Create policy (建立政策)**。

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. 選擇 **Create policy** (建立政策) 儲存您的新政策。

建立政策後，請將政策連接至 EventBridge 角色。如需有關如何將政策連接至角色的資訊，請參閱 *AWS Identity and Access Management User Guide* 中的 [Update permissions for a role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)。

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

將所有 *user input* 取代為自己的資訊。

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
   ```

------