diff --git a/packages/aws-cdk/lib/util/validate-notification-arn.ts b/packages/aws-cdk/lib/util/validate-notification-arn.ts index 4d1f458a8c3db..647f8e1afdc94 100644 --- a/packages/aws-cdk/lib/util/validate-notification-arn.ts +++ b/packages/aws-cdk/lib/util/validate-notification-arn.ts @@ -2,5 +2,5 @@ * Validate SNS topic arn */ export function validateSnsTopicArn(arn: string): boolean { - return /^arn:aws:sns:[a-z0-9\-]+:[0-9]+:[a-z0-9\-\_]+$/i.test(arn); + return /^arn:(?:aws|aws-cn):sns:[a-z0-9\-]+:[0-9]+:[a-z0-9\-\_]+$/i.test(arn); } diff --git a/packages/aws-cdk/test/util/validate-notification-arn.test.ts b/packages/aws-cdk/test/util/validate-notification-arn.test.ts index d418546eda923..0665828886e2b 100644 --- a/packages/aws-cdk/test/util/validate-notification-arn.test.ts +++ b/packages/aws-cdk/test/util/validate-notification-arn.test.ts @@ -26,5 +26,10 @@ describe('validate sns arns', () => { const arn = 'arn:aws:sns:eu-west-1:123456789876:foo-bar_baz'; expect(validateSnsTopicArn(arn)).toEqual(true); }); + + test('AWS China partition', () => { + const arn = 'arn:aws-cn:sns:cn-northwest-1:123456789876:foo-bar'; + expect(validateSnsTopicArn(arn)).toEqual(true); + }); });