

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

# 在 Amazon 中使用活动总线的权限 EventBridge
<a name="eb-event-bus-perms"></a>

您 AWS 账户中的默认[事件总线](eb-event-bus.md)仅允许来自一个账户[的事件](eb-events.md)。您可以为事件总线附加[基于资源的策略](eb-use-resource-based.md)，向其授予其他权限。使用基于资源的策略，您可以允许来自其他账户的 `PutEvents`、`PutRule` 和 `PutTargets` API 调用。您还可以在策略中使用 [IAM 条件](eb-use-conditions.md)向组织授予权限、应用[标签](eb-tagging.md)或仅筛选来自特定规则或账户的事件。您可以在创建事件总线时为其设置基于资源的策略，也可以稍后设置。

EventBridge APIs 接受事件总线`Name`参数`PutRule`，例如、、`PutTargets`、`DeleteRule``RemoveTargets``DisableRule`、，并且`EnableRule`还接受事件总线 ARN。使用这些参数通过引用跨账户或跨区域的事件总线。 APIs例如，您可以调用 `PutRule`，在其他账户的事件总线上创建[规则](eb-rules.md)，而无需担任角色。

您可以将本主题中的示例策略附加到 IAM 角色，授予向其他账户或区域发送事件的权限。使用 IAM 角色设置组织控制策略和边界，确定谁可以将事件从您的账户发送到其他账户。如果规则的目标是事件总线，我们建议始终使用 IAM 角色。您可以使用 `PutTarget` 调用来附加 IAM 角色。有关如何创建规则并向其他账户或区域发送事件的的信息，请参阅[在 Amazon AWS 账户之间发送和接收事件 EventBridge](eb-cross-account.md)。

# 在 Amazon 中管理活动总线权限 EventBridge
<a name="eb-event-bus-permissions-manage"></a>

使用以下过程修改现有事件总线的权限。有关 CloudFormation 如何使用创建事件总线策略的信息，请参阅[AWS::Events::EventBus策略](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)。

**管理现有事件总线的权限**

1. 打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在左侧导航窗格中，选择**事件总线**。

1. 在**名称**中，选择要管理权限的事件总线的名称。

   如果有某个资源策略附加到此事件总线，则会显示该策略。

1. 选择**管理权限**，然后执行以下操作之一：
   + 输入策略，其中包含要为事件总线授予的权限。您可以粘贴其他来源的策略，也可以为此策略输入 JSON。
   + 要使用策略模板，请选择**加载模板**。根据您的环境修改策略，并添加其他操作，授权策略中的主体使用。

1. 选择**更新**。

该模板提供了示例策略语句，您可以根据自己的账户和环境对其进行自定义。模板不是有效策略。您可以根据您的使用场景修改模板，也可以复制其中一个示例策略并对其进行自定义。

该模板加载的策略包括一个示例，展示如何向账户授予使用 `PutEvents` 操作的权限、如何向组织授予权限以及如何向该账户授予权限，以管理账户中的规则。您可以为特定账户自定义模板，然后从模板中删除其他部分。本部分的后续部分会包含更多策略示例。

如果您尝试更新总线的权限，但策略中包含错误，则会显示一条错误消息，指明策略中的具体问题。

```
  ### Choose which sections to include in the policy to match your use case. ###
  ### Be sure to remove all lines that start with ###, including the ### at the end of the line. ###

  ### The policy must include the following: ###

  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [

      ### To grant permissions for an account to use the PutEvents action, include the following, otherwise delete this section: ###

      {

        "Sid": "AllowAccountToPutEvents",
        "Effect": "Allow",
        "Principal": {
          "AWS": "<ACCOUNT_ID>"
        },
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
      },

      ### Include the following section to grant permissions to all members of your AWS Organizations to use the PutEvents action ###

      {
        "Sid": "AllowAllAccountsFromOrganizationToPutEvents",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default",
        "Condition": {
          "StringEquals": {
            "aws:PrincipalOrgID": "o-yourOrgID"
          }
        }
      },

      ### Include the following section to grant permissions to the account to manage the rules created in the account ###

      {
        "Sid": "AllowAccountToManageRulesTheyCreated",
        "Effect": "Allow",
        "Principal": {
          "AWS": "<ACCOUNT_ID>"
        },
        "Action": [
          "events:PutRule",
          "events:PutTargets",
          "events:DeleteRule",
          "events:RemoveTargets",
          "events:DisableRule",
          "events:EnableRule",
          "events:TagResource",
          "events:UntagResource",
          "events:DescribeRule",
          "events:ListTargetsByRule",
          "events:ListTagsForResource"],
        "Resource": "arn:aws:events:us-east-1:123456789012:rule/default",
        "Condition": {
          "StringEqualsIfExists": {
            "events:creatorAccount": "<ACCOUNT_ID>"
          }
        }
    }]
  }
```

