

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 用于向 Amazon 中的目标发送事件的 IAM 角色 EventBridge
用于发送事件的角色

要将事件传递给目标， EventBridge 需要一个 IAM 角色。

**创建用于向发送事件的 IAM 角色 EventBridge**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 打开 IAM 控制台。

1. 要创建 IAM 角色，请按照 I [A *M 用户指南*中创建向 Amazon 服务委派权限的角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-service.html)中的步骤操作。在执行这些步骤时，请注意以下操作：
   + 在**角色名称**中，使用账户中的唯一名称。
   + 在 **“选择角色类型**” 中，选择 “**Amazon 服务角色**”，然后选择 **Amazon EventBridge**。这会授予担任该角色的 EventBridge 权限。
   + 在**附加策略**中，选择**AmazonEventBridgeFullAccess**。

您也可以创建自己的自定义 IAM 策略以授予 EventBridge 操作和资源的权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。有关 IAM 策略的更多信息，请参阅《IAM 用户指南》**中的 [IAM 策略概述](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies.html)。有关管理和创建自定义 IAM 策略的更多信息，请参阅《IAM 用户指南》**中的[管理 IAM 策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/ManagingPolicies.html)。

## 使用 IAM 角色 EventBridge 访问目标所需的权限
访问目标的权限

EventBridge 目标通常需要授予调用目标权限 EventBridge 的 IAM 角色。以下是各种 Amazon 服务和目标的一些示例。对于其他人，请使用 EventBridge 控制台创建规则并创建一个新角色，该角色将使用预先配置了范围明确的权限的策略来创建。

亚马逊 SQS、Amazon SNS、 CloudWatch Lambda EventBridge 、日志和总线目标不使用角色，必须通过资源 EventBridge 策略授予权限。API Gateway 目标可以使用资源策略或 IAM 角色。

### API 目标
API 目标

如果目标为 API 目的地，则指定的角色必须包含具有以下声明的策略：
+ **效果**：`Allow`
+ **操作：**`events:InvokeApiDestination`
+ **资源：**`arn:aws:events:*:*:api-destination/*`

### Kinesis Streams
Kinesis Streams

如果目标为 Kinesis 流，则用于向该目标发送事件数据的角色必须包含具有以下声明的策略：
+ **效果**：`Allow`
+ **操作：**`kinesis:PutRecord`
+ **资源：**`*`

### Systems Manager 运行命令
Systems Manager 运行命令

如果目标为 Systems Manager 运行命令，且您为该命令指定了一个或多个 `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 状态机
Step Functions 状态机

如果目标是 Amazon Step Functions 状态机，则您指定的角色必须包含具有以下内容的策略：
+ **效果**：`Allow`
+ **操作：**`states:StartExecution`
+ **资源：**`arn:aws:states:*:*:stateMachine:*`

### Amazon ECS 任务
Amazon ECS 任务

如果目标是 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 操作。您需要使用 Amazon Web Services 管理控制台 来创建带有内置目标的规则。

------
#### [ 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": "*"
        }
    ]
}
```

------

## 客户管理型策略示例：使用标记来控制对规则的访问权限
客户管理型策略示例

以下示例显示了授予 EventBridge 操作权限的用户策略。当您使用 EventBridge API、或，时 Amazon SDKs，此政策有效 Amazon 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 policy 语句的更多信息，请参阅 *IAM 用户指南*中的[使用策略控制访问](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_controlling.html)。