@aws-solutions-constructs/aws-cloudfront-s3 1.144.0 → 1.147.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.
@@ -35,6 +35,10 @@ const cloudfrontFunction = new cloudfront.Function(stack, "MyFunction", {
35
35
  }")
36
36
  });
37
37
  new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
38
+ cloudFrontLoggingBucketProps: {
39
+ removalPolicy: core_1.RemovalPolicy.DESTROY,
40
+ autoDeleteObjects: true
41
+ },
38
42
  cloudFrontDistributionProps: {
39
43
  defaultBehavior: {
40
44
  functionAssociations: [
@@ -47,8 +51,10 @@ new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
47
51
  },
48
52
  bucketProps: {
49
53
  removalPolicy: core_1.RemovalPolicy.DESTROY,
54
+ autoDeleteObjects: true
50
55
  }
51
56
  });
57
+ core_2.suppressAutoDeleteHandlerWarnings(stack);
52
58
  // Synth
53
59
  app.synth();
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tLXNlY3VyaXR5LWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b20tc2VjdXJpdHktaGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLHdDQUEwRDtBQUMxRCxnQ0FBd0M7QUFDeEMseURBQXdFO0FBQ3hFLHNEQUFzRDtBQUV0RCxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztBQUU3RSw2QkFBNkI7QUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtJQUN0RSxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7Ozs7Ozs7OztJQVN2QyxDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsSUFBSSxvQkFBYyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM5QywyQkFBMkIsRUFBRTtRQUMzQixlQUFlLEVBQUU7WUFDZixvQkFBb0IsRUFBRTtnQkFDcEI7b0JBQ0UsU0FBUyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlO29CQUN2RCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjthQUNGO1NBQ0Y7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87S0FDckM7Q0FDRixDQUFDLENBQUM7QUFFSCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcIkBhd3MtY2RrL2NvcmVcIjtcbmltcG9ydCB7IENsb3VkRnJvbnRUb1MzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gXCJAYXdzLWNkay9hd3MtY2xvdWRmcm9udFwiO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBhd3MtY2xvdWRmcm9udC1zMyc7XG5cbi8vIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uXG5jb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBuZXcgY2xvdWRmcm9udC5GdW5jdGlvbihzdGFjaywgXCJNeUZ1bmN0aW9uXCIsIHtcbiAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsgdmFyIHJlc3BvbnNlID0gZXZlbnQucmVzcG9uc2U7IFxcXG4gICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOyBcXFxuICAgIGhlYWRlcnNbJ3N0cmljdC10cmFuc3BvcnQtc2VjdXJpdHknXSA9IHsgdmFsdWU6ICdtYXgtYWdlPTYzMDcyMDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZCd9OyBcXFxuICAgIGhlYWRlcnNbJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5J10gPSB7IHZhbHVlOiBcXFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBiYXNlLXVyaSAnc2VsZic7IGltZy1zcmMgJ3NlbGYnOyBzY3JpcHQtc3JjICdzZWxmJzsgc3R5bGUtc3JjICdzZWxmJyBodHRwczo7IG9iamVjdC1zcmMgJ25vbmUnOyBmcmFtZS1hbmNlc3RvcnMgJ25vbmUnOyBmb250LXNyYyAnc2VsZicgaHR0cHM6OyBmb3JtLWFjdGlvbiAnc2VsZic7IG1hbmlmZXN0LXNyYyAnc2VsZic7IGNvbm5lY3Qtc3JjICdzZWxmJ1xcXCIgfTsgXFxcbiAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZid9OyBcXFxuICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcXFxuICAgIGhlYWRlcnNbJ3gteHNzLXByb3RlY3Rpb24nXSA9IHt2YWx1ZTogJzE7IG1vZGU9YmxvY2snfTsgXFxcbiAgICBoZWFkZXJzWydyZWZlcnJlci1wb2xpY3knXSA9IHsgdmFsdWU6ICdzYW1lLW9yaWdpbicgfTsgXFxcbiAgICByZXR1cm4gcmVzcG9uc2U7IFxcXG4gIH1cIilcbn0pO1xuXG5uZXcgQ2xvdWRGcm9udFRvUzMoc3RhY2ssICd0ZXN0LWNsb3VkZnJvbnQtczMnLCB7XG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvblxuICAgICAgICB9XG4gICAgICBdLFxuICAgIH1cbiAgfSxcbiAgYnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gIH1cbn0pO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tLXNlY3VyaXR5LWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b20tc2VjdXJpdHktaGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLHdDQUEwRDtBQUMxRCxnQ0FBd0M7QUFDeEMseURBQTJHO0FBQzNHLHNEQUFzRDtBQUV0RCxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztBQUU3RSw2QkFBNkI7QUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtJQUN0RSxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7Ozs7Ozs7OztJQVN2QyxDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsSUFBSSxvQkFBYyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM5Qyw0QkFBNEIsRUFBRTtRQUM1QixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO1FBQ3BDLGlCQUFpQixFQUFFLElBQUk7S0FDeEI7SUFDRCwyQkFBMkIsRUFBRTtRQUMzQixlQUFlLEVBQUU7WUFDZixvQkFBb0IsRUFBRTtnQkFDcEI7b0JBQ0UsU0FBUyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlO29CQUN2RCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjthQUNGO1NBQ0Y7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtDQUNGLENBQUMsQ0FBQztBQUVILHdDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRvUzMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lLCBzdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3MgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tIFwiQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnRcIjtcblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWNsb3VkZnJvbnQtczMnO1xuXG4vLyBjdXN0b20gY2xvdWRmcm9udCBmdW5jdGlvblxuY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gbmV3IGNsb3VkZnJvbnQuRnVuY3Rpb24oc3RhY2ssIFwiTXlGdW5jdGlvblwiLCB7XG4gIGNvZGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoXCJmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7IHZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlOyBcXFxuICAgIHZhciBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsgXFxcbiAgICBoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnfTsgXFxcbiAgICBoZWFkZXJzWydjb250ZW50LXNlY3VyaXR5LXBvbGljeSddID0geyB2YWx1ZTogXFxcImRlZmF1bHQtc3JjICdub25lJzsgYmFzZS11cmkgJ3NlbGYnOyBpbWctc3JjICdzZWxmJzsgc2NyaXB0LXNyYyAnc2VsZic7IHN0eWxlLXNyYyAnc2VsZicgaHR0cHM6OyBvYmplY3Qtc3JjICdub25lJzsgZnJhbWUtYW5jZXN0b3JzICdub25lJzsgZm9udC1zcmMgJ3NlbGYnIGh0dHBzOjsgZm9ybS1hY3Rpb24gJ3NlbGYnOyBtYW5pZmVzdC1zcmMgJ3NlbGYnOyBjb25uZWN0LXNyYyAnc2VsZidcXFwiIH07IFxcXG4gICAgaGVhZGVyc1sneC1jb250ZW50LXR5cGUtb3B0aW9ucyddID0geyB2YWx1ZTogJ25vc25pZmYnfTsgXFxcbiAgICBoZWFkZXJzWyd4LWZyYW1lLW9wdGlvbnMnXSA9IHt2YWx1ZTogJ0RFTlknfTsgXFxcbiAgICBoZWFkZXJzWyd4LXhzcy1wcm90ZWN0aW9uJ10gPSB7dmFsdWU6ICcxOyBtb2RlPWJsb2NrJ307IFxcXG4gICAgaGVhZGVyc1sncmVmZXJyZXItcG9saWN5J10gPSB7IHZhbHVlOiAnc2FtZS1vcmlnaW4nIH07IFxcXG4gICAgcmV0dXJuIHJlc3BvbnNlOyBcXFxuICB9XCIpXG59KTtcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlXG4gIH0sXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvblxuICAgICAgICB9XG4gICAgICBdLFxuICAgIH1cbiAgfSxcbiAgYnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgfVxufSk7XG5cbnN1cHByZXNzQXV0b0RlbGV0ZUhhbmRsZXJXYXJuaW5ncyhzdGFjayk7XG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -120,6 +120,12 @@
120
120
  "IgnorePublicAcls": true,
