@fjall/components-infrastructure 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/config/aws/ecrDefaultImage.js +3 -3
- package/dist/lib/config/aws/identityCenter.d.ts +1 -2
- package/dist/lib/config/aws/identityCenter.js +7 -2
- package/dist/lib/config/aws/identityCenterGroupMembership.d.ts +10 -0
- package/dist/lib/config/aws/identityCenterGroupMembership.js +96 -0
- package/dist/lib/config/aws/index.d.ts +0 -1
- package/dist/lib/config/aws/index.js +1 -2
- package/dist/lib/config/aws/ipamPoolId.d.ts +1 -1
- package/dist/lib/config/aws/ipamPoolId.js +3 -3
- package/dist/lib/config/aws/organisationsAccess.d.ts +10 -0
- package/dist/lib/config/aws/organisationsAccess.js +40 -0
- package/dist/lib/patterns/aws/basicApp.d.ts +0 -1
- package/dist/lib/patterns/aws/basicApp.js +4 -4
- package/dist/lib/patterns/aws/buildkite.d.ts +1 -1
- package/dist/lib/patterns/aws/buildkite.js +2 -2
- package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -1
- package/dist/lib/patterns/aws/freeTierApp.js +2 -4
- package/dist/lib/patterns/aws/managedAccount.d.ts +0 -1
- package/dist/lib/patterns/aws/managedAccount.js +8 -8
- package/dist/lib/patterns/aws/managedIdentityCenter.d.ts +4 -0
- package/dist/lib/patterns/aws/managedIdentityCenter.js +24 -0
- package/dist/lib/patterns/aws/managedOrganisation.d.ts +1 -2
- package/dist/lib/patterns/aws/managedOrganisation.js +11 -12
- package/dist/lib/resources/aws/compute/ecs.js +2 -4
- package/dist/lib/resources/aws/database/rdsFreeTier.js +2 -3
- package/dist/lib/resources/aws/networking/ipamPool.js +11 -12
- package/dist/lib/resources/aws/networking/vpc.d.ts +7 -2
- package/dist/lib/resources/aws/networking/vpc.js +23 -19
- package/dist/lib/utils/getAccountId.js +2 -2
- package/dist/lib/utils/getConfig.d.ts +4 -5
- package/dist/lib/utils/getConfig.js +23 -45
- package/package.json +23 -23
- package/dist/lib/config/aws/delegateHostedZoneRole.d.ts +0 -5
- package/dist/lib/config/aws/delegateHostedZoneRole.js +0 -77
- package/dist/lib/config/aws/identityCenterUser.d.ts +0 -16
- package/dist/lib/config/aws/identityCenterUser.js +0 -125
- package/dist/lib/config/aws/ipamPool.d.ts +0 -5
- package/dist/lib/config/aws/ipamPool.js +0 -56
- package/dist/lib/config/aws/ipamPoolResourceShare.d.ts +0 -5
- package/dist/lib/config/aws/ipamPoolResourceShare.js +0 -42
- package/dist/lib/config/aws/ramEnableSharing.d.ts +0 -5
- package/dist/lib/config/aws/ramEnableSharing.js +0 -35
- package/dist/lib/config/aws/users.d.ts +0 -5
- package/dist/lib/config/aws/users.js +0 -126
- package/dist/lib/config/fjall/hostedZones/fjall.io.d.ts +0 -10
- package/dist/lib/config/fjall/hostedZones/fjall.io.js +0 -25
- package/dist/lib/resources/aws/constant/ecr.d.ts +0 -12
- package/dist/lib/resources/aws/constant/ecr.js +0 -30
- package/dist/lib/resources/aws/constant/vpc.d.ts +0 -26
- package/dist/lib/resources/aws/constant/vpc.js +0 -63
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +0 -21
- package/dist/lib/resources/aws/networking/hostedZone.js +0 -68
- package/dist/lib/resources/aws/store/alias.d.ts +0 -5
- package/dist/lib/resources/aws/store/alias.js +0 -13
- package/dist/lib/resources/aws/store/database.d.ts +0 -18
- package/dist/lib/resources/aws/store/database.js +0 -33
- package/dist/lib/resources/aws/store/index.d.ts +0 -7
- package/dist/lib/resources/aws/store/index.js +0 -24
- package/dist/lib/resources/aws/store/kms.d.ts +0 -14
- package/dist/lib/resources/aws/store/kms.js +0 -34
- package/dist/lib/resources/aws/store/parameter.d.ts +0 -26
- package/dist/lib/resources/aws/store/parameter.js +0 -100
- package/dist/lib/resources/aws/store/rds.d.ts +0 -25
- package/dist/lib/resources/aws/store/rds.js +0 -132
- package/dist/lib/resources/aws/store/s3.d.ts +0 -11
- package/dist/lib/resources/aws/store/s3.js +0 -43
- package/dist/lib/resources/aws/store/secret.d.ts +0 -26
- package/dist/lib/resources/aws/store/secret.js +0 -55
- package/dist/lib/utils/usersConfig.d.ts +0 -7
- package/dist/lib/utils/usersConfig.js +0 -18
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"bin": {
|
|
5
5
|
"infrastructure": "bin/infrastructure.js"
|
|
6
6
|
},
|
|
@@ -12,27 +12,27 @@
|
|
|
12
12
|
"dist/lib"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"deploy:
|
|
16
|
-
"list:
|
|
17
|
-
"destroy:
|
|
18
|
-
"synth:
|
|
19
|
-
"diff:
|
|
20
|
-
"deploy:dev": "npx cdk deploy -c
|
|
21
|
-
"list:dev": "npx cdk list -c
|
|
22
|
-
"destroy:dev": "npx cdk destroy -c
|
|
23
|
-
"synth:dev": "npx cdk synthesize -c
|
|
24
|
-
"deploy:stag": "npx cdk deploy -c
|
|
25
|
-
"list:stag": "npx cdk list -c
|
|
26
|
-
"destroy:stag": "npx cdk destroy -c
|
|
27
|
-
"synth:stag": "npx cdk synthesize -c
|
|
28
|
-
"deploy:prod": "npx cdk deploy -c
|
|
29
|
-
"list:prod": "npx cdk list -c
|
|
30
|
-
"destroy:prod": "npx cdk destroy -c
|
|
31
|
-
"synth:prod": "npx cdk synthesize -c
|
|
32
|
-
"deploy:plat": "npx cdk deploy -c
|
|
33
|
-
"list:plat": "npx cdk list -c
|
|
34
|
-
"destroy:plat": "npx cdk destroy -c
|
|
35
|
-
"synth:plat": "npx cdk synthesize -c
|
|
15
|
+
"deploy:fjall": "npx cdk deploy -c accountName=fjall",
|
|
16
|
+
"list:fjall": "npx cdk list -c accountName=fjall",
|
|
17
|
+
"destroy:fjall": "npx cdk destroy -c accountName=fjall",
|
|
18
|
+
"synth:fjall": "npx cdk synthesize -c accountName=fjall",
|
|
19
|
+
"diff:fjall": "npx cdk diff -c accountName=fjall",
|
|
20
|
+
"deploy:dev": "npx cdk deploy -c accountName=development",
|
|
21
|
+
"list:dev": "npx cdk list -c accountName=development",
|
|
22
|
+
"destroy:dev": "npx cdk destroy -c accountName=development",
|
|
23
|
+
"synth:dev": "npx cdk synthesize -c accountName=development",
|
|
24
|
+
"deploy:stag": "npx cdk deploy -c accountName=staging",
|
|
25
|
+
"list:stag": "npx cdk list -c accountName=staging",
|
|
26
|
+
"destroy:stag": "npx cdk destroy -c accountName=staging",
|
|
27
|
+
"synth:stag": "npx cdk synthesize -c accountName=staging",
|
|
28
|
+
"deploy:prod": "npx cdk deploy -c accountName=production",
|
|
29
|
+
"list:prod": "npx cdk list -c accountName=production",
|
|
30
|
+
"destroy:prod": "npx cdk destroy -c accountName=production",
|
|
31
|
+
"synth:prod": "npx cdk synthesize -c accountName=production",
|
|
32
|
+
"deploy:plat": "npx cdk deploy -c accountName=platform",
|
|
33
|
+
"list:plat": "npx cdk list -c accountName=platform",
|
|
34
|
+
"destroy:plat": "npx cdk destroy -c accountName=platform",
|
|
35
|
+
"synth:plat": "npx cdk synthesize -c accountName=platform",
|
|
36
36
|
"publish": "npm run build && npm publish --access restricted",
|
|
37
37
|
"build": "tsc",
|
|
38
38
|
"watch": "tsc -w",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@aws-sdk/client-cost-explorer": "^3.717.0",
|
|
57
57
|
"@aws-sdk/client-organizations": "^3.716.0",
|
|
58
|
-
"@fjall/util": "^0.1.
|
|
58
|
+
"@fjall/util": "^0.1.18",
|
|
59
59
|
"@pepperize/cdk-organizations": "^0.7.135",
|
|
60
60
|
"aws-cdk": "^2.146.0",
|
|
61
61
|
"aws-cdk-lib": "^2.146.0",
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DelegateHostedZoneRole = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const iam_1 = require("../../resources/aws/iam");
|
|
6
|
-
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const customResources = require("aws-cdk-lib/custom-resources");
|
|
8
|
-
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
9
|
-
// TODO: Automatically import when a domain is imported, updated or created
|
|
10
|
-
const domains = ["Z08225072O6SFKZASVL1U"];
|
|
11
|
-
class DelegateHostedZoneRole extends aws_cdk_lib_1.Stack {
|
|
12
|
-
constructor(scope, id) {
|
|
13
|
-
super(scope, id);
|
|
14
|
-
const getHostedZoneArn = (domains) => {
|
|
15
|
-
const hostedZoneArn = [];
|
|
16
|
-
for (const domain of domains) {
|
|
17
|
-
hostedZoneArn.push(`arn:aws:route53:::hostedzone/${domain}`);
|
|
18
|
-
}
|
|
19
|
-
return hostedZoneArn;
|
|
20
|
-
};
|
|
21
|
-
const listHostedZones = new awsCustomResource_1.AwsCustomResource(this, "listHostedZones", {
|
|
22
|
-
functionName: "listHostedZones",
|
|
23
|
-
onCreate: {
|
|
24
|
-
service: "route-53",
|
|
25
|
-
action: "ListHostedZonesByNameCommand",
|
|
26
|
-
physicalResourceId: customResources.PhysicalResourceId.of("listHostedZones")
|
|
27
|
-
},
|
|
28
|
-
onUpdate: {
|
|
29
|
-
service: "route-53",
|
|
30
|
-
action: "ListHostedZonesByNameCommand",
|
|
31
|
-
physicalResourceId: customResources.PhysicalResourceId.of("HostedZoneId")
|
|
32
|
-
},
|
|
33
|
-
resourceType: "Custom::ListHostedZones",
|
|
34
|
-
policy: customResources.AwsCustomResourcePolicy.fromStatements([
|
|
35
|
-
new aws_iam_1.PolicyStatement({
|
|
36
|
-
actions: ["route53:ListHostedZonesByName"],
|
|
37
|
-
resources: ["*"],
|
|
38
|
-
effect: aws_iam_1.Effect.ALLOW
|
|
39
|
-
})
|
|
40
|
-
])
|
|
41
|
-
});
|
|
42
|
-
new aws_cdk_lib_1.CfnOutput(this, "HostedZoneIds", {
|
|
43
|
-
key: "HostedZoneIds",
|
|
44
|
-
value: listHostedZones.getResponseField("HostedZoneId"),
|
|
45
|
-
exportName: "HostedZoneIds"
|
|
46
|
-
});
|
|
47
|
-
const role = new iam_1.Role(this, "DelegateHostedZoneRole", {
|
|
48
|
-
assumedBy: new aws_iam_1.OrganizationPrincipal(aws_cdk_lib_1.Fn.importValue("OrganisationId")),
|
|
49
|
-
roleName: "DelegateHostedZoneRole",
|
|
50
|
-
inlinePolicies: {
|
|
51
|
-
["listHostedZones"]: new aws_iam_1.PolicyDocument({
|
|
52
|
-
statements: [
|
|
53
|
-
new aws_iam_1.PolicyStatement({
|
|
54
|
-
actions: ["route53:ListHostedZonesByName"],
|
|
55
|
-
resources: ["*"]
|
|
56
|
-
})
|
|
57
|
-
]
|
|
58
|
-
}),
|
|
59
|
-
["changeResourceRecordSets"]: new aws_iam_1.PolicyDocument({
|
|
60
|
-
statements: [
|
|
61
|
-
new aws_iam_1.PolicyStatement({
|
|
62
|
-
actions: ["route53:ChangeResourceRecordSets"],
|
|
63
|
-
resources: getHostedZoneArn(domains)
|
|
64
|
-
})
|
|
65
|
-
]
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
new aws_cdk_lib_1.CfnOutput(this, "DelegateHostedZoneRoleArn", {
|
|
70
|
-
key: "DelegateHostedZoneRoleArn",
|
|
71
|
-
value: role.roleArn,
|
|
72
|
-
exportName: "DelegateHostedZoneRoleArn"
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.DelegateHostedZoneRole = DelegateHostedZoneRole;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGVIb3N0ZWRab25lUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2RlbGVnYXRlSG9zdGVkWm9uZVJvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1EO0FBRW5ELGlEQUErQztBQUMvQyxpREFLNkI7QUFDN0IsZ0VBQWdFO0FBQ2hFLHVGQUFvRjtBQUVwRiwyRUFBMkU7QUFDM0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTFDLE1BQWEsc0JBQXVCLFNBQVEsbUJBQUs7SUFDL0MsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFO1lBQzdDLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztZQUVuQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsYUFBYSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUM5RDtZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JFLFlBQVksRUFBRSxpQkFBaUI7WUFDL0IsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUUsOEJBQThCO2dCQUN0QyxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUMzRDtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFLDhCQUE4QjtnQkFDdEMsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ3hEO1lBQ0QsWUFBWSxFQUFFLHlCQUF5QjtZQUN2QyxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0QsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUNoQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO2lCQUNyQixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxlQUFlO1lBQ3BCLEtBQUssRUFBRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1lBQ3ZELFVBQVUsRUFBRSxlQUFlO1NBQzVCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLElBQUksVUFBSSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUNwRCxTQUFTLEVBQUUsSUFBSSwrQkFBcUIsQ0FBQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RFLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsY0FBYyxFQUFFO2dCQUNkLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLHdCQUFjLENBQUM7b0JBQ3RDLFVBQVUsRUFBRTt3QkFDVixJQUFJLHlCQUFlLENBQUM7NEJBQ2xCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDOzRCQUMxQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7eUJBQ2pCLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQztnQkFDRixDQUFDLDBCQUEwQixDQUFDLEVBQUUsSUFBSSx3QkFBYyxDQUFDO29CQUMvQyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSx5QkFBZSxDQUFDOzRCQUNsQixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzs0QkFDN0MsU0FBUyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQzt5QkFDckMsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFO1lBQy9DLEdBQUcsRUFBRSwyQkFBMkI7WUFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLFVBQVUsRUFBRSwyQkFBMkI7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEVELHdEQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRm4sIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbVwiO1xuaW1wb3J0IHtcbiAgRWZmZWN0LFxuICBPcmdhbml6YXRpb25QcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuLy8gVE9ETzogQXV0b21hdGljYWxseSBpbXBvcnQgd2hlbiBhIGRvbWFpbiBpcyBpbXBvcnRlZCwgdXBkYXRlZCBvciBjcmVhdGVkXG5jb25zdCBkb21haW5zID0gW1wiWjA4MjI1MDcyTzZTRktaQVNWTDFVXCJdO1xuXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVIb3N0ZWRab25lUm9sZSBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBnZXRIb3N0ZWRab25lQXJuID0gKGRvbWFpbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCBob3N0ZWRab25lQXJuOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGRvbWFpbiBvZiBkb21haW5zKSB7XG4gICAgICAgIGhvc3RlZFpvbmVBcm4ucHVzaChgYXJuOmF3czpyb3V0ZTUzOjo6aG9zdGVkem9uZS8ke2RvbWFpbn1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBob3N0ZWRab25lQXJuO1xuICAgIH07XG5cbiAgICBjb25zdCBsaXN0SG9zdGVkWm9uZXMgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJsaXN0SG9zdGVkWm9uZXNcIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBcImxpc3RIb3N0ZWRab25lc1wiLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJyb3V0ZS01M1wiLFxuICAgICAgICBhY3Rpb246IFwiTGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1JvdXRlNTMuaHRtbCNsaXN0SG9zdGVkWm9uZXMtcHJvcGVydHlcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgIGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXCJsaXN0SG9zdGVkWm9uZXNcIilcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInJvdXRlLTUzXCIsXG4gICAgICAgIGFjdGlvbjogXCJMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvUm91dGU1My5odG1sI2xpc3RIb3N0ZWRab25lcy1wcm9wZXJ0eVxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIkhvc3RlZFpvbmVJZFwiKVxuICAgICAgfSxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Okxpc3RIb3N0ZWRab25lc1wiLFxuICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1dcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiSG9zdGVkWm9uZUlkc1wiLCB7XG4gICAgICBrZXk6IFwiSG9zdGVkWm9uZUlkc1wiLFxuICAgICAgdmFsdWU6IGxpc3RIb3N0ZWRab25lcy5nZXRSZXNwb25zZUZpZWxkKFwiSG9zdGVkWm9uZUlkXCIpLFxuICAgICAgZXhwb3J0TmFtZTogXCJIb3N0ZWRab25lSWRzXCJcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZSh0aGlzLCBcIkRlbGVnYXRlSG9zdGVkWm9uZVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLCAvLyBUT0RPOiBTb3VyY2UgZnJvbSBsb2NhbCBjb25maWcsIHJhdGhlciB0aGFuIGRlcGxveWluZyBpbiBlYWNoIHJlZ2lvblxuICAgICAgcm9sZU5hbWU6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZVwiLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogZ2V0SG9zdGVkWm9uZUFybihkb21haW5zKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiLCB7XG4gICAgICBrZXk6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiLFxuICAgICAgdmFsdWU6IHJvbGUucm9sZUFybixcbiAgICAgIGV4cG9ydE5hbWU6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { Group } from "../../resources/aws/iam/identityCenter/group";
|
|
3
|
-
export interface User {
|
|
4
|
-
email: string;
|
|
5
|
-
firstName: string;
|
|
6
|
-
lastName: string;
|
|
7
|
-
groups: string[];
|
|
8
|
-
}
|
|
9
|
-
interface IdentityCenterUserProps {
|
|
10
|
-
identityStoreId: string;
|
|
11
|
-
identityCenterGroups: Group[];
|
|
12
|
-
}
|
|
13
|
-
export declare class IdentityCenterUser extends Construct {
|
|
14
|
-
constructor(scope: Construct, id: string, props: IdentityCenterUserProps);
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IdentityCenterUser = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const customResources = require("aws-cdk-lib/custom-resources");
|
|
6
|
-
const constructs_1 = require("constructs");
|
|
7
|
-
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
8
|
-
const usersConfig_1 = require("../../utils/usersConfig");
|
|
9
|
-
const capitalizeString_1 = require("../../utils/capitalizeString");
|
|
10
|
-
class IdentityCenterUser extends constructs_1.Construct {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id);
|
|
13
|
-
const users = new usersConfig_1.default().getUsers();
|
|
14
|
-
const identityStoreId = props.identityStoreId;
|
|
15
|
-
const userCount = users.length;
|
|
16
|
-
for (let i = 0; i < userCount; i++) {
|
|
17
|
-
const user = users[i];
|
|
18
|
-
const givenName = (0, capitalizeString_1.capitalizeString)(user.firstName);
|
|
19
|
-
const familyName = (0, capitalizeString_1.capitalizeString)(user.lastName);
|
|
20
|
-
const userParams = {
|
|
21
|
-
IdentityStoreId: identityStoreId,
|
|
22
|
-
UserName: user.email,
|
|
23
|
-
DisplayName: `${givenName} ${familyName}`,
|
|
24
|
-
Name: {
|
|
25
|
-
FamilyName: user.lastName,
|
|
26
|
-
GivenName: user.firstName
|
|
27
|
-
},
|
|
28
|
-
Emails: [
|
|
29
|
-
{
|
|
30
|
-
Primary: true,
|
|
31
|
-
Value: user.email
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
};
|
|
35
|
-
const createUser = new awsCustomResource_1.AwsCustomResource(this, `createUser${givenName}${familyName}`, {
|
|
36
|
-
functionName: "createUsers",
|
|
37
|
-
onCreate: {
|
|
38
|
-
service: "IdentityStore",
|
|
39
|
-
action: "createUser",
|
|
40
|
-
parameters: userParams,
|
|
41
|
-
physicalResourceId: customResources.PhysicalResourceId.of("createUsers")
|
|
42
|
-
},
|
|
43
|
-
onUpdate: {
|
|
44
|
-
service: "IdentityStore",
|
|
45
|
-
action: "updateUser",
|
|
46
|
-
parameters: userParams,
|
|
47
|
-
physicalResourceId: customResources.PhysicalResourceId.of("updateUsers")
|
|
48
|
-
},
|
|
49
|
-
resourceType: "Custom::IdentityCenterUsers"
|
|
50
|
-
});
|
|
51
|
-
new awsCustomResource_1.AwsCustomResource(this, `deleteUser${givenName}${familyName}`, {
|
|
52
|
-
functionName: "deleteUsers",
|
|
53
|
-
onDelete: {
|
|
54
|
-
service: "IdentityStore",
|
|
55
|
-
action: "deleteUser",
|
|
56
|
-
parameters: {
|
|
57
|
-
IdentityStoreId: identityStoreId,
|
|
58
|
-
UserId: createUser.getResponseField("UserId")
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
resourceType: "Custom::IdentityCenterUsers"
|
|
62
|
-
});
|
|
63
|
-
new aws_cdk_lib_1.CfnOutput(this, `UserId${givenName}${familyName}`, {
|
|
64
|
-
key: `UserId${givenName}${familyName}`,
|
|
65
|
-
value: createUser.getResponseField("UserId"),
|
|
66
|
-
exportName: `UserId${givenName}${familyName}`
|
|
67
|
-
});
|
|
68
|
-
// props.identityCenterGroups.forEach((identityCenterGroup))
|
|
69
|
-
user.groups.forEach((group) => {
|
|
70
|
-
const identityCenterGroup = props.identityCenterGroups.find((identityCenterGroup) => identityCenterGroup.displayName === group);
|
|
71
|
-
if (!identityCenterGroup) {
|
|
72
|
-
throw new Error(`Group ${group} does not exist in Identity Center Groups`);
|
|
73
|
-
}
|
|
74
|
-
const groupId = identityCenterGroup.attrGroupId;
|
|
75
|
-
const groupName = identityCenterGroup.displayName;
|
|
76
|
-
const groupMembershipId = new awsCustomResource_1.AwsCustomResource(this, `createGroupMembership${givenName}${familyName}To${groupName}`, {
|
|
77
|
-
functionName: "createGroupMembership",
|
|
78
|
-
onCreate: {
|
|
79
|
-
service: "IdentityStore",
|
|
80
|
-
action: "createGroupMembership",
|
|
81
|
-
parameters: {
|
|
82
|
-
GroupId: groupId,
|
|
83
|
-
IdentityStoreId: identityStoreId,
|
|
84
|
-
MemberId: {
|
|
85
|
-
UserId: createUser.getResponseField("UserId")
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
physicalResourceId: customResources.PhysicalResourceId.of(`createGroupMembership${givenName}${familyName}To${groupName}`)
|
|
89
|
-
},
|
|
90
|
-
onUpdate: {
|
|
91
|
-
service: "IdentityStore",
|
|
92
|
-
action: "createGroupMembership",
|
|
93
|
-
parameters: {
|
|
94
|
-
GroupId: groupId,
|
|
95
|
-
IdentityStoreId: identityStoreId,
|
|
96
|
-
MemberId: {
|
|
97
|
-
UserId: createUser.getResponseField("UserId")
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
physicalResourceId: customResources.PhysicalResourceId.of(`updateGroupMembership${givenName}${familyName}To${groupName}`)
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
new awsCustomResource_1.AwsCustomResource(this, `deleteGroupMembership${givenName}${familyName}From${groupName}`, {
|
|
104
|
-
functionName: "deleteGroupMembership",
|
|
105
|
-
onDelete: {
|
|
106
|
-
service: "IdentityStore",
|
|
107
|
-
action: "deleteGroupMembership",
|
|
108
|
-
parameters: {
|
|
109
|
-
IdentityStoreId: identityStoreId,
|
|
110
|
-
MembershipId: groupMembershipId.getResponseField("MembershipId")
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
resourceType: "Custom::IdentityCenterUsers"
|
|
114
|
-
});
|
|
115
|
-
new aws_cdk_lib_1.CfnOutput(this, `GroupMembershipId${givenName}${familyName}${groupName}`, {
|
|
116
|
-
key: `GroupMembershipId${givenName}${familyName}${groupName}`,
|
|
117
|
-
value: groupMembershipId.getResponseField("MembershipId"),
|
|
118
|
-
exportName: `GroupMembershipId${givenName}${familyName}${groupName}`
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.IdentityCenterUser = IdentityCenterUser;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXJVc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvaWRlbnRpdHlDZW50ZXJVc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4QyxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBQ3ZDLHVGQUFvRjtBQUNwRix5REFBa0Q7QUFFbEQsbUVBQWdFO0FBNEJoRSxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEtBQUssR0FBVyxJQUFJLHFCQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBRTlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQXlCO2dCQUN2QyxlQUFlLEVBQUUsZUFBZTtnQkFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNwQixXQUFXLEVBQUUsR0FBRyxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUN6QyxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN6QixTQUFTLEVBQUUs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Q0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0NBQ0Y7QUF2SkQsZ0RBdUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IFVzZXJzQ29uZmlnIGZyb20gXCIuLi8uLi91dGlscy91c2Vyc0NvbmZpZ1wiO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXBcIjtcbmltcG9ydCB7IGNhcGl0YWxpemVTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2FwaXRhbGl6ZVN0cmluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICBlbWFpbDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZ3JvdXBzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIGNyZWF0ZVVzZXJQYXJhbWV0ZXJzIHtcbiAgSWRlbnRpdHlTdG9yZUlkOiBzdHJpbmc7XG4gIFVzZXJOYW1lOiBzdHJpbmc7XG4gIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIE5hbWU6IHtcbiAgICBGYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgR2l2ZW5OYW1lOiBzdHJpbmc7XG4gIH07XG4gIEVtYWlsczoge1xuICAgIFByaW1hcnk6IGJvb2xlYW47XG4gICAgVmFsdWU6IHN0cmluZztcbiAgfVtdO1xufVxuXG5pbnRlcmZhY2UgSWRlbnRpdHlDZW50ZXJVc2VyUHJvcHMge1xuICBpZGVudGl0eVN0b3JlSWQ6IHN0cmluZztcbiAgaWRlbnRpdHlDZW50ZXJHcm91cHM6IEdyb3VwW107XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUNlbnRlclVzZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWRlbnRpdHlDZW50ZXJVc2VyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdXNlcnM6IFVzZXJbXSA9IG5ldyBVc2Vyc0NvbmZpZygpLmdldFVzZXJzKCk7XG4gICAgY29uc3QgaWRlbnRpdHlTdG9yZUlkID0gcHJvcHMuaWRlbnRpdHlTdG9yZUlkO1xuXG4gICAgY29uc3QgdXNlckNvdW50ID0gdXNlcnMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdXNlckNvdW50OyBpKyspIHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2Vyc1tpXTtcbiAgICAgIGNvbnN0IGdpdmVuTmFtZSA9IGNhcGl0YWxpemVTdHJpbmcodXNlci5maXJzdE5hbWUpO1xuICAgICAgY29uc3QgZmFtaWx5TmFtZSA9IGNhcGl0YWxpemVTdHJpbmcodXNlci5sYXN0TmFtZSk7XG4gICAgICBjb25zdCB1c2VyUGFyYW1zOiBjcmVhdGVVc2VyUGFyYW1ldGVycyA9IHtcbiAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgIFVzZXJOYW1lOiB1c2VyLmVtYWlsLFxuICAgICAgICBEaXNwbGF5TmFtZTogYCR7Z2l2ZW5OYW1lfSAke2ZhbWlseU5hbWV9YCxcbiAgICAgICAgTmFtZToge1xuICAgICAgICAgIEZhbWlseU5hbWU6IHVzZXIubGFzdE5hbWUsXG4gICAgICAgICAgR2l2ZW5OYW1lOiB1c2VyLmZpcnN0TmFtZVxuICAgICAgICB9LFxuICAgICAgICBFbWFpbHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBQcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgVmFsdWU6IHVzZXIuZW1haWxcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNyZWF0ZVVzZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBjcmVhdGVVc2VyJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6IFwiY3JlYXRlVXNlcnNcIixcbiAgICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICBhY3Rpb246IFwiY3JlYXRlVXNlclwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0lkZW50aXR5U3RvcmUuaHRtbCNjcmVhdGVVc2VyLXByb3BlcnR5XG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB1c2VyUGFyYW1zLFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlVXNlcnNcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgIGFjdGlvbjogXCJ1cGRhdGVVc2VyXCIsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB1c2VyUGFyYW1zLFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwidXBkYXRlVXNlcnNcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklkZW50aXR5Q2VudGVyVXNlcnNcIlxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYGRlbGV0ZVVzZXIke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9YCwge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IFwiZGVsZXRlVXNlcnNcIixcbiAgICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICBhY3Rpb246IFwiZGVsZXRlVXNlclwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0lkZW50aXR5U3RvcmUuaHRtbCNkZWxldGVVc2VyLXByb3BlcnR5XG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICBVc2VySWQ6IGNyZWF0ZVVzZXIuZ2V0UmVzcG9uc2VGaWVsZChcIlVzZXJJZFwiKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6SWRlbnRpdHlDZW50ZXJVc2Vyc1wiXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgVXNlcklkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsIHtcbiAgICAgICAga2V5OiBgVXNlcklkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsXG4gICAgICAgIHZhbHVlOiBjcmVhdGVVc2VyLmdldFJlc3BvbnNlRmllbGQoXCJVc2VySWRcIiksXG4gICAgICAgIGV4cG9ydE5hbWU6IGBVc2VySWQke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9YFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHByb3BzLmlkZW50aXR5Q2VudGVyR3JvdXBzLmZvckVhY2goKGlkZW50aXR5Q2VudGVyR3JvdXApKVxuXG4gICAgICB1c2VyLmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBjb25zdCBpZGVudGl0eUNlbnRlckdyb3VwID0gcHJvcHMuaWRlbnRpdHlDZW50ZXJHcm91cHMuZmluZChcbiAgICAgICAgICAoaWRlbnRpdHlDZW50ZXJHcm91cCkgPT4gaWRlbnRpdHlDZW50ZXJHcm91cC5kaXNwbGF5TmFtZSA9PT0gZ3JvdXBcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWlkZW50aXR5Q2VudGVyR3JvdXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgR3JvdXAgJHtncm91cH0gZG9lcyBub3QgZXhpc3QgaW4gSWRlbnRpdHkgQ2VudGVyIEdyb3Vwc2BcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ3JvdXBJZCA9IGlkZW50aXR5Q2VudGVyR3JvdXAuYXR0ckdyb3VwSWQ7XG4gICAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IGlkZW50aXR5Q2VudGVyR3JvdXAuZGlzcGxheU5hbWU7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwSWQgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgY3JlYXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfVRvJHtncm91cE5hbWV9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IFwiY3JlYXRlR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgICAgYWN0aW9uOiBcImNyZWF0ZUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgR3JvdXBJZDogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgICBNZW1iZXJJZDoge1xuICAgICAgICAgICAgICAgICAgVXNlcklkOiBjcmVhdGVVc2VyLmdldFJlc3BvbnNlRmllbGQoXCJVc2VySWRcIilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICAgICAgICBgY3JlYXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfVRvJHtncm91cE5hbWV9YFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICAgIGFjdGlvbjogXCJjcmVhdGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIEdyb3VwSWQ6IGdyb3VwSWQsXG4gICAgICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICAgICAgTWVtYmVySWQ6IHtcbiAgICAgICAgICAgICAgICAgIFVzZXJJZDogY3JlYXRlVXNlci5nZXRSZXNwb25zZUZpZWxkKFwiVXNlcklkXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICAgICAgYHVwZGF0ZUdyb3VwTWVtYmVyc2hpcCR7Z2l2ZW5OYW1lfSR7ZmFtaWx5TmFtZX1UbyR7Z3JvdXBOYW1lfWBcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgZGVsZXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfUZyb20ke2dyb3VwTmFtZX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uTmFtZTogXCJkZWxldGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwiSWRlbnRpdHlTdG9yZVwiLFxuICAgICAgICAgICAgICBhY3Rpb246IFwiZGVsZXRlR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgICBNZW1iZXJzaGlwSWQ6IGdyb3VwTWVtYmVyc2hpcElkLmdldFJlc3BvbnNlRmllbGQoXCJNZW1iZXJzaGlwSWRcIilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklkZW50aXR5Q2VudGVyVXNlcnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYEdyb3VwTWVtYmVyc2hpcElkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfSR7Z3JvdXBOYW1lfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBgR3JvdXBNZW1iZXJzaGlwSWQke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9JHtncm91cE5hbWV9YCxcbiAgICAgICAgICAgIHZhbHVlOiBncm91cE1lbWJlcnNoaXBJZC5nZXRSZXNwb25zZUZpZWxkKFwiTWVtYmVyc2hpcElkXCIpLFxuICAgICAgICAgICAgZXhwb3J0TmFtZTogYEdyb3VwTWVtYmVyc2hpcElkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfSR7Z3JvdXBOYW1lfWBcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IpamPool = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const ipamPool_1 = require("../../resources/aws/networking/ipamPool");
|
|
6
|
-
const CidrAllocation = {
|
|
7
|
-
production: "10.0.0.0/8",
|
|
8
|
-
staging: "80.0.0.0/8",
|
|
9
|
-
development: "150.0.0.0/8",
|
|
10
|
-
platform: "200.0.0.0/8",
|
|
11
|
-
businessContinuity: "210.0.0.0/8"
|
|
12
|
-
};
|
|
13
|
-
const IpamPrivateDefaultScopeId = aws_cdk_lib_1.Fn.importValue("IpamPrivateDefaultScopeId");
|
|
14
|
-
class IpamPool extends aws_cdk_lib_1.Stack {
|
|
15
|
-
constructor(scope, id) {
|
|
16
|
-
super(scope, id);
|
|
17
|
-
for (const [environment, cidrBlock] of Object.entries(CidrAllocation)) {
|
|
18
|
-
const ipamPool = new ipamPool_1.IpamPool(this, `${environment}IpamPool`, {
|
|
19
|
-
description: `${environment} IPAM pool - ${cidrBlock}`,
|
|
20
|
-
addressFamily: "ipv4",
|
|
21
|
-
ipamScopeId: IpamPrivateDefaultScopeId,
|
|
22
|
-
locale: environment == "businessContinuity" ? "eu-west-1" : "us-east-1",
|
|
23
|
-
allocationResourceTags: [
|
|
24
|
-
{
|
|
25
|
-
key: "fjall:operations:pool",
|
|
26
|
-
value: `${environment}`
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
autoImport: false,
|
|
30
|
-
provisionedCidrs: [{ cidr: cidrBlock }],
|
|
31
|
-
tags: [
|
|
32
|
-
{
|
|
33
|
-
key: "fjall:operations:pool",
|
|
34
|
-
value: "top-level"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
key: "fjall:costAllocation:environment",
|
|
38
|
-
value: `${environment}`
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
});
|
|
42
|
-
new aws_cdk_lib_1.CfnOutput(this, `${environment}IpamPoolId`, {
|
|
43
|
-
key: `${environment}IpamPoolId`,
|
|
44
|
-
value: ipamPool.attrIpamPoolId,
|
|
45
|
-
exportName: `${environment}IpamPoolId`
|
|
46
|
-
});
|
|
47
|
-
new aws_cdk_lib_1.CfnOutput(this, `${environment}IpamPoolArn`, {
|
|
48
|
-
key: `${environment}IpamPoolArn`,
|
|
49
|
-
value: ipamPool.attrArn,
|
|
50
|
-
exportName: `${environment}IpamPoolArn`
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.IpamPool = IpamPool;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pcGFtUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBbUQ7QUFHbkQsc0VBQW9GO0FBRXBGLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLGtCQUFrQixFQUFFLGFBQWE7Q0FDbEMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUU5RSxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUNqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLFVBQVUsRUFBRTtnQkFDakUsV0FBVyxFQUFFLEdBQUcsV0FBVyxnQkFBZ0IsU0FBUyxFQUFFO2dCQUN0RCxhQUFhLEVBQUUsTUFBTTtnQkFDckIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsTUFBTSxFQUFFLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXO2dCQUN2RSxzQkFBc0IsRUFBRTtvQkFDdEI7d0JBQ0UsR0FBRyxFQUFFLHVCQUF1Qjt3QkFDNUIsS0FBSyxFQUFFLEdBQUcsV0FBVyxFQUFFO3FCQUN4QjtpQkFDRjtnQkFDRCxVQUFVLEVBQUUsS0FBSztnQkFDakIsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxFQUFFO29CQUNKO3dCQUNFLEdBQUcsRUFBRSx1QkFBdUI7d0JBQzVCLEtBQUssRUFBRSxXQUFXO3FCQUNuQjtvQkFDRDt3QkFDRSxHQUFHLEVBQUUsa0NBQWtDO3dCQUN2QyxLQUFLLEVBQUUsR0FBRyxXQUFXLEVBQUU7cUJBQ3hCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLFdBQVcsWUFBWSxFQUFFO2dCQUM5QyxHQUFHLEVBQUUsR0FBRyxXQUFXLFlBQVk7Z0JBQy9CLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYztnQkFDOUIsVUFBVSxFQUFFLEdBQUcsV0FBVyxZQUFZO2FBQ3ZDLENBQUMsQ0FBQztZQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLGFBQWEsRUFBRTtnQkFDL0MsR0FBRyxFQUFFLEdBQUcsV0FBVyxhQUFhO2dCQUNoQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLFVBQVUsRUFBRSxHQUFHLFdBQVcsYUFBYTthQUN4QyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQTNDRCw0QkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbiwgU3RhY2ssIENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgSXBhbVBvb2wgYXMgaXBhbVBvb2xDbGFzcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaXBhbVBvb2xcIjtcblxuY29uc3QgQ2lkckFsbG9jYXRpb24gPSB7XG4gIHByb2R1Y3Rpb246IFwiMTAuMC4wLjAvOFwiLFxuICBzdGFnaW5nOiBcIjgwLjAuMC4wLzhcIixcbiAgZGV2ZWxvcG1lbnQ6IFwiMTUwLjAuMC4wLzhcIixcbiAgcGxhdGZvcm06IFwiMjAwLjAuMC4wLzhcIixcbiAgYnVzaW5lc3NDb250aW51aXR5OiBcIjIxMC4wLjAuMC84XCJcbn07XG5cbmNvbnN0IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQgPSBGbi5pbXBvcnRWYWx1ZShcIklwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWRcIik7XG5cbmV4cG9ydCBjbGFzcyBJcGFtUG9vbCBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBmb3IgKGNvbnN0IFtlbnZpcm9ubWVudCwgY2lkckJsb2NrXSBvZiBPYmplY3QuZW50cmllcyhDaWRyQWxsb2NhdGlvbikpIHtcbiAgICAgIGNvbnN0IGlwYW1Qb29sID0gbmV3IGlwYW1Qb29sQ2xhc3ModGhpcywgYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xgLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHtlbnZpcm9ubWVudH0gSVBBTSBwb29sIC0gJHtjaWRyQmxvY2t9YCxcbiAgICAgICAgYWRkcmVzc0ZhbWlseTogXCJpcHY0XCIsXG4gICAgICAgIGlwYW1TY29wZUlkOiBJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkLFxuICAgICAgICBsb2NhbGU6IGVudmlyb25tZW50ID09IFwiYnVzaW5lc3NDb250aW51aXR5XCIgPyBcImV1LXdlc3QtMVwiIDogXCJ1cy1lYXN0LTFcIixcbiAgICAgICAgYWxsb2NhdGlvblJlc291cmNlVGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICAgIHZhbHVlOiBgJHtlbnZpcm9ubWVudH1gXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBhdXRvSW1wb3J0OiBmYWxzZSxcbiAgICAgICAgcHJvdmlzaW9uZWRDaWRyczogW3sgY2lkcjogY2lkckJsb2NrIH1dLFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgdmFsdWU6IFwidG9wLWxldmVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgICAgICAgdmFsdWU6IGAke2Vudmlyb25tZW50fWBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2Vudmlyb25tZW50fUlwYW1Qb29sSWRgLCB7XG4gICAgICAgIGtleTogYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xJZGAsXG4gICAgICAgIHZhbHVlOiBpcGFtUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xJZGBcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYCwge1xuICAgICAgICBrZXk6IGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYCxcbiAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IpamPoolResourceShare = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const resourceShare_1 = require("../../resources/aws/utilities/resourceShare");
|
|
6
|
-
const getAccountId_1 = require("../../utils/getAccountId");
|
|
7
|
-
const environments = [
|
|
8
|
-
"production",
|
|
9
|
-
"staging",
|
|
10
|
-
"development",
|
|
11
|
-
"businessContinuity"
|
|
12
|
-
];
|
|
13
|
-
const ipamShareProps = environments.map((environment) => {
|
|
14
|
-
return {
|
|
15
|
-
environment: environment,
|
|
16
|
-
accountId: (0, getAccountId_1.default)(environment),
|
|
17
|
-
ipamPoolArn: aws_cdk_lib_1.Fn.importValue(`${environment}IpamPoolArn`)
|
|
18
|
-
};
|
|
19
|
-
});
|
|
20
|
-
class IpamPoolResourceShare extends aws_cdk_lib_1.Stack {
|
|
21
|
-
constructor(scope, id, props) {
|
|
22
|
-
super(scope, id, props);
|
|
23
|
-
for (const ipamShareProp of ipamShareProps) {
|
|
24
|
-
if (!ipamShareProp.accountId)
|
|
25
|
-
continue;
|
|
26
|
-
new resourceShare_1.ResourceShare(this, `${ipamShareProp.environment}IpamResourceShare`, {
|
|
27
|
-
name: `${ipamShareProp.environment}IpamResourceShare`,
|
|
28
|
-
allowExternalPrincipals: false,
|
|
29
|
-
principals: [ipamShareProp.accountId],
|
|
30
|
-
resourceArns: [ipamShareProp.ipamPoolArn],
|
|
31
|
-
tags: [
|
|
32
|
-
{
|
|
33
|
-
key: "fjall:costAllocation:environment",
|
|
34
|
-
value: `${ipamShareProp.environment}`
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.IpamPoolResourceShare = IpamPoolResourceShare;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2xSZXNvdXJjZVNoYXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvaXBhbVBvb2xSZXNvdXJjZVNoYXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvRDtBQUdwRCwrRUFBNEU7QUFDNUUsMkRBQW9EO0FBRXBELE1BQU0sWUFBWSxHQUFHO0lBQ25CLFlBQVk7SUFDWixTQUFTO0lBQ1QsYUFBYTtJQUNiLG9CQUFvQjtDQUNyQixDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3RELE9BQU87UUFDTCxXQUFXLEVBQUUsV0FBVztRQUN4QixTQUFTLEVBQUUsSUFBQSxzQkFBWSxFQUFDLFdBQVcsQ0FBQztRQUNwQyxXQUFXLEVBQUUsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLGFBQWEsQ0FBQztLQUN6RCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFhLHFCQUFzQixTQUFRLG1CQUFLO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsS0FBSyxNQUFNLGFBQWEsSUFBSSxjQUFjLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO2dCQUFFLFNBQVM7WUFFdkMsSUFBSSw2QkFBYSxDQUFDLElBQUksRUFBRSxHQUFHLGFBQWEsQ0FBQyxXQUFXLG1CQUFtQixFQUFFO2dCQUN2RSxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsV0FBVyxtQkFBbUI7Z0JBQ3JELHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7Z0JBQ3pDLElBQUksRUFBRTtvQkFDSjt3QkFDRSxHQUFHLEVBQUUsa0NBQWtDO3dCQUN2QyxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsV0FBVyxFQUFFO3FCQUN0QztpQkFDRjthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGO0FBckJELHNEQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrUHJvcHMsIFN0YWNrLCBGbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgUmVzb3VyY2VTaGFyZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9yZXNvdXJjZVNoYXJlXCI7XG5pbXBvcnQgZ2V0QWNjb3VudElkIGZyb20gXCIuLi8uLi91dGlscy9nZXRBY2NvdW50SWRcIjtcblxuY29uc3QgZW52aXJvbm1lbnRzID0gW1xuICBcInByb2R1Y3Rpb25cIixcbiAgXCJzdGFnaW5nXCIsXG4gIFwiZGV2ZWxvcG1lbnRcIixcbiAgXCJidXNpbmVzc0NvbnRpbnVpdHlcIlxuXTtcblxuY29uc3QgaXBhbVNoYXJlUHJvcHMgPSBlbnZpcm9ubWVudHMubWFwKChlbnZpcm9ubWVudCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGVudmlyb25tZW50OiBlbnZpcm9ubWVudCxcbiAgICBhY2NvdW50SWQ6IGdldEFjY291bnRJZChlbnZpcm9ubWVudCksXG4gICAgaXBhbVBvb2xBcm46IEZuLmltcG9ydFZhbHVlKGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYClcbiAgfTtcbn0pO1xuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xSZXNvdXJjZVNoYXJlIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGZvciAoY29uc3QgaXBhbVNoYXJlUHJvcCBvZiBpcGFtU2hhcmVQcm9wcykge1xuICAgICAgaWYgKCFpcGFtU2hhcmVQcm9wLmFjY291bnRJZCkgY29udGludWU7XG5cbiAgICAgIG5ldyBSZXNvdXJjZVNoYXJlKHRoaXMsIGAke2lwYW1TaGFyZVByb3AuZW52aXJvbm1lbnR9SXBhbVJlc291cmNlU2hhcmVgLCB7XG4gICAgICAgIG5hbWU6IGAke2lwYW1TaGFyZVByb3AuZW52aXJvbm1lbnR9SXBhbVJlc291cmNlU2hhcmVgLFxuICAgICAgICBhbGxvd0V4dGVybmFsUHJpbmNpcGFsczogZmFsc2UsXG4gICAgICAgIHByaW5jaXBhbHM6IFtpcGFtU2hhcmVQcm9wLmFjY291bnRJZF0sXG4gICAgICAgIHJlc291cmNlQXJuczogW2lwYW1TaGFyZVByb3AuaXBhbVBvb2xBcm5dLFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50XCIsXG4gICAgICAgICAgICB2YWx1ZTogYCR7aXBhbVNoYXJlUHJvcC5lbnZpcm9ubWVudH1gXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RamEnableSharing = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const customResources = require("aws-cdk-lib/custom-resources");
|
|
6
|
-
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
8
|
-
class RamEnableSharing extends aws_cdk_lib_1.Stack {
|
|
9
|
-
constructor(scope, id, props) {
|
|
10
|
-
super(scope, id, props);
|
|
11
|
-
new awsCustomResource_1.AwsCustomResource(this, "ramEnableSharing", {
|
|
12
|
-
functionName: "ramEnableSharing",
|
|
13
|
-
onCreate: {
|
|
14
|
-
service: "RAM",
|
|
15
|
-
action: "enableSharingWithAwsOrganization",
|
|
16
|
-
parameters: {},
|
|
17
|
-
physicalResourceId: customResources.PhysicalResourceId.of("ramEnableSharing")
|
|
18
|
-
},
|
|
19
|
-
resourceType: "Custom::ramEnableSharing",
|
|
20
|
-
policy: customResources.AwsCustomResourcePolicy.fromStatements([
|
|
21
|
-
new aws_iam_1.PolicyStatement({
|
|
22
|
-
actions: [
|
|
23
|
-
"ram:EnableSharingWithAwsOrganization",
|
|
24
|
-
"iam:CreateServiceLinkedRole",
|
|
25
|
-
"organizations:enableAWSServiceAccess",
|
|
26
|
-
"organizations:DescribeOrganization"
|
|
27
|
-
],
|
|
28
|
-
resources: ["*"] // TODO: Find out the exact pricipal for this
|
|
29
|
-
})
|
|
30
|
-
])
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.RamEnableSharing = RamEnableSharing;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFtRW5hYmxlU2hhcmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL3JhbUVuYWJsZVNoYXJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBQ2hELGdFQUFnRTtBQUNoRSxpREFBc0Q7QUFHdEQsdUZBQW9GO0FBRXBGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQUs7SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQjtRQUMxRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUM5QyxZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsa0NBQWtDO2dCQUMxQyxVQUFVLEVBQUUsRUFBRTtnQkFDZCxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUM1RDtZQUNELFlBQVksRUFBRSwwQkFBMEI7WUFDeEMsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLHNDQUFzQzt3QkFDdEMsNkJBQTZCO3dCQUM3QixzQ0FBc0M7d0JBQ3RDLG9DQUFvQztxQkFDckM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsNkNBQTZDO2lCQUMvRCxDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTNCRCw0Q0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFja1Byb3BzLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIFJhbUVuYWJsZVNoYXJpbmcgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwicmFtRW5hYmxlU2hhcmluZ1wiLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IFwicmFtRW5hYmxlU2hhcmluZ1wiLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJSQU1cIixcbiAgICAgICAgYWN0aW9uOiBcImVuYWJsZVNoYXJpbmdXaXRoQXdzT3JnYW5pemF0aW9uXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvUkFNLmh0bWwjZW5hYmxlU2hhcmluZ1dpdGhBd3NPcmdhbml6YXRpb24tcHJvcGVydHlcbiAgICAgICAgcGFyYW1ldGVyczoge30sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwicmFtRW5hYmxlU2hhcmluZ1wiKVxuICAgICAgfSxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OnJhbUVuYWJsZVNoYXJpbmdcIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJyYW06RW5hYmxlU2hhcmluZ1dpdGhBd3NPcmdhbml6YXRpb25cIixcbiAgICAgICAgICAgIFwiaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlXCIsXG4gICAgICAgICAgICBcIm9yZ2FuaXphdGlvbnM6ZW5hYmxlQVdTU2VydmljZUFjY2Vzc1wiLFxuICAgICAgICAgICAgXCJvcmdhbml6YXRpb25zOkRlc2NyaWJlT3JnYW5pemF0aW9uXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSAvLyBUT0RPOiBGaW5kIG91dCB0aGUgZXhhY3QgcHJpY2lwYWwgZm9yIHRoaXNcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|