我要做的是将一个事件从另一个AWS帐户发送到我的帐户,该帐户包含事件总线。
为此,我试图将角色/策略附加到EventBus,但我无法。我尝试使用grantPutEvents,但也没有成功。如何做到这一点?(添加/附加政策(
此外,如果我将Principal作为其他AWS帐户的帐户ID,将resource用作EventBus的ARN的策略附加在一起,这是否允许我发送事件?还是我需要做更多的事情?
我知道这个线程很旧,同时你可能自己找到了解决方案,但我只想把我的解决方案留给其他遇到这个问题的人,尤其是因为我在互联网上没有找到任何其他关于这个问题的信息。
我能够添加一个";基于资源的政策";通过使用基本CfEventBusPolicy类并通过其名称引用相应的总线:
const defaultBus = event.EventBus.fromEventBusName(this, 'default-bus', 'default');
new event.CfnEventBusPolicy(this, 'xaccount-policy', {
statementId: 'AllowXAccountPushEvents',
action: 'events:PutEvents',
eventBusName: defaultBus.eventBusName,
principal: 'account-id-goes-here',
});
您需要:
- 发送方帐户:发送方事件总线的EventBridge规则。规则的目标是接收器帐户中的事件总线
- 接收方帐户:更新基于接收方事件总线的策略,以允许发送方帐户放置事件
此链接https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html应该对你有所帮助。