121
121
  "RestrictPublicBuckets": true
122
122
  },
123
+ "Tags": [
124
+ {
125
+ "Key": "aws-cdk:auto-delete-objects",
126
+ "Value": "true"
127
+ }
128
+ ],
123
129
  "VersioningConfiguration": {
124
130
  "Status": "Enabled"
125
131
  }
@@ -169,6 +175,44 @@
169
175
  }
170
176
  ]
171
177
  },
178
+ {
179
+ "Action": [
180
+ "s3:GetBucket*",
181
+ "s3:List*",
182
+ "s3:DeleteObject*"
183
+ ],
184
+ "Effect": "Allow",
185
+ "Principal": {
186
+ "AWS": {
187
+ "Fn::GetAtt": [
188
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
189
+ "Arn"
190
+ ]
191
+ }
192
+ },
193
+ "Resource": [
194
+ {
195
+ "Fn::GetAtt": [
196
+ "testcloudfronts3S3BucketE0C5F76E",
197
+ "Arn"
198
+ ]
199
+ },
200
+ {
201
+ "Fn::Join": [
202
+ "",
203
+ [
204
+ {
205
+ "Fn::GetAtt": [
206
+ "testcloudfronts3S3BucketE0C5F76E",
207
+ "Arn"
208
+ ]
209
+ },
210
+ "/*"
211
+ ]
212
+ ]
213
+ }
214
+ ]
215
+ },
172
216
  {
173
217
  "Action": "s3:GetObject",
174
218
  "Effect": "Allow",
@@ -210,6 +254,25 @@
210
254
  }