# 策略示例：将事件发送到 Amazon 中其他账户中的默认总线 EventBridge
<a name="eb-event-bus-example-policy-cross-account"></a>

以下策略示例授予账户 111122223333 向账户 123456789012 中的默认事件总线发布事件的权限。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
```

------

# 策略示例：将事件发送到 Amazon 中其他账户中的自定义总线 EventBridge
<a name="eb-event-bus-example-policy-cross-account-custom-bus-source"></a>

以下策略示例向账户 111122223333 授予权限，向账户 123456789012 中的 `central-event-bus` 发布事件，但仅适用于源值设置为 `com.exampleCorp.webStore`、`detail-type` 设置为 `newOrderCreated` 的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "ForAllValues:StringEquals": {
          "events:source": "com.exampleCorp.webStore",
          "events:detail-type": "newOrderCreated"
        }
      }
    }
  ]
}
```

------

# 策略示例：向 Amazon 中同一账户中的事件总线发送事件 EventBridge
<a name="eb-event-bus-example-policy-same-account"></a>

以下策略示例附加到名为 `CustomBus1` 的事件总线，允许该事件总线接收来自同一账户和区域的事件。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "events:PutEvents"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:111122223333:event-bus/CustomBus1"
            ]
        }
    ]
}
```

------

# 策略示例：将来自特定规则的事件发送到不同地区的 Amazon EventBridge 总线
<a name="eb-event-bus-example-policy-restrict-rule"></a>

以下策略示例授予账户 111122223333 权限，将与中东（巴林）和美国西部（俄勒冈州）区域中名为 `SendToUSE1AnotherAccount` 的规则匹配的事件发送到账户 123456789012 中名为 `CrossRegionBus` 的事件总线，该账户位于美国东部（弗吉尼亚州北部）。策略示例已添加到账户 123456789012 中名为 `CrossRegionBus` 的事件总线。只有当事件与账户 111122223333 中为此事件总线指定的规则相匹配时，该策略才允许这些事件。`Condition` 语句将事件限制为仅与具有指定规则 ARN 的规则匹配的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSpecificRulesAsCrossRegionSource",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount",
            "arn:aws:events:me-south-1:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount"
          ]
        }
      }
    }
  ]
}
```

------

# 策略示例：仅将事件从特定区域发送到 Amazon 中的其他区域 EventBridge
<a name="eb-event-bus-example-policy-specific-region"></a>

以下策略示例授予账户 111122223333 权限，将在中东（巴林）和美国西部（俄勒冈州）区域中生成的所有事件发送到账户 123456789012 中名为 `CrossRegionBus` 的事件总线，该账户位于美国东部（弗吉尼亚州北部）区域。账户 111122223333 无权发送在任何其他区域生成的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCrossRegionEventsFromUSWest2AndMESouth1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:*:*",
            "arn:aws:events:me-south-1:*:*"
          ]
        }
      }
    }
  ]
}
```

------

# 策略示例：拒绝从亚马逊的特定区域发送事件 EventBridge
<a name="eb-event-bus-example-policy-deny-regions"></a>

以下策略示例附加到账户 123456789012 中名为 `CrossRegionBus` 的事件总线，允许此事件总线接收来自账户 111122223333 的事件，但不允许接收在美国西部（俄勒冈州）区域生成的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1AllowAnyEventsFromAccount111112222333",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus"
    },
    {
      "Sid": "2DenyAllCrossRegionUSWest2Events",
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:*:*"
          ]
        }
      }
    }
  ]
}
```

------