本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于向 Amazon 中的目标发送事件的 IAM 角色 EventBridge
要将事件传递给目标, EventBridge 需要一个 IAM 角色。
创建用于向发送事件的 IAM 角色 EventBridge
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
要创建 IAM 角色,请按照 I A M 用户指南中创建向 Amazon 服务委派权限的角色中的步骤操作。在执行这些步骤时,请注意以下操作:
-
在角色名称中,使用账户中的唯一名称。
-
在 “选择角色类型” 中,选择 “Amazon 服务角色”,然后选择 Amazon EventBridge。这会授予担任该角色的 EventBridge 权限。
-
在附加策略中,选择AmazonEventBridgeFullAccess。
-
您还可以为 EventBridge 操作和资源创建自己的自定义 IAM 策略。将这些策略附加到需要权限的 IAM 用户或群组。有关 IAM 策略的更多信息,请参阅《IAM 用户指南》中的 IAM 策略概述。要了解如何创建和管理自定义策略,请参阅 IAM 用户指南中的管理 IAM 策略。
使用 IAM 角色 EventBridge 访问目标所需的权限
EventBridge 目标通常需要授予调用目标 EventBridge 权限的 IAM 角色。以下各节给出了几个 Amazon 服务和目标的示例。对于其他目标,请使用 EventBridge 控制台创建规则。控制台会为您创建一个新角色,其策略已经配置了范围明确的权限。
为每种目标类型设置正确的权限。如果没有适当的 IAM 角色或基于资源的策略,则 EventBridge 无法调用目标,并且事件交付将失败。每种目标类型都使用不同的权限模型。在创建规则之前,请查看目标的要求。有几种目标类型依赖于基于资源的策略。要创建这些策略,请参阅为亚马逊使用基于资源的政策 EventBridge。要创建代入的 IAM 角色,请参阅 I A M 用户指南中的创建向 Amazon 服务委派权限的角色。 EventBridge
权限要求因目标类型而异:
| Target type | 许可要求 |
|---|---|
亚马逊 SQS、亚马逊 SNS 和 Lambda |
同时支持 IAM 执行角色和基于资源的策略。 |
CloudWatch 日志 |
不使用角色;相反,必须使用基于资源的策略来授予权限。 |
EventBridge 活动巴士 |
EventBridge 事件总线目标必须具有可在目标事件总线上授予权限 |
API Gateway |
可以使用基于资源的策略或 IAM 角色。 |
API 目标
如果目标是 API 目标,则您指定的角色必须包含带有以下语句的策略:
效果:
Allow操作:
events:InvokeApiDestination资源:
arn:aws:events:*:*:api-destination/*
Kinesis Streams
如果目标为 Kinesis 流,则用于向该目标发送事件数据的角色必须包含具有以下声明的策略:
效果:
Allow操作:
kinesis:PutRecord资源:
*
Systems Manager 运行命令
如果目标是 Systems Manager 运行命令,并且您为该命令指定了一个或多个InstanceIds值,则您指定的角色必须包含带有以下语句的策略:
效果:
Allow操作:
ssm:SendCommand资源:
arn:aws:ec2:region:accountId:instance/instanceId1arn:aws:ec2:region:accountId:instance/instanceId2arn:aws:ssm:region:*:document/documentName
如果目标是 Systems Manager 运行命令,并且您为目标实例指定了一个或多个标签,则该角色必须包含以下语句:
效果:
Allow操作:
ssm:SendCommand资源:
arn:aws:ec2:region:accountId:instance/*arn:aws:ssm:region:accountId:managed-instance/*
状况:
"StringEquals": { "aws:ResourceTag/tagKey": ["tagValues"] }
aws:ResourceTag条件密钥适用于 EC2 实例和混合托管实例(在 Systems Manager 中注册的本地节点)。该SendCommand操作还支持ssm:resourceTag/条件键。tagKey
该角色还必须包含以下语句才能授予对 Systems Manager 文档的访问权限:
效果:
Allow操作:
ssm:SendCommand资源:
arn:aws:ssm:region:*:document/documentName
Step Functions 状态机
如果目标是 Amazon Step Functions 状态机,则您指定的角色必须包含具有以下内容的策略:
效果:
Allow操作:
states:StartExecution资源:
arn:aws:states:*:*:stateMachine:*
Amazon ECS 任务
如果目标是 Amazon ECS 任务,则您指定的角色必须包含以下策略。
以下策略允许中的 EventBridge 内置目标代表您执行 Amazon EC2 操作。您需要使用 Amazon Web Services 管理控制台 来创建带有内置目标的规则。
以下政策允许 EventBridge 将事件中继到您账户中的 Kinesis 直播。
Customer-managed 策略示例:使用标记控制对规则的访问权限
您可以授予用户访问特定 EventBridge 规则的权限,同时阻止他们访问其他规则。要实现此目标,请标记这两组规则,并使用 IAM 策略引用这些标签。有关为 EventBridge 资源添加标签的更多信息,请参阅在 Amazon 中为资源添加标签 EventBridge。
您可以将 IAM 策略附加到用户,以仅允许访问带有特定标签的规则。您可以用这个特定标签来标记所选规则,为它们授予访问权限。例如,以下策略仅向某用户授予对标签键 Stack 值为 Prod 的规则的访问权限。
以下示例显示了授予 EventBridge 操作权限的用户策略。当您使用 EventBridge API、 Amazon 软件开发工具包或时,此政策将起 Amazon CLI作用。
{ "Statement": [ { "Effect": "Allow", "Action": "events:*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Stack": "Prod" } } } ] }
有关使用 IAM policy 语句的更多信息,请参阅 IAM 用户指南中的使用策略控制访问。