211
255
  }
212
256
  },
257
+ "testcloudfronts3S3BucketAutoDeleteObjectsCustomResourceA13DD8F7": {
258
+ "Type": "Custom::S3AutoDeleteObjects",
259
+ "Properties": {
260
+ "ServiceToken": {
261
+ "Fn::GetAtt": [
262
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
263
+ "Arn"
264
+ ]
265
+ },
266
+ "BucketName": {
267
+ "Ref": "testcloudfronts3S3BucketE0C5F76E"
268
+ }
269
+ },
270
+ "DependsOn": [
271
+ "testcloudfronts3S3BucketPolicy250F1F61"
272
+ ],
273
+ "UpdateReplacePolicy": "Delete",
274
+ "DeletionPolicy": "Delete"
275
+ },
213
276
  "testcloudfronts3SetHttpSecurityHeaders6C5A1E69": {
214
277
  "Type": "AWS::CloudFront::Function",
215
278
  "Properties": {
@@ -241,6 +304,12 @@
241
304
  "IgnorePublicAcls": true,
242
305
  "RestrictPublicBuckets": true
243
306
  },
307
+ "Tags": [
308
+ {
309
+ "Key": "aws-cdk:auto-delete-objects",
310
+ "Value": "true"
311
+ }
312
+ ],
244
313
  "VersioningConfiguration": {
245
314
  "Status": "Enabled"
246
315
  }
@@ -299,12 +368,69 @@
299
368
  ]
300
369
  }
301
370
  ]
371
+ },
372
+ {
373
+ "Action": [
374
+ "s3:GetBucket*",
375
+ "s3:List*",
376
+ "s3:DeleteObject*"
377
+ ],
378
+ "Effect": "Allow",
379
+ "Principal": {
380
+ "AWS": {
381
+ "Fn::GetAtt": [
382
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
383
+ "Arn"
384
+ ]
385
+ }
386
+ },
387
+ "Resource": [
388
+ {
389
+ "Fn::GetAtt": [
390
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
391
+ "Arn"
392
+ ]
393
+ },
394
+ {
395
+ "Fn::Join": [
396
+ "",
397
+ [
398
+ {
399
+ "Fn::GetAtt": [
400
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
401
+ "Arn"
402
+ ]
403
+ },
404
+ "/*"
405
+ ]
406
+ ]
407
+ }
408
+ ]
302
409
  }
303
410
  ],
304
411
  "Version": "2012-10-17"
305
412
  }
306
413
  }
307
414
  },
