管理对 Amazon EventBridge 资源的访问权限
您可以使用基于身份或基于资源的策略,管理对 EventBridge 资源(例如规则或事件)的访问权限。
EventBridge 资源
EventBridge 资源和子资源具有与其关联的唯一 Amazon 资源名称 (ARN)。在 EventBridge 中可以使用 ARN 来创建事件模式。有关 ARN 的详细信息,请参阅 AWS 中的 Amazon 资源名称 (ARN) 和 Amazon Web Services 一般参考 服务命名空间。
有关 EventBridge 提供的处理资源的操作列表,请参阅 Amazon EventBridge 权限参考。
注意
AWS 中的大多数服务将 ARN 中的冒号 (:
) 或正斜杠 (/
) 视为相同的字符。不过,EventBridge 在事件模式和规则中使用精确匹配。请在创建事件模式时务必使用正确的 ARN 字符,以使其匹配需要匹配的事件中的 ARN 语法。
下表展示了 EventBridge 中的资源。
资源类型 | ARN 格式 |
---|---|
档案 |
|
重放 |
|
规则 |
|
事件总线 |
|
所有 EventBridge 资源 |
|
指定账户在指定区域拥有的所有 EventBridge 资源 |
|
以下示例展示如何使用某个特定规则的 ARN 在语句中指定该规则 (myRule
)。
"Resource": "arn:aws:events:
us-east-1
:123456789012
:rule/myRule
"
可以使用星号 (*) 通配符指定属于特定账户的所有规则,如下所示。
"Resource": "arn:aws:events:
us-east-1
:123456789012
:rule/*
"
要指定所有资源,或者如果特定 API 操作不支持 ARN,请在 Resource
元素中使用星号 (*) 通配符,如下所示。
"Resource": "
*
"
要在单个语句中指定多个资源或 PutTargets
,请使用逗号分隔其 ARN,如下所示。
"Resource": ["arn1", "arn2"]
资源所有权
账户对账户中的资源具有所有权,无论创建资源的人是谁。资源拥有者是主体实体 的账户,即账户根用户、IAM 用户或对创建资源的请求进行身份验证的角色。以下示例说明了它的工作原理:
-
如果使用您账户的根用户凭证创建规则,则您的账户即为该 EventBridge 资源的拥有者。
-
如果您在您的账户中创建用户,并对该用户授予创建 EventBridge 资源的权限,则该用户可以创建 EventBridge 资源。但是,这些 EventBridge 资源归该用户所属的您的账户所有。
-
如果您在您的账户中创建具有创建 EventBridge 资源权限的 IAM 角色,则能够担任该角色的任何人都可以创建 EventBridge 资源。该角色所属的您的账户拥有这些 EventBridge 资源。
管理对 资源的访问
权限策略规定谁可以访问哪些内容。下一节介绍创建权限策略时的可用选项。
注意
附加到 IAM 身份的策略称作基于身份 的策略(IAM 策略),附加到资源的策略称作基于资源 的策略。在 EventBridge 中,您可以同时使用基于身份(IAM 策略)和基于资源的策略。
基于身份的策略(IAM 策略)
您可以向 IAM 身份附加策略。例如,您可以执行以下操作:
-
将权限策略附加到您账户中的用户或组 - 要授予用户在 Amazon CloudWatch 控制台中查看规则的权限,可以将权限策略附加到用户或用户所属的组。
-
向角色附加权限策略(授予跨帐户权限) – 您可以向 IAM 角色附加基于身份的权限策略,以授予跨帐户的权限。例如,账户 A 中的管理员可以创建一个角色,向另一账户 B 或某项 AWS 服务授予跨账户权限,如下所述:
-
账户 A 管理员可以创建一个 IAM 角色,然后向该角色附加授予其访问账户 A 中资源的权限策略。
-
账户 A 管理员可以向角色挂载信任策略,将账户 B 标识为能够担任该角色的委托人。
-
之后,账户 B 管理员可以委派权限,指派账户 B 中的任何用户代入该角色。这样,账户 B 中的用户就可以创建或访问账户 A 中的资源了。如果您需要授予 AWS 服务代入该角色所需的权限,则信任策略中的主体也可以是 AWS 服务主体。
有关使用 IAM 委托权限的更多信息,请参阅 IAM 用户指南中的访问权限管理。
-
可以创建特定的 IAM 策略,来限制您账户中的用户有权访问的调用和资源,然后将这些策略与用户关联。有关创建 IAM 角色和探索适用于 EventBridge 的 IAM 策略语句示例的更多信息,请参阅 管理对 Amazon EventBridge 资源的访问权限。
基于资源的策略(IAM 策略)
当规则在 EventBridge 中运行时,所有与该规则关联的目标都会被调用,这意味着调用 AWS Lambda 函数、发布到 Amazon SNS 主题或将事件中继到 Amazon Kinesis 流。为了对您拥有的资源执行 API 调用,EventBridge 需要相应权限。对于 Lambda、Amazon SNS 和 Amazon SQS 资源,EventBridge 使用基于资源的策略。对于 Kinesis 流,EventBridge 使用 IAM 角色。
有关创建 IAM 角色和探索适用于 EventBridge 的基于资源的策略语句示例的更多信息,请参阅 针对 Amazon EventBridge 使用基于资源的策略。
指定策略元素:操作、效果和主体
对于每种 EventBridge 资源,EventBridge 都定义了一组 API 操作。要为这些 API 操作授予权限,EventBridge 定义了一组您可以在策略中指定的操作。某些 API 操作需要多个操作的权限,才能执行 API 操作。有关资源和 API 操作的更多信息,请参阅 EventBridge 资源 和 Amazon EventBridge 权限参考。
以下是基本的策略元素:
-
Resource – 使用 Amazon Resource Name (ARN) 指定策略应用到的资源。有关更多信息,请参阅 EventBridge 资源。
-
操作 - 使用关键字指定要允许或拒绝的资源操作。例如,
events:Describe
权限允许用户执行Describe
操作。 -
效果 - 指定是允许还是拒绝。如果没有明确授予(允许)对资源的访问权限,则拒绝访问。您也可明确拒绝对资源的访问,这样可确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也是如此。
-
主体 – 在基于身份的策略(IAM 策略)中,附加了策略的用户是隐式主体。对于基于资源的策略,您可以指定要接收权限的用户、帐户、服务或其他实体(仅适用于基于资源的策略)。
有关 IAM 策略语法和说明的更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略参考。
额关 EventBridge API 操作及其适用资源的信息,请参阅 Amazon EventBridge 权限参考。
在策略中指定条件
当您授予权限时,可使用访问策略语言来指定规定策略何时生效的条件。例如,您可能希望策略仅在特定日期后应用。有关使用策略语言指定条件的更多信息,请参阅《IAM 用户指南》中的条件。
要定义条件,可以使用条件键。有 AWS 条件键和 EventBridge 特定键,您可以根据需要使用。有关 AWS 键的完整列表,请参阅《IAM 用户指南》中的条件的可用键。有关 EventBridge 特定键的完整列表,请参阅在 Amazon EventBridge 中使用 IAM 政策条件。