From a2578462119d112c6095e06668add97e7721d570 Mon Sep 17 00:00:00 2001 From: Chris Garvis Date: Fri, 18 Mar 2022 06:23:02 -0400 Subject: [PATCH] fix(events): cannot have more than one cross-account Rule (#19441) Fixes #12479, Resolves #12538 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-events/lib/rule.ts | 2 +- packages/@aws-cdk/aws-events/test/rule.test.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-events/lib/rule.ts b/packages/@aws-cdk/aws-events/lib/rule.ts index ee9a5b60f8052..1420a87627f8b 100644 --- a/packages/@aws-cdk/aws-events/lib/rule.ts +++ b/packages/@aws-cdk/aws-events/lib/rule.ts @@ -397,7 +397,7 @@ export class Rule extends Resource implements IRule { }); new CfnEventBusPolicy(eventBusPolicyStack, 'GivePermToOtherAccount', { action: 'events:PutEvents', - statementId: `Allow-account-${sourceAccount}`, + statementId: `Allow-account-${sourceAccount}-${this.node.addr}`, principal: sourceAccount, }); } diff --git a/packages/@aws-cdk/aws-events/test/rule.test.ts b/packages/@aws-cdk/aws-events/test/rule.test.ts index 10bf6f3839518..84f7c03f81d11 100644 --- a/packages/@aws-cdk/aws-events/test/rule.test.ts +++ b/packages/@aws-cdk/aws-events/test/rule.test.ts @@ -901,6 +901,7 @@ describe('rule', () => { const app = new cdk.App(); const sourceAccount = '123456789012'; + const nodeAddr = 'c810f4680339b01edf1f157c4fd07da73469742773'; const sourceStack = new cdk.Stack(app, 'SourceStack', { env: { account: sourceAccount, @@ -982,7 +983,7 @@ describe('rule', () => { const eventBusPolicyStack = app.node.findChild(`EventBusPolicy-${sourceAccount}-us-west-2-${targetAccount}`) as cdk.Stack; Template.fromStack(eventBusPolicyStack).hasResourceProperties('AWS::Events::EventBusPolicy', { 'Action': 'events:PutEvents', - 'StatementId': `Allow-account-${sourceAccount}`, + 'StatementId': `Allow-account-${sourceAccount}-${nodeAddr}`, 'Principal': sourceAccount, }); });