415
+ "testcloudfronts3CloudfrontLoggingBucketAutoDeleteObjectsCustomResource19604D88": {
416
+ "Type": "Custom::S3AutoDeleteObjects",
417
+ "Properties": {
418
+ "ServiceToken": {
419
+ "Fn::GetAtt": [
420
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
421
+ "Arn"
422
+ ]
423
+ },
424
+ "BucketName": {
425
+ "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8"
426
+ }
427
+ },
428
+ "DependsOn": [
429
+ "testcloudfronts3CloudfrontLoggingBucketPolicyDF55851B"
430
+ ],
431
+ "UpdateReplacePolicy": "Delete",
432
+ "DeletionPolicy": "Delete"
433
+ },
308
434
  "testcloudfronts3CloudFrontDistributionOrigin1S3Origin4695F058": {
309
435
  "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
310
436
  "Properties": {
@@ -382,6 +508,82 @@
382
508
  ]
383
509
  }
384
510
  }
511
+ },
512
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": {
513
+ "Type": "AWS::IAM::Role",
514
+ "Properties": {
515
+ "AssumeRolePolicyDocument": {
516
+ "Version": "2012-10-17",
517
+ "Statement": [
518
+ {
519
+ "Action": "sts:AssumeRole",
520
+ "Effect": "Allow",
521
+ "Principal": {
522
+ "Service": "lambda.amazonaws.com"
523
+ }
524
+ }
525
+ ]
526
+ },
527
+ "ManagedPolicyArns": [
528
+ {
529
+ "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
530
+ }
531
+ ]
532
+ }
533
+ },
534
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": {
535
+ "Type": "AWS::Lambda::Function",
536
+ "Properties": {
537
+ "Code": {
538
+ "S3Bucket": {
539
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
540
+ },
541
+ "S3Key": "15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538.zip"
542
+ },
543
+ "Timeout": 900,
544
+ "MemorySize": 128,
545
+ "Handler": "__entrypoint__.handler",
546
+ "Role": {
547
+ "Fn::GetAtt": [
548
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
549
+ "Arn"
550
+ ]
551
+ },
552
+ "Runtime": "nodejs12.x",
553
+ "Description": {
554
+ "Fn::Join": [
555
+ "",
556
+ [
557
+ "Lambda function for auto-deleting objects in ",
558
+ {
559
+ "Ref": "testcloudfronts3S3BucketE0C5F76E"
560
+ },
561
+ " S3 bucket."
562
+ ]
563
+ ]
564
+ }
565
+ },
566
+ "DependsOn": [
567
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092"
568
+ ],
569
+ "Metadata": {
570
+ "cfn_nag": {
571
+ "rules_to_suppress": [
572
+ {
573
+ "id": "W58",
574
+ "reason": "CDK generated custom resource"
575
+ },
576
+ {
577
+ "id": "W89",
578
+ "reason": "CDK generated custom resource"
579
+ },
580
+ {
581
+ "id": "W92",
582
+ "reason": "CDK generated custom resource"
583
+ }
584
+ ]
585
+ }
586
+ }
385
587
  }
386
588
  },
387
589
  "Parameters": {
@@ -24,13 +24,16 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-s3 cust
24
24
  new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
25
25
  bucketProps: {
26
26
  removalPolicy: core_1.RemovalPolicy.DESTROY,
27
+ autoDeleteObjects: true
27
28
  },
28
29
  cloudFrontLoggingBucketProps: {
29
30
  removalPolicy: core_1.RemovalPolicy.DESTROY,
31
+ autoDeleteObjects: true,
30
32
  encryption: aws_s3_1.BucketEncryption.S3_MANAGED,
31
33
  versioned: true
32
34
  }
33
35
  });
36
+ core_2.suppressAutoDeleteHandlerWarnings(stack);
34
37
  // Synth
