diff --git a/src/core/runtime/src/add-tags-to-shared-resources-step.ts b/src/core/runtime/src/add-tags-to-shared-resources-step.ts index 5473b8889..51164db50 100644 --- a/src/core/runtime/src/add-tags-to-shared-resources-step.ts +++ b/src/core/runtime/src/add-tags-to-shared-resources-step.ts @@ -21,6 +21,7 @@ interface AddTagToResourceOutput { resourceType: string; targetAccountIds: string[]; tags: Tag[]; + region: string; } type AddTagToResourceOutputs = AddTagToResourceOutput[]; @@ -48,7 +49,7 @@ export const handler = async (input: CreateTagsRequestInput) => { const credentials = await sts.getCredentialsForAccountAndRole(targetAccountId, assumeRoleName); if (ALLOWED_RESOURCE_TYPES.includes(resourceType)) { try { - const tagResources = new TagResources(credentials); + const tagResources = new TagResources(credentials, addTagsToResources.region); await tagResources.createTags({ Resources: [resourceId], Tags: tags.map(t => ({ Key: t.key, Value: t.value })), diff --git a/src/deployments/cdk/src/apps/phase-2.ts b/src/deployments/cdk/src/apps/phase-2.ts index 0e8b67f52..3d0ac4ab8 100644 --- a/src/deployments/cdk/src/apps/phase-2.ts +++ b/src/deployments/cdk/src/apps/phase-2.ts @@ -200,6 +200,7 @@ export async function deploy({ acceleratorConfig, accountStacks, accounts, conte resourceType: 'security-group', targetAccountIds: [accountId], tags: securityGroup.tags.renderTags(), + region: securityGroupStack.region, })), }); } diff --git a/src/deployments/cdk/src/common/add-tags-to-resources-output.ts b/src/deployments/cdk/src/common/add-tags-to-resources-output.ts index b0b79c4be..3db0c8616 100644 --- a/src/deployments/cdk/src/common/add-tags-to-resources-output.ts +++ b/src/deployments/cdk/src/common/add-tags-to-resources-output.ts @@ -11,6 +11,7 @@ export interface AddTagsToResource { resourceType: 'subnet' | 'security-group' | 'vpc' | 'tgw-attachment'; targetAccountIds: string[]; tags: Tag[]; + region: string; } export interface AddTagsToResourcesOutputProps extends Omit { diff --git a/src/deployments/cdk/src/common/vpc-subnet-sharing.ts b/src/deployments/cdk/src/common/vpc-subnet-sharing.ts index 484c254c6..1126bf5c6 100644 --- a/src/deployments/cdk/src/common/vpc-subnet-sharing.ts +++ b/src/deployments/cdk/src/common/vpc-subnet-sharing.ts @@ -125,6 +125,7 @@ export class VpcSubnetSharing extends cdk.Construct { sourceAccountId: o.sourceAccountId, targetAccountIds: o.targetAccountIds, tags: o.subnet.tags.renderTags(), + region: cdk.Aws.REGION, })), }); @@ -137,6 +138,7 @@ export class VpcSubnetSharing extends cdk.Construct { sourceAccountId: o.sourceAccountId, targetAccountIds: o.targetAccountIds, tags: vpc.tags.renderTags(), + region: cdk.Aws.REGION, })), }); } diff --git a/src/deployments/cdk/src/common/vpc.ts b/src/deployments/cdk/src/common/vpc.ts index c6943f171..174a19267 100644 --- a/src/deployments/cdk/src/common/vpc.ts +++ b/src/deployments/cdk/src/common/vpc.ts @@ -346,6 +346,7 @@ export class Vpc extends cdk.Construct implements constructs.Vpc { resourceType: 'tgw-attachment', tags: tgwAttachment!.resource.tags.renderTags(), targetAccountIds: [ownerAccountId], + region: cdk.Aws.REGION, }, ], }); diff --git a/src/deployments/cdk/src/deployments/firewall/cluster/step-2.ts b/src/deployments/cdk/src/deployments/firewall/cluster/step-2.ts index 81b0481d2..c1a50be7d 100644 --- a/src/deployments/cdk/src/deployments/firewall/cluster/step-2.ts +++ b/src/deployments/cdk/src/deployments/firewall/cluster/step-2.ts @@ -174,6 +174,7 @@ async function createCustomerGateways(props: { value: `${prefix}_att`, }, ], + region: cdk.Aws.REGION, }); const associateConfig = attachConfig['tgw-rt-associate'] || []; diff --git a/src/deployments/cdk/test/apps/unsupported-changes.mocks.ts b/src/deployments/cdk/test/apps/unsupported-changes.mocks.ts index d05aabc7e..959a1640a 100644 --- a/src/deployments/cdk/test/apps/unsupported-changes.mocks.ts +++ b/src/deployments/cdk/test/apps/unsupported-changes.mocks.ts @@ -324,6 +324,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Web_Central_aza_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-075ca0d93563a4d6e', @@ -334,6 +335,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Web_Central_azb_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-0b70e3e849949cc0c', @@ -344,6 +346,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'App_Central_aza_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-04e252c39434bbb19', @@ -354,6 +357,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'App_Central_azb_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-00bbd856fec06c15b', @@ -364,6 +368,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Data_Central_aza_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-0ace127f373a1b274', @@ -374,6 +379,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Data_Central_azb_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-05eff632d6af56d17', @@ -384,6 +390,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Mgmt_Central_aza_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-03dc090bc09c84439', @@ -394,6 +401,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Mgmt_Central_azb_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-02809ab1988c1ec82', @@ -404,6 +412,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'GCWide_Central_aza_net' }, ], + region: 'ca-central-1', }, { resourceId: 'subnet-0f4514137baa07759', @@ -414,6 +423,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'GCWide_Central_azb_net' }, ], + region: 'ca-central-1', }, ], }), @@ -434,6 +444,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -444,6 +455,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -454,6 +466,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -464,6 +477,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -474,6 +488,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -484,6 +499,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -494,6 +510,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -504,6 +521,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -514,6 +532,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, { resourceId: 'vpc-0d0b4cd029857165a', @@ -524,6 +543,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Central_vpc' }, ], + region: 'ca-central-1', }, ], }), @@ -851,6 +871,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Mgmt_sg' }, ], + region: 'ca-central-1', }, { resourceId: 'sg-0c91bf1bc94e5797f', @@ -860,6 +881,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Web_sg' }, ], + region: 'ca-central-1', }, { resourceId: 'sg-08f5b682020bf1c61', @@ -869,6 +891,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'App_sg' }, ], + region: 'ca-central-1', }, { resourceId: 'sg-041abd65f62750b6e', @@ -878,6 +901,7 @@ export function createPhaseInput(): Omit { { key: 'Accelerator', value: 'PBMM' }, { key: 'Name', value: 'Data_sg' }, ], + region: 'ca-central-1', }, ], }), diff --git a/src/lib/common/src/aws/resource-tagging.ts b/src/lib/common/src/aws/resource-tagging.ts index 4c8fd7318..be12594af 100644 --- a/src/lib/common/src/aws/resource-tagging.ts +++ b/src/lib/common/src/aws/resource-tagging.ts @@ -5,9 +5,10 @@ import { throttlingBackOff } from './backoff'; export class TagResources { private readonly client: aws.EC2; - public constructor(credentials?: aws.Credentials) { + public constructor(credentials?: aws.Credentials, region?: string) { this.client = new aws.EC2({ credentials, + region, }); }