要配置跨账户事件桥通信,需要完成以下操作。我提供了示例事件和过滤器,您可以根据需要替换事件和过滤器。专注于解决账户间连接问题。
对账户 B 执行的步骤:收款人账户
- 创建一个名为 event-bus-b 的事件总线。如下所示放置基于资源的策略。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "WebStoreCrossAccountPublish",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account-A>:root"
},
"Action": "events:PutEvents",
"Resource": "arn:aws:events:<your-region>:<Account-B>:event-bus/event-bus-b"
}]
}
要在账户 A 上执行的步骤:发件人账户
-
在账户 A 中创建一个事件总线 event-bus-a。
-
在账户 A 中创建一个规则 eb-rule-a,并包含以下详细信息:
事件模式:
{
"detail-type": [
"uoe"
],
"source": [
"somesource"
]
}
另外,使用测试事件测试模式。
测试事件:
{
"version": "0",
"id": "55fghj-89a9-a0b3-1ccb-79c25c7d6cd2",
"detail-type": "uoe",
"source": "somesource",
"account": "<ACCOUNT_ID>",
"time": "2020-04-24T13:53:21Z",
"region": "<YOUR_REGION>",
"resources": [],
"detail": {
"userOrg" : "OrgName"
}
}
-
在下拉列表中选择事件总线 event-bus-a。
-
选择目标“不同账户或区域中的事件总线”
-
将您创建的事件总线的 ARN 放入账户 B。
arn:aws:events:<your-region>:<Account-B>:event-bus/event-bus-b
- 还要选中复选框“为此特定资源创建新角色”。这将在账户 A 中创建一个角色,使账户 A 中的用户能够在账户 b 事件总线上发布。以下政策是自动创建的,您无需执行任何操作。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Resource": [
arn:aws:events:<your-region>:<Account-B>:event-bus/event-bus-b
]
}
]
}
-
点击创建,创建规则。
-
现在点击事件总线 event-bus-a 并点击发送事件按钮。
-
提供详细信息并点击发送。
示例事件:
{
"version": "0",
"id": "55fghj-89a9-a0b3-1ccb-79c25c7d6cd2",
"detail-type": "uoe",
"source": "somesource",
"account": "<ACCOUNT_ID>",
"time": "2020-04-24T13:53:21Z",
"region": "<YOUR_REGION>",
"resources": [],
"detail": {
"userOrg" : "OrgName"
}
}
- 事件将传播到账户 B 中定义的事件总线。您可以通过在账户 B 中复制我们在账户 A 中创建的规则来验证这一点,只需将 lambda 作为目标附加到该规则并在日志上打印事件.