truemark-cdk-lib 1.28.1 → 1.29.0
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/aws-patterns-autobackup/lib/autobackup-construct.js +6 -2
- package/dist/aws-securitylake/index.d.ts +1 -0
- package/dist/aws-securitylake/index.js +18 -0
- package/dist/aws-securitylake/lib/index.d.ts +1 -0
- package/dist/aws-securitylake/lib/index.js +18 -0
- package/dist/aws-securitylake/lib/standard-security-lake.d.ts +223 -0
- package/dist/aws-securitylake/lib/standard-security-lake.js +266 -0
- package/dist/aws-vpc/lib/index.d.ts +1 -0
- package/dist/aws-vpc/lib/index.js +2 -1
- package/dist/aws-vpc/lib/nat-instance.d.ts +166 -0
- package/dist/aws-vpc/lib/nat-instance.js +508 -0
- package/dist/aws-vpc/lib/standard-network.d.ts +19 -3
- package/dist/aws-vpc/lib/standard-network.js +42 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -2
- package/package.json +8 -1
|
@@ -4,6 +4,7 @@ exports.AutoBackup = void 0;
|
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const aws_backup_1 = require("aws-cdk-lib/aws-backup");
|
|
6
6
|
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
7
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
8
|
const aws_cdk_1 = require("../../aws-cdk");
|
|
8
9
|
class AutoBackup extends aws_cdk_1.ExtendedConstruct {
|
|
9
10
|
daily(days) {
|
|
@@ -33,9 +34,12 @@ class AutoBackup extends aws_cdk_1.ExtendedConstruct {
|
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
36
|
tagSelection(plan, tagValue) {
|
|
36
|
-
plan.addSelection('Selection', {
|
|
37
|
+
const selection = plan.addSelection('Selection', {
|
|
37
38
|
resources: [aws_backup_1.BackupResource.fromTag('backup:policy', tagValue)],
|
|
38
39
|
});
|
|
40
|
+
// The default backup policy does not cover S3, so a tagged bucket fails
|
|
41
|
+
// with a permission error until the S3-specific policy is attached.
|
|
42
|
+
selection.grantPrincipal.addManagedPolicy(aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName('AWSBackupServiceRolePolicyForS3Backup'));
|
|
39
43
|
}
|
|
40
44
|
constructor(scope, id, props = {}) {
|
|
41
45
|
super(scope, id);
|
|
@@ -81,4 +85,4 @@ class AutoBackup extends aws_cdk_1.ExtendedConstruct {
|
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
exports.AutoBackup = AutoBackup;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2JhY2t1cC1jb25zdHJ1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLXBhdHRlcm5zLWF1dG9iYWNrdXAvbGliL2F1dG9iYWNrdXAtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFxQztBQUNyQyx1REFNZ0M7QUFDaEMsdURBQWdEO0FBQ2hELGlEQUE4RDtBQUU5RCwyQ0FBZ0Q7QUFnQmhELE1BQWEsVUFBVyxTQUFRLDJCQUFpQjtJQUN2QyxLQUFLLENBQUMsSUFBWTtRQUN4QixPQUFPLElBQUksMkJBQWMsQ0FBQztZQUN4QixRQUFRLEVBQUUsT0FBTztZQUNqQixrQkFBa0IsRUFBRSxxQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDO1lBQzNELFdBQVcsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSwyQkFBYyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGtCQUFrQixFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxJQUFJLEVBQUUsR0FBRztnQkFDVCxNQUFNLEVBQUUsR0FBRztnQkFDWCxPQUFPLEVBQUUsS0FBSzthQUNmLENBQUM7WUFDRixXQUFXLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksMkJBQWMsQ0FBQztZQUN4QixRQUFRLEVBQUUsU0FBUztZQUNuQixrQkFBa0IsRUFBRSxxQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFDLENBQUM7WUFDckUsc0JBQXNCLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pDLFdBQVcsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFnQixFQUFFLFFBQWdCO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFO1lBQy9DLFNBQVMsRUFBRSxDQUFDLDJCQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUMvRCxDQUFDLENBQUM7UUFDSCx3RUFBd0U7UUFDeEUsb0VBQW9FO1FBQ25FLFNBQVMsQ0FBQyxjQUF3QixDQUFDLGdCQUFnQixDQUNsRCx1QkFBYSxDQUFDLHdCQUF3QixDQUNwQyx1Q0FBdUMsQ0FDeEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBeUIsRUFBRTtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLElBQUksd0JBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25ELGVBQWUsRUFBRSxZQUFZO1NBQzlCLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUNoRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQThCLENBQUM7WUFDakUsUUFBUSxDQUFDLGlCQUFpQixHQUFHO2dCQUMzQixnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixnQkFBZ0IsRUFBRSxJQUFJO2dCQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVM7b0JBQ2hELENBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQywwQkFBMEIsRUFBQztvQkFDdkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNSLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdEQsV0FBVztZQUNYLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEQsV0FBVztZQUNYLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFakQsTUFBTSxjQUFjLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUM1RCxXQUFXO1lBQ1gsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25ELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFckQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLHVCQUFVLENBQ3JELElBQUksRUFDSixhQUFhLEVBQ2I7WUFDRSxXQUFXO1lBQ1gsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEUsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQ0FBZ0MsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUVwRSxNQUFNLGlDQUFpQyxHQUFHLElBQUksdUJBQVUsQ0FDdEQsSUFBSSxFQUNKLGVBQWUsRUFDZjtZQUNFLFdBQVc7WUFDWCxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2RSxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLGlDQUFpQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBcEdELGdDQW9HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb259IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEJhY2t1cFBsYW4sXG4gIEJhY2t1cFBsYW5SdWxlLFxuICBCYWNrdXBSZXNvdXJjZSxcbiAgQmFja3VwVmF1bHQsXG4gIHR5cGUgQ2ZuQmFja3VwVmF1bHQsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iYWNrdXAnO1xuaW1wb3J0IHtTY2hlZHVsZX0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQge3R5cGUgSVJvbGUsIE1hbmFnZWRQb2xpY3l9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0fSBmcm9tICcuLi8uLi9hd3MtY2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvQmFja3VwUHJvcHMge1xuICAvKipcbiAgICogSWYgdHJ1ZSwgYXBwbGllcyBBV1MgQmFja3VwIFZhdWx0IExvY2sgdG8gdGhlIEF1dG9CYWNrdXAgdmF1bHQuXG4gICAqIE5vdGU6IFZhdWx0IExvY2sgYXBwbGllcyB0byBhbGwgcmVjb3ZlcnkgcG9pbnRzIGluIHRoZSB2YXVsdC5cbiAgICovXG4gIGVuYWJsZUltbXV0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gcHJvdmlkZWQgKG1pbiAzKSwgVmF1bHQgTG9jayBpcyBDb21wbGlhbmNlIG1vZGUuXG4gICAqIFdoZW4gb21pdHRlZCwgVmF1bHQgTG9jayBpcyBHb3Zlcm5hbmNlIG1vZGUuXG4gICAqL1xuICB2YXVsdExvY2tDaGFuZ2VhYmxlRm9yRGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9CYWNrdXAgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG4gIHByaXZhdGUgZGFpbHkoZGF5czogbnVtYmVyKTogQmFja3VwUGxhblJ1bGUge1xuICAgIHJldHVybiBuZXcgQmFja3VwUGxhblJ1bGUoe1xuICAgICAgcnVsZU5hbWU6ICdEYWlseScsXG4gICAgICBzY2hlZHVsZUV4cHJlc3Npb246IFNjaGVkdWxlLmNyb24oe2hvdXI6ICc1JywgbWludXRlOiAnMCd9KSxcbiAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKGRheXMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB3ZWVrbHkoZGF5czogbnVtYmVyKTogQmFja3VwUGxhblJ1bGUge1xuICAgIHJldHVybiBuZXcgQmFja3VwUGxhblJ1bGUoe1xuICAgICAgcnVsZU5hbWU6ICdXZWVrbHknLFxuICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBTY2hlZHVsZS5jcm9uKHtcbiAgICAgICAgaG91cjogJzUnLFxuICAgICAgICBtaW51dGU6ICcwJyxcbiAgICAgICAgd2Vla0RheTogJ1NBVCcsXG4gICAgICB9KSxcbiAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKGRheXMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtb250aGx5KGRheXM6IG51bWJlcik6IEJhY2t1cFBsYW5SdWxlIHtcbiAgICByZXR1cm4gbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgIHJ1bGVOYW1lOiAnTW9udGhseScsXG4gICAgICBzY2hlZHVsZUV4cHJlc3Npb246IFNjaGVkdWxlLmNyb24oe2RheTogJzEnLCBob3VyOiAnNScsIG1pbnV0ZTogJzAnfSksXG4gICAgICBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyOiBEdXJhdGlvbi5kYXlzKDMwKSxcbiAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKGRheXMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0YWdTZWxlY3Rpb24ocGxhbjogQmFja3VwUGxhbiwgdGFnVmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHBsYW4uYWRkU2VsZWN0aW9uKCdTZWxlY3Rpb24nLCB7XG4gICAgICByZXNvdXJjZXM6IFtCYWNrdXBSZXNvdXJjZS5mcm9tVGFnKCdiYWNrdXA6cG9saWN5JywgdGFnVmFsdWUpXSxcbiAgICB9KTtcbiAgICAvLyBUaGUgZGVmYXVsdCBiYWNrdXAgcG9saWN5IGRvZXMgbm90IGNvdmVyIFMzLCBzbyBhIHRhZ2dlZCBidWNrZXQgZmFpbHNcbiAgICAvLyB3aXRoIGEgcGVybWlzc2lvbiBlcnJvciB1bnRpbCB0aGUgUzMtc3BlY2lmaWMgcG9saWN5IGlzIGF0dGFjaGVkLlxuICAgIChzZWxlY3Rpb24uZ3JhbnRQcmluY2lwYWwgYXMgSVJvbGUpLmFkZE1hbmFnZWRQb2xpY3koXG4gICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgJ0FXU0JhY2t1cFNlcnZpY2VSb2xlUG9saWN5Rm9yUzNCYWNrdXAnLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF1dG9CYWNrdXBQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJhY2t1cFZhdWx0ID0gbmV3IEJhY2t1cFZhdWx0KHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgYmFja3VwVmF1bHROYW1lOiAnQXV0b0JhY2t1cCcsXG4gICAgfSk7XG5cbiAgICAvLyBBcHBseSBWYXVsdCBMb2NrIHdoZW4gZW5hYmxlSW1tdXRhYmxlIGlzIHRydWVcbiAgICBpZiAocHJvcHMuZW5hYmxlSW1tdXRhYmxlKSB7XG4gICAgICBjb25zdCBjZm5WYXVsdCA9IGJhY2t1cFZhdWx0Lm5vZGUuZGVmYXVsdENoaWxkIGFzIENmbkJhY2t1cFZhdWx0O1xuICAgICAgY2ZuVmF1bHQubG9ja0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIG1pblJldGVudGlvbkRheXM6IDEsXG4gICAgICAgIG1heFJldGVudGlvbkRheXM6IDI1NTUsXG4gICAgICAgIC4uLihwcm9wcy52YXVsdExvY2tDaGFuZ2VhYmxlRm9yRGF5cyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB7Y2hhbmdlYWJsZUZvckRheXM6IHByb3BzLnZhdWx0TG9ja0NoYW5nZWFibGVGb3JEYXlzfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0V2VlayA9IG5ldyBCYWNrdXBQbGFuKHRoaXMsICdEZWZhdWx0V2VlaycsIHtcbiAgICAgIGJhY2t1cFZhdWx0LFxuICAgICAgYmFja3VwUGxhblJ1bGVzOiBbdGhpcy5kYWlseSg3KV0sXG4gICAgfSk7XG4gICAgdGhpcy50YWdTZWxlY3Rpb24oZGVmYXVsdFdlZWssICdkZWZhdWx0LXdlZWsnKTtcblxuICAgIGNvbnN0IGRlZmF1bHRNb250aCA9IG5ldyBCYWNrdXBQbGFuKHRoaXMsICdEZWZhdWx0TW9udGgnLCB7XG4gICAgICBiYWNrdXBWYXVsdCxcbiAgICAgIGJhY2t1cFBsYW5SdWxlczogW3RoaXMuZGFpbHkoMzUpXSxcbiAgICB9KTtcbiAgICB0aGlzLnRhZ1NlbGVjdGlvbihkZWZhdWx0TW9udGgsICdkZWZhdWx0LW1vbnRoJyk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVhcnRlciA9IG5ldyBCYWNrdXBQbGFuKHRoaXMsICdEZWZhdWx0UXVhcnRlcicsIHtcbiAgICAgIGJhY2t1cFZhdWx0LFxuICAgICAgYmFja3VwUGxhblJ1bGVzOiBbdGhpcy5kYWlseSgzNSksIHRoaXMud2Vla2x5KDkwKV0sXG4gICAgfSk7XG4gICAgdGhpcy50YWdTZWxlY3Rpb24oZGVmYXVsdFF1YXJ0ZXIsICdkZWZhdWx0LXF1YXJ0ZXInKTtcblxuICAgIGNvbnN0IGRlZmF1bHREYWlseTM1V2Vla2x5OTBNb250aGx5MzY1ID0gbmV3IEJhY2t1cFBsYW4oXG4gICAgICB0aGlzLFxuICAgICAgJ0RlZmF1bHRZZWFyJyxcbiAgICAgIHtcbiAgICAgICAgYmFja3VwVmF1bHQsXG4gICAgICAgIGJhY2t1cFBsYW5SdWxlczogW3RoaXMuZGFpbHkoMzUpLCB0aGlzLndlZWtseSg5MCksIHRoaXMubW9udGhseSgzNjUpXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLnRhZ1NlbGVjdGlvbihkZWZhdWx0RGFpbHkzNVdlZWtseTkwTW9udGhseTM2NSwgJ2RlZmF1bHQteWVhcicpO1xuXG4gICAgY29uc3QgZGVmYXVsdERhaWx5MzVXZWVrbHk5ME1vbnRobHkyNTU1ID0gbmV3IEJhY2t1cFBsYW4oXG4gICAgICB0aGlzLFxuICAgICAgJ0RlZmF1bHQ3WWVhcnMnLFxuICAgICAge1xuICAgICAgICBiYWNrdXBWYXVsdCxcbiAgICAgICAgYmFja3VwUGxhblJ1bGVzOiBbdGhpcy5kYWlseSgzNSksIHRoaXMud2Vla2x5KDkwKSwgdGhpcy5tb250aGx5KDI1NTUpXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLnRhZ1NlbGVjdGlvbihkZWZhdWx0RGFpbHkzNVdlZWtseTkwTW9udGhseTI1NTUsICdkZWZhdWx0LTcteWVhcnMnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/index';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib/index"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzLXNlY3VyaXR5bGFrZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './standard-security-lake';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./standard-security-lake"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLXNlY3VyaXR5bGFrZS9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RhbmRhcmQtc2VjdXJpdHktbGFrZSc7XG4iXX0=
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { CfnServiceLinkedRole, Role } from 'aws-cdk-lib/aws-iam';
|
|
2
|
+
import { CfnAwsLogSource, CfnDataLake } from 'aws-cdk-lib/aws-securitylake';
|
|
3
|
+
import type { Construct } from 'constructs';
|
|
4
|
+
import { ExtendedConstruct, type ExtendedConstructProps } from '../../aws-cdk/index';
|
|
5
|
+
/**
|
|
6
|
+
* The AWS-native log sources that Amazon Security Lake can ingest.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html
|
|
9
|
+
*/
|
|
10
|
+
export declare enum AwsLogSourceName {
|
|
11
|
+
CLOUD_TRAIL_MGMT = "CLOUD_TRAIL_MGMT",
|
|
12
|
+
LAMBDA_EXECUTION = "LAMBDA_EXECUTION",
|
|
13
|
+
ROUTE53 = "ROUTE53",
|
|
14
|
+
S3_DATA = "S3_DATA",
|
|
15
|
+
SH_FINDINGS = "SH_FINDINGS",
|
|
16
|
+
VPC_FLOW = "VPC_FLOW",
|
|
17
|
+
EKS_AUDIT = "EKS_AUDIT",
|
|
18
|
+
WAF = "WAF"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Properties for an individual AWS log source to enable on the data lake.
|
|
22
|
+
*/
|
|
23
|
+
export interface AwsLogSourceProps {
|
|
24
|
+
/**
|
|
25
|
+
* The name of the AWS log source to enable.
|
|
26
|
+
*/
|
|
27
|
+
readonly sourceName: AwsLogSourceName | string;
|
|
28
|
+
/**
|
|
29
|
+
* The version of the AWS log source to enable.
|
|
30
|
+
*
|
|
31
|
+
* @default - '2.0'
|
|
32
|
+
*/
|
|
33
|
+
readonly sourceVersion?: string;
|
|
34
|
+
/**
|
|
35
|
+
* The AWS accounts whose data should be collected for this source. If not
|
|
36
|
+
* provided, the data lake owner account is used.
|
|
37
|
+
*
|
|
38
|
+
* @default - [Stack.of(this).account]
|
|
39
|
+
*/
|
|
40
|
+
readonly accounts?: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Lifecycle transition for Security Lake data.
|
|
44
|
+
*/
|
|
45
|
+
export interface SecurityLakeTransitionProps {
|
|
46
|
+
/**
|
|
47
|
+
* The number of days before data transitions to the given storage class.
|
|
48
|
+
*/
|
|
49
|
+
readonly days: number;
|
|
50
|
+
/**
|
|
51
|
+
* The target S3 storage class. Supported values include `STANDARD_IA`,
|
|
52
|
+
* `ONEZONE_IA`, `INTELLIGENT_TIERING`, `GLACIER_IR`, `GLACIER` and
|
|
53
|
+
* `DEEP_ARCHIVE`.
|
|
54
|
+
*/
|
|
55
|
+
readonly storageClass: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Lifecycle configuration options for Security Lake managed S3 storage.
|
|
59
|
+
*/
|
|
60
|
+
export interface SecurityLakeLifecycleProps {
|
|
61
|
+
/**
|
|
62
|
+
* The number of days before Security Lake data is expired/deleted.
|
|
63
|
+
*
|
|
64
|
+
* @default - data is retained indefinitely
|
|
65
|
+
*/
|
|
66
|
+
readonly expirationDays?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Transitions applied to Security Lake data.
|
|
69
|
+
*
|
|
70
|
+
* @default - no transitions
|
|
71
|
+
*/
|
|
72
|
+
readonly transitions?: SecurityLakeTransitionProps[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Replication configuration for Security Lake data.
|
|
76
|
+
*/
|
|
77
|
+
export interface SecurityLakeReplicationProps {
|
|
78
|
+
/**
|
|
79
|
+
* One or more rollup Regions to replicate data to.
|
|
80
|
+
*/
|
|
81
|
+
readonly regions: string[];
|
|
82
|
+
/**
|
|
83
|
+
* The ARN of the IAM role Security Lake uses to replicate objects. If not
|
|
84
|
+
* provided, a role will be created automatically.
|
|
85
|
+
*
|
|
86
|
+
* @default - a new role is created
|
|
87
|
+
*/
|
|
88
|
+
readonly roleArn?: string;
|
|
89
|
+
/**
|
|
90
|
+
* The ARN of the customer-managed KMS key encrypting the source
|
|
91
|
+
* (originating-Region) Security Lake bucket. Required when the enclosing
|
|
92
|
+
* `StandardSecurityLake` is configured with a customer-managed `kmsKeyId`
|
|
93
|
+
* and this construct creates the replication role (i.e. when `roleArn`
|
|
94
|
+
* is not provided); S3 needs `kms:Decrypt` on this key to read objects
|
|
95
|
+
* before replicating them. Not required when the source bucket uses
|
|
96
|
+
* S3-managed or AWS-managed encryption.
|
|
97
|
+
*
|
|
98
|
+
* This is independent of `destinationKmsKeyArns`: Security Lake rollup
|
|
99
|
+
* Regions may use their own encryption settings, so a CMK source can
|
|
100
|
+
* replicate to an SSE-S3 rollup and vice versa.
|
|
101
|
+
*
|
|
102
|
+
* @default - no KMS decrypt statement is added
|
|
103
|
+
*/
|
|
104
|
+
readonly sourceKmsKeyArn?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The ARNs of the customer-managed KMS keys encrypting the destination
|
|
107
|
+
* (rollup-Region) Security Lake buckets. Supply when any rollup Region's
|
|
108
|
+
* bucket uses a customer-managed KMS key so the replication role can
|
|
109
|
+
* `kms:Encrypt` / `kms:GenerateDataKey` against them. Not required when
|
|
110
|
+
* every rollup bucket uses S3-managed or AWS-managed encryption.
|
|
111
|
+
*
|
|
112
|
+
* This is independent of `sourceKmsKeyArn` and the source lake's
|
|
113
|
+
* `kmsKeyId`.
|
|
114
|
+
*
|
|
115
|
+
* @default - no KMS encrypt statement is added
|
|
116
|
+
*/
|
|
117
|
+
readonly destinationKmsKeyArns?: string[];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Properties for StandardSecurityLake.
|
|
121
|
+
*/
|
|
122
|
+
export interface StandardSecurityLakeProps extends ExtendedConstructProps {
|
|
123
|
+
/**
|
|
124
|
+
* The KMS key id to use to encrypt data stored by Security Lake. Use the
|
|
125
|
+
* literal string `S3_MANAGED_KEY` to use S3 managed keys (SSE-S3). Omit to
|
|
126
|
+
* let Security Lake use its default managed key.
|
|
127
|
+
*
|
|
128
|
+
* @default - Security Lake managed encryption
|
|
129
|
+
*/
|
|
130
|
+
readonly kmsKeyId?: string;
|
|
131
|
+
/**
|
|
132
|
+
* The ARN of the role used by Security Lake to manage the AWS Glue
|
|
133
|
+
* metastore. If omitted, a role is created with the
|
|
134
|
+
* `AmazonSecurityLakeMetastoreManager` AWS managed policy attached.
|
|
135
|
+
*
|
|
136
|
+
* @default - a role is created
|
|
137
|
+
*/
|
|
138
|
+
readonly metaStoreManagerRoleArn?: string;
|
|
139
|
+
/**
|
|
140
|
+
* The ARN of the customer-managed KMS key used to encrypt Security Lake
|
|
141
|
+
* data. Required when `kmsKeyId` is set to a customer-managed key and this
|
|
142
|
+
* construct creates the metastore manager role (i.e. when
|
|
143
|
+
* `metaStoreManagerRoleArn` is not provided). The metastore manager
|
|
144
|
+
* Lambda must decrypt and (re)encrypt Security Lake metadata; the AWS
|
|
145
|
+
* managed policy `AmazonSecurityLakeMetastoreManager` does not include
|
|
146
|
+
* KMS permissions, so without this grant the stack deploys but partition
|
|
147
|
+
* updates and subscriber queries silently fail. Not required when
|
|
148
|
+
* `kmsKeyId` is unset or set to `S3_MANAGED_KEY`.
|
|
149
|
+
*
|
|
150
|
+
* @default - no KMS statement is added (sufficient when the data lake
|
|
151
|
+
* uses Security Lake defaults or SSE-S3)
|
|
152
|
+
*/
|
|
153
|
+
readonly metaStoreManagerKmsKeyArn?: string;
|
|
154
|
+
/**
|
|
155
|
+
* Lifecycle configuration for the Security Lake managed S3 storage.
|
|
156
|
+
*
|
|
157
|
+
* @default - Security Lake defaults
|
|
158
|
+
*/
|
|
159
|
+
readonly lifecycle?: SecurityLakeLifecycleProps;
|
|
160
|
+
/**
|
|
161
|
+
* Replication configuration for the Security Lake managed S3 storage.
|
|
162
|
+
*
|
|
163
|
+
* @default - no replication
|
|
164
|
+
*/
|
|
165
|
+
readonly replication?: SecurityLakeReplicationProps;
|
|
166
|
+
/**
|
|
167
|
+
* The AWS native log sources to enable on the data lake. Sources are
|
|
168
|
+
* created sequentially using `DependsOn` as required by Security Lake.
|
|
169
|
+
*
|
|
170
|
+
* @default - no log sources are enabled
|
|
171
|
+
*/
|
|
172
|
+
readonly logSources?: AwsLogSourceProps[];
|
|
173
|
+
/**
|
|
174
|
+
* Whether to create the `AWSServiceRoleForLakeFormationDataAccess`
|
|
175
|
+
* service-linked role. Security Lake requires this role to exist in the
|
|
176
|
+
* account before a data lake can be created; however the role is a
|
|
177
|
+
* singleton per account and is frequently auto-created on first use of
|
|
178
|
+
* Lake Formation. Enable this only when you know the role does not yet
|
|
179
|
+
* exist in the account, otherwise stack creation will fail with
|
|
180
|
+
* `has been taken in this account`.
|
|
181
|
+
*
|
|
182
|
+
* The data lake will `DependsOn` this role when it is created so ordering
|
|
183
|
+
* is handled automatically.
|
|
184
|
+
*
|
|
185
|
+
* @default false
|
|
186
|
+
*/
|
|
187
|
+
readonly createLakeFormationServiceLinkedRole?: boolean;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Standard Amazon Security Lake. Wraps the Security Lake L1 constructs to
|
|
191
|
+
* stand up a data lake with an optional set of AWS native log sources
|
|
192
|
+
* enabled, a metastore manager role, lifecycle policy and replication.
|
|
193
|
+
*
|
|
194
|
+
* Where this construct does not meet your needs, use the underlying
|
|
195
|
+
* `CfnDataLake` and `CfnAwsLogSource` constructs directly.
|
|
196
|
+
*/
|
|
197
|
+
export declare class StandardSecurityLake extends ExtendedConstruct {
|
|
198
|
+
/**
|
|
199
|
+
* The underlying `CfnDataLake` resource.
|
|
200
|
+
*/
|
|
201
|
+
readonly dataLake: CfnDataLake;
|
|
202
|
+
/**
|
|
203
|
+
* The IAM role used by Security Lake to manage the Glue metastore. When
|
|
204
|
+
* `metaStoreManagerRoleArn` is provided this will be `undefined`.
|
|
205
|
+
*/
|
|
206
|
+
readonly metaStoreManagerRole?: Role;
|
|
207
|
+
/**
|
|
208
|
+
* The IAM role used by Security Lake to replicate objects. Only created
|
|
209
|
+
* when replication is enabled and no `roleArn` was supplied.
|
|
210
|
+
*/
|
|
211
|
+
readonly replicationRole?: Role;
|
|
212
|
+
/**
|
|
213
|
+
* The Lake Formation `AWSServiceRoleForLakeFormationDataAccess`
|
|
214
|
+
* service-linked role, when it was provisioned by this construct.
|
|
215
|
+
*/
|
|
216
|
+
readonly lakeFormationServiceLinkedRole?: CfnServiceLinkedRole;
|
|
217
|
+
/**
|
|
218
|
+
* The `CfnAwsLogSource` resources created by this construct, in the order
|
|
219
|
+
* they were declared.
|
|
220
|
+
*/
|
|
221
|
+
readonly logSources: CfnAwsLogSource[];
|
|
222
|
+
constructor(scope: Construct, id: string, props?: StandardSecurityLakeProps);
|
|
223
|
+
}
|