35
38
  app.synth();
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b21DbG91ZEZyb250TG9nZ2luZ0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLHdDQUEwRDtBQUMxRCw0Q0FBbUQ7QUFDbkQsZ0NBQXdDO0FBQ3hDLHlEQUF3RTtBQUV4RSxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRywwRUFBMEUsQ0FBQztBQUUvRyxJQUFJLG9CQUFjLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO0lBQzlDLFdBQVcsRUFBRTtRQUNYLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87S0FDckM7SUFDRCw0QkFBNEIsRUFBRTtRQUM1QixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO1FBQ3BDLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO1FBQ3ZDLFNBQVMsRUFBRSxJQUFJO0tBQ2hCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsUUFBUTtBQUNSLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0IHsgQXBwLCBTdGFjaywgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJAYXdzLWNkay9jb3JlXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmNyeXB0aW9uIH0gZnJvbSBcIkBhd3MtY2RrL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRvUzMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWNsb3VkZnJvbnQtczMgY3VzdG9tIENsb3VkRnJvbnQgTG9nZ2luZyBCdWJrY2V0JztcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBidWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgfSxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgdmVyc2lvbmVkOiB0cnVlXG4gIH1cbn0pO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b21DbG91ZEZyb250TG9nZ2luZ0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLHdDQUEwRDtBQUMxRCw0Q0FBbUQ7QUFDbkQsZ0NBQXdDO0FBQ3hDLHlEQUEyRztBQUUzRyxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRywwRUFBMEUsQ0FBQztBQUUvRyxJQUFJLG9CQUFjLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO0lBQzlDLFdBQVcsRUFBRTtRQUNYLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtJQUNELDRCQUE0QixFQUFFO1FBQzVCLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtRQUN2QyxTQUFTLEVBQUUsSUFBSTtLQUNoQjtDQUNGLENBQUMsQ0FBQztBQUVILHdDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0IHsgQnVja2V0RW5jcnlwdGlvbiB9IGZyb20gXCJAYXdzLWNkay9hd3MtczNcIjtcbmltcG9ydCB7IENsb3VkRnJvbnRUb1MzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSwgc3VwcHJlc3NBdXRvRGVsZXRlSGFuZGxlcldhcm5pbmdzIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWNsb3VkZnJvbnQtczMgY3VzdG9tIENsb3VkRnJvbnQgTG9nZ2luZyBCdWJrY2V0JztcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBidWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZVxuICB9LFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICB2ZXJzaW9uZWQ6IHRydWVcbiAgfVxufSk7XG5cbnN1cHByZXNzQXV0b0RlbGV0ZUhhbmRsZXJXYXJuaW5ncyhzdGFjayk7XG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -20,6 +20,12 @@
20
20
  "IgnorePublicAcls": true,
21
21
  "RestrictPublicBuckets": true
22
22
  },
23
+ "Tags": [
24
+ {
25
+ "Key": "aws-cdk:auto-delete-objects",
26
+ "Value": "true"
27
+ }
28
+ ],
23
29
  "VersioningConfiguration": {
24
30
  "Status": "Enabled"
25
31
  }
@@ -78,12 +84,69 @@
78
84
  ]
79
85
  }
80
86
  ]
87
+ },
88
+ {
89
+ "Action": [
90
+ "s3:GetBucket*",
91
+ "s3:List*",
92
+ "s3:DeleteObject*"
93
+ ],
94
+ "Effect": "Allow",
95
+ "Principal": {
96
+ "AWS": {
97
+ "Fn::GetAtt": [
98
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
99
+ "Arn"
100
+ ]
101
+ }
102
+ },
103
+ "Resource": [
104
+ {
105
+ "Fn::GetAtt": [
106
+ "testcloudfronts3S3LoggingBucket90D239DD",
107
+ "Arn"
108
+ ]
109
+ },
110
+ {
111
+ "Fn::Join": [
112
+ "",
113
+ [
114
+ {
115
+ "Fn::GetAtt": [
116
+ "testcloudfronts3S3LoggingBucket90D239DD",
117
+ "Arn"
118
+ ]
119
+ },
120
+ "/*"
121
+ ]
122
+ ]
123
+ }
124
+ ]
81
125
  }
82
126
  ],
83
127
  "Version": "2012-10-17"
84
128
  }
85
129
  }
86
130
  },
