用于向 Amazon 中的目标发送事件的 IAM 角色 EventBridge - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

创建用于向发送事件的 IAM 角色 EventBridge
  1. 使用 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 要创建 IAM 角色,请按照 I A M 用户指南中创建向 Amazon 服务委派权限的角色中的步骤操作。在执行这些步骤时,请注意以下操作:

    • 角色名称中,使用账户中的唯一名称。

    • “选择角色类型” 中,选择 “Amazon 服务角色”,然后选择 Amazon EventBridge。这会授予担任该角色的 EventBridge 权限。

    • 附加策略中,选择AmazonEventBridgeFullAccess

您也可以创建自己的自定义 IAM 策略以授予 EventBridge 操作和资源的权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。有关 IAM 策略的更多信息,请参阅《IAM 用户指南》中的 IAM 策略概述。有关管理和创建自定义 IAM 策略的更多信息,请参阅《IAM 用户指南》中的管理 IAM 策略

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

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

亚马逊 SQS、Amazon SNS、 CloudWatch Lambda 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: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]]" ] }

And:

  • 效果Allow

  • 操作:ssm:SendCommand

  • 资源:arn:aws:ssm:us-east-1:*:document/documentName

Step Functions 状态机

如果目标是 Amazon Step Functions 状态机,则您指定的角色必须包含具有以下内容的策略:

  • 效果Allow

  • 操作:states:StartExecution

  • 资源:arn:aws:states:*:*:stateMachine:*

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 Management Console 来创建带有内置目标的规则。

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

您可以向用户授予 IAM 策略,仅允许其访问带有特定标签的规则。您可以用这个特定标签来标记所选规则,为它们授予访问权限。例如,以下策略仅向某用户授予对标签键 Stack 值为 Prod 的规则的访问权限。

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

有关使用 IAM policy 语句的更多信息,请参阅 IAM 用户指南中的使用策略控制访问