

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

# 將事件傳送至 Amazon EventBridge 中目標的 IAM 角色
<a name="eb-events-iam-roles"></a>

若要將事件轉送至目標，EventBridge 需要 IAM 角色。

**若要建立 IAM 角色以將事件傳送至 EventBridge**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 若要建立 IAM 角色，請遵循《*IAM 使用者指南*》中[建立角色以委派許可給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)的步驟。按照步驟執行時，請執行下列操作：
   + 在**角色名稱**中，使用您帳戶中的唯一名稱。
   + 在**選取角色類型**中，先選擇 **AWS 服務角色**，然後選擇 **Amazon EventBridge**。此操作會授予 EventBridge 擔任該角色的許可。
   + 在**附加政策**中，選擇 **AmazonEventBridgeFullAccess**。

您也可以建立自己的自訂 IAM 政策，以允許 EventBridge 動作與資源的許可。您可以將這些自訂政策連接至需要這些許可的 IAM 使用者或群組。如需關於 IAM 政策的詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。如需關於管理和建立自訂 IAM 政策的詳細資訊，請參閱《IAM 使用者指南》**中的[管理 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

## EventBridge 使用 IAM 角色存取目標所需的權限
<a name="eb-target-permissions"></a>

EventBridge 目標通常需要將權限授與 EventBridge 調用目標的 IAM 角色。以下是各種 AWS 服務和目標的一些範例。針對其他人，請使用 EventBridge 主控台建立規則並建立新的角色。該角色將使用預先設定完善範圍的權限的政策來建立。

Amazon SQS、Amazon SNS、Lambda、CloudWatch Logs 和 EventBridge 匯流排目標不使用角色，而且必須透過資源政策授予 EventBridge 的許可。API Gateway 目標可以使用資源政策或 IAM 角色。

### API 目的地
<a name="eb-target-permissions-apid"></a>

如果目標是 API 目的地，您指定的角色必須包含具有下列陳述式的政策：
+ **效果**： `Allow`
+ **動作：**`events:InvokeApiDestination`
+ **資源：**`arn:aws:events:*:*:api-destination/*`

### Kinesis 串流
<a name="eb-target-permissions-kinesis"></a>

如果目標是 Kinesis 串流，則用來傳送事件資料至該目標的角色必須包含具有下列陳述式的政策：
+ **效果**： `Allow`
+ **動作：**`kinesis:PutRecord`
+ **資源：**`*`

### Systems Manager 執行命令
<a name="eb-target-permissions-sys"></a>

如果目標是 Systems Manager run 命令，且您為命令指定一或多個`InstanceIds`值，則您指定的角色必須包含具有下列陳述式的政策：
+ **效果**： `Allow`
+ **動作：**`ssm:SendCommand`
+ **資源：** `arn:aws:ec2:{{us-east-1}}:{{accountId}}:instance/{{instanceIds}}`、`arn:aws:ssm:{{us-east-1}}:*:document/{{documentName}}`

如果目標是 Systems Manager 執行命令，且您為命令指定一或多個標籤，則您指定的角色必須包含具有下列兩個動作的政策：
+ **效果**： `Allow`
+ **動作：**`ssm:SendCommand`
+ **資源：**`arn:aws:ec2:{{}}:{{accountId}}:instance/*`
+ **條件：**

  ```
  "StringEquals": {
    "ec2:ResourceTag/*": [
      "[[tagValues]]"
    ]
  }
  ```

及：
+ **效果**： `Allow`
+ **動作：**`ssm:SendCommand`
+ **資源：**`arn:aws:ssm:{{us-east-1}}:*:document/{{documentName}}`

### Step Functions 狀態機器
<a name="eb-target-permissions-step-functions"></a>

如果目標是 AWS Step Functions 狀態機器，您指定的角色必須包含具有下列項目的政策：
+ **效果**： `Allow`
+ **動作：**`states:StartExecution`
+ **資源：**`arn:aws:states:*:*:stateMachine:*`

### Amazon ECS 任務
<a name="eb-target-permissions-ec2"></a>

如果目標是 Amazon ECS 任務，您指定的角色必須包含下列政策。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:RunTask"
            ],
            "Resource": [
                "arn:aws:ecs:*:{{111122223333}}:task-definition/{{task-definition-name}}"
            ],
            "Condition": {
                "ArnLike": {
                    "ecs:cluster": "arn:aws:ecs:*:{{111122223333}}:cluster/{{cluster-name}}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "ecs-tasks.amazonaws.com"
                }
            }
        }
    ]
}
```

------

以下政策允許 EventBridge 中的內建目標代表您執行 Amazon EC2 動作。您需要使用 AWS 管理主控台 來建立具有內建目標的規則。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TargetInvocationAccess",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:RebootInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances",
                "ec2:CreateSnapshot"
            ],
            "Resource": "*"
        }
    ]
}
```

------

以下政策允許 EventBridge 將事件轉送至您帳戶中的 Kinesis 串流。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KinesisAccess",
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 客戶管理政策範例：使用標記來控制規則的存取
<a name="eb-customer-managed-policies"></a>

以下範例顯示授予 EventBridge 動作權限的使用者政策。當您使用 EventBridge API、 AWS SDKs或 時，此政策即可運作 AWS CLI。

您可以授予使用者存取特定的 EventBridge 規則，同時防止他們存取其他規則。為此，您需標記這兩個規則，並使用那些帶有標籤的 IAM 政策。如需關於標記 EventBridge 資源的詳細資訊，請參閱 [在 Amazon EventBridge 中標記資源](eb-tagging.md)。

您可以授予一個 IAM 政策給使用者，僅允許存取具有特定標籤的規則。您可以使用該特定標記來標記規則，以選擇要授與存取權的規則。例如，以下政策會授予標籤鍵 `Stack` 值為 `Prod` 規則的存取。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "events:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Stack": "Prod"
                }
            }
        }
    ]
}
```

如需有關使用 IAM 政策陳述式的詳細資訊，請參閱《IAM 使用者指南》**中的[使用政策控制存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。