131
+ "testcloudfronts3S3LoggingBucketAutoDeleteObjectsCustomResource6EE37727": {
132
+ "Type": "Custom::S3AutoDeleteObjects",
133
+ "Properties": {
134
+ "ServiceToken": {
135
+ "Fn::GetAtt": [
136
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
137
+ "Arn"
138
+ ]
139
+ },
140
+ "BucketName": {
141
+ "Ref": "testcloudfronts3S3LoggingBucket90D239DD"
142
+ }
143
+ },
144
+ "DependsOn": [
145
+ "testcloudfronts3S3LoggingBucketPolicy529D4CFF"
146
+ ],
147
+ "UpdateReplacePolicy": "Delete",
148
+ "DeletionPolicy": "Delete"
149
+ },
87
150
  "testcloudfronts3S3BucketE0C5F76E": {
88
151
  "Type": "AWS::S3::Bucket",
89
152
  "Properties": {
@@ -120,6 +183,12 @@
120
183
  "IgnorePublicAcls": true,
121
184
  "RestrictPublicBuckets": true
122
185
  },
186
+ "Tags": [
187
+ {
188
+ "Key": "aws-cdk:auto-delete-objects",
189
+ "Value": "true"
190
+ }
191
+ ],
123
192
  "VersioningConfiguration": {
124
193
  "Status": "Enabled"
125
194
  }
@@ -169,6 +238,44 @@
169
238
  }
170
239
  ]
171
240
  },
241
+ {
242
+ "Action": [
243
+ "s3:GetBucket*",
244
+ "s3:List*",
245
+ "s3:DeleteObject*"
246
+ ],
247
+ "Effect": "Allow",
248
+ "Principal": {
249
+ "AWS": {
250
+ "Fn::GetAtt": [
251
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
252
+ "Arn"
253
+ ]
254
+ }
255
+ },
256
+ "Resource": [
257
+ {
258
+ "Fn::GetAtt": [
259
+ "testcloudfronts3S3BucketE0C5F76E",
260
+ "Arn"
261
+ ]
262
+ },
263
+ {
264
+ "Fn::Join": [
265
+ "",
266
+ [
267
+ {
268
+ "Fn::GetAtt": [
269
+ "testcloudfronts3S3BucketE0C5F76E",
270
+ "Arn"
271
+ ]
272
+ },
273
+ "/*"
274
+ ]
275
+ ]
276
+ }
277
+ ]
278
+ },
172
279
  {
173
280
  "Action": "s3:GetObject",
174
281
  "Effect": "Allow",
@@ -210,6 +317,25 @@
210
317
  }
211
318
  }
212
319
  },
320
+ "testcloudfronts3S3BucketAutoDeleteObjectsCustomResourceA13DD8F7": {
321
+ "Type": "Custom::S3AutoDeleteObjects",
322
+ "Properties": {
323
+ "ServiceToken": {
324
+ "Fn::GetAtt": [
325
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
326
+ "Arn"
327
+ ]
328
+ },
329
+ "BucketName": {
330
+ "Ref": "testcloudfronts3S3BucketE0C5F76E"
331
+ }
332
+ },
333
+ "DependsOn": [
334
+ "testcloudfronts3S3BucketPolicy250F1F61"
335
+ ],
336
+ "UpdateReplacePolicy": "Delete",
337
+ "DeletionPolicy": "Delete"
338
+ },
213
339
  "testcloudfronts3SetHttpSecurityHeaders6C5A1E69": {
214
340
  "Type": "AWS::CloudFront::Function",
215
341
  "Properties": {
@@ -241,12 +367,18 @@
241
367
  "IgnorePublicAcls": true,
242
368
  "RestrictPublicBuckets": true
243
369
  },
370
+ "Tags": [
371
+ {
372
+ "Key": "aws-cdk:auto-delete-objects",
373
+ "Value": "true"
374
+ }
375
+ ],
244
376
  "VersioningConfiguration": {
245
377
  "Status": "Enabled"
246
378
  }
247
379
  },
248
- "UpdateReplacePolicy": "Retain",
249
- "DeletionPolicy": "Retain",
380
+ "UpdateReplacePolicy": "Delete",
381
+ "DeletionPolicy": "Delete",
250
382
  "Metadata": {
251
383
  "cfn_nag": {
252
384
  "rules_to_suppress": [
@@ -299,12 +431,69 @@
299
431
  ]
300
432
  }
301
433
  ]
434
+ },
435
+ {
436
+ "Action": [
437
+ "s3:GetBucket*",
438
+ "s3:List*",
439
+ "s3:DeleteObject*"
440
+ ],
441
+ "Effect": "Allow",
442
+ "Principal": {
443
+ "AWS": {
444
+ "Fn::GetAtt": [
445
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
446
+ "Arn"
447
+ ]
448
+ }
449
+ },
450
+ "Resource": [
451
+ {
452
+ "Fn::GetAtt": [
453
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
454
+ "Arn"
455
+ ]
456
+ },
457
+ {
458
+ "Fn::Join": [
459
+ "",
460
+ [
461
+ {
462
+ "Fn::GetAtt": [
463
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
464
+ "Arn"
465
+ ]
466
+ },
467
+ "/*"
468
+ ]
469
+ ]
470
+ }
471
+ ]
302
472
  }
303
473
  ],
304
474
  "Version": "2012-10-17"
305
475
  }
306
476
  }
307
477
  },
478
+ "testcloudfronts3CloudfrontLoggingBucketAutoDeleteObjectsCustomResource19604D88": {
479
+ "Type": "Custom::S3AutoDeleteObjects",
480
+ "Properties": {
481
+ "ServiceToken": {
482
+ "Fn::GetAtt": [
483
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
484
+ "Arn"
485
+ ]
486
+ },
487
+ "BucketName": {
488
+ "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8"
489
+ }
490
+ },
491
+ "DependsOn": [
492
+ "testcloudfronts3CloudfrontLoggingBucketPolicyDF55851B"
493
+ ],
494
+ "UpdateReplacePolicy": "Delete",
495
+ "DeletionPolicy": "Delete"
496
+ },
308
497
  "testcloudfronts3CloudFrontDistributionOrigin1S3Origin4695F058": {
309
498
  "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
310
499
  "Properties": {
@@ -382,6 +571,82 @@
382
571
  ]
383
572
  }
384
573
  }
574
+ },
575
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": {
576
+ "Type": "AWS::IAM::Role",
577
+ "Properties": {
578
+ "AssumeRolePolicyDocument": {
579
+ "Version": "2012-10-17",
580
+ "Statement": [
581
+ {
582
+ "Action": "sts:AssumeRole",
583
+ "Effect": "Allow",
584
+ "Principal": {
585
+ "Service": "lambda.amazonaws.com"
586
+ }
587
+ }
588
+ ]
589
+ },
590
+ "ManagedPolicyArns": [
591
+ {
592
+ "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
593
+ }
594
+ ]
595
+ }
596
+ },
597
+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": {
598
+ "Type": "AWS::Lambda::Function",
599
+ "Properties": {
600
+ "Code": {
601
+ "S3Bucket": {
602
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
603
+ },
604
+ "S3Key": "15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538.zip"
605
+ },
606
+ "Timeout": 900,
607
+ "MemorySize": 128,
608
+ "Handler": "__entrypoint__.handler",
609
+ "Role": {
610
+ "Fn::GetAtt": [
611
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
612
+ "Arn"
613
+ ]
614
+ },
615
+ "Runtime": "nodejs12.x",
616
+ "Description": {
617
+ "Fn::Join": [
618
+ "",
619
+ [
620
+ "Lambda function for auto-deleting objects in ",
621
+ {
622
+ "Ref": "testcloudfronts3S3LoggingBucket90D239DD"
623
+ },
624
+ " S3 bucket."
625
+ ]
626
+ ]
627
+ }
628
+ },
629
+ "DependsOn": [
630
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092"
631
+ ],
632
+ "Metadata": {
633
+ "cfn_nag": {
634
+ "rules_to_suppress": [
635
+ {
636
+ "id": "W58",
637
+ "reason": "CDK generated custom resource"
638
+ },
639
+ {
640
+ "id": "W89",
641
+ "reason": "CDK generated custom resource"
642
+ },
643
+ {
644
+ "id": "W92",
645
+ "reason": "CDK generated custom resource"
646
+ }
647
+ ]
648
+ }
649
+ }
385
650
  }
386
651
  },
387
652
  "Parameters": {
@@ -23,13 +23,20 @@ const stack = new core_1.Stack(app, core_2.generateIntegStackName(__filename));
23
23
  new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
24
24
  bucketProps: {
25
25
  removalPolicy: core_1.RemovalPolicy.DESTROY,
26
+ autoDeleteObjects: true
26
27
  },
27
28
  loggingBucketProps: {
28
29
  removalPolicy: core_1.RemovalPolicy.DESTROY,
30
+ autoDeleteObjects: true,
29
31
  bucketName: 'custom-logging-bucket',
30
32
  encryption: aws_s3_1.BucketEncryption.S3_MANAGED,
31
33
  versioned: true
34
+ },
35
+ cloudFrontLoggingBucketProps: {
36
+ removalPolicy: core_1.RemovalPolicy.DESTROY,
37
+ autoDeleteObjects: true,
32
38
  }
33
39
  });
40
+ core_2.suppressAutoDeleteHandlerWarnings(stack);
34
41
  app.synth();
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tTG9nZ2luZ0J1Y2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmN1c3RvbUxvZ2dpbmdCdWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILGdCQUFnQjtBQUNoQix3Q0FBMEQ7QUFDMUQsNENBQW1EO0FBQ25ELGdDQUF3QztBQUN4Qyx5REFBd0U7QUFFeEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUV0QixrQkFBa0I7QUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFakUsSUFBSSxvQkFBYyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM5QyxXQUFXLEVBQUU7UUFDWCxhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO0tBQ3JDO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsYUFBYSxFQUFFLG9CQUFhLENBQUMsT0FBTztRQUNwQyxVQUFVLEVBQUUsdUJBQXVCO1FBQ25DLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO1FBQ3ZDLFNBQVMsRUFBRSxJQUFJO0tBQ2hCO0NBQ0YsQ0FBQyxDQUFDO0FBQ0gsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLy8gIWNkay1pbnRlZyAqXG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcIkBhd3MtY2RrL2NvcmVcIjtcbmltcG9ydCB7IEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tIFwiQGF3cy1jZGsvYXdzLXMzXCI7XG5pbXBvcnQgeyBDbG91ZEZyb250VG9TMyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEVtcHR5IGFyZ3VtZW50c1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBidWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgfSxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGJ1Y2tldE5hbWU6ICdjdXN0b20tbG9nZ2luZy1idWNrZXQnLFxuICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICB2ZXJzaW9uZWQ6IHRydWVcbiAgfVxufSk7XG5hcHAuc3ludGgoKTsiXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tTG9nZ2luZ0J1Y2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmN1c3RvbUxvZ2dpbmdCdWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILGdCQUFnQjtBQUNoQix3Q0FBMEQ7QUFDMUQsNENBQW1EO0FBQ25ELGdDQUF3QztBQUN4Qyx5REFBMkc7QUFFM0csTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLEVBQUUsQ0FBQztBQUV0QixrQkFBa0I7QUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFakUsSUFBSSxvQkFBYyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM5QyxXQUFXLEVBQUU7UUFDWCxhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO1FBQ3BDLGlCQUFpQixFQUFFLElBQUk7S0FDeEI7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO1FBQ3BDLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsVUFBVSxFQUFFLHVCQUF1QjtRQUNuQyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtRQUN2QyxTQUFTLEVBQUUsSUFBSTtLQUNoQjtJQUNELDRCQUE0QixFQUFFO1FBQzVCLGFBQWEsRUFBRSxvQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtDQUNGLENBQUMsQ0FBQztBQUNILHdDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8vICFjZGstaW50ZWcgKlxuaW1wb3J0IHsgQXBwLCBTdGFjaywgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJAYXdzLWNkay9jb3JlXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmNyeXB0aW9uIH0gZnJvbSBcIkBhd3MtY2RrL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRvUzMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lLCBzdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3MgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEVtcHR5IGFyZ3VtZW50c1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBidWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZVxuICB9LFxuICBsb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgYnVja2V0TmFtZTogJ2N1c3RvbS1sb2dnaW5nLWJ1Y2tldCcsXG4gICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgIHZlcnNpb25lZDogdHJ1ZVxuICB9LFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICB9XG59KTtcbnN1cHByZXNzQXV0b0RlbGV0ZUhhbmRsZXJXYXJuaW5ncyhzdGFjayk7XG5hcHAuc3ludGgoKTsiXX0=