UNPKG

@aws-solutions-constructs/aws-cloudfront-s3

Version:

CDK Constructs for AWS Cloudfront to AWS S3 integration.

784 lines 34.5 kB
{ "version": "tree-0.1", "tree": { "id": "App", "path": "", "children": { "cfts3-no-cloudfront-s3-access-logs": { "id": "cfts3-no-cloudfront-s3-access-logs", "path": "cfts3-no-cloudfront-s3-access-logs", "children": { "test-cloudfront-s3": { "id": "test-cloudfront-s3", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3", "children": { "S3Bucket": { "id": "S3Bucket", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::Bucket", "aws:cdk:cloudformation:props": { "bucketEncryption": { "serverSideEncryptionConfiguration": [ { "serverSideEncryptionByDefault": { "sseAlgorithm": "AES256" } } ] }, "lifecycleConfiguration": { "rules": [ { "noncurrentVersionTransitions": [ { "storageClass": "GLACIER", "transitionInDays": 90 } ], "status": "Enabled" } ] }, "publicAccessBlockConfiguration": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true }, "tags": [ { "key": "aws-cdk:auto-delete-objects", "value": "true" } ], "versioningConfiguration": { "status": "Enabled" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.CfnBucket", "version": "2.179.0" } }, "Policy": { "id": "Policy", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3S3BucketE0C5F76E" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "Arn" ] }, "/*" ] ] } ] }, { "Action": "s3:GetObject", "Condition": { "StringEquals": { "AWS:SourceArn": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":cloudfront::", { "Ref": "AWS::AccountId" }, ":distribution/", { "Ref": "testcloudfronts3CloudFrontDistribution0565DEE8" } ] ] } } }, "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Resource": { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "Arn" ] }, "/*" ] ] } } ], "Version": "2012-10-17" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.BucketPolicy", "version": "2.179.0", "metadata": [ { "bucket": "*" } ] } }, "AutoDeleteObjectsCustomResource": { "id": "AutoDeleteObjectsCustomResource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default", "constructInfo": { "fqn": "aws-cdk-lib.CfnResource", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.CustomResource", "version": "2.179.0", "metadata": [ "*" ] } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.Bucket", "version": "2.179.0", "metadata": [ { "encryption": "S3_MANAGED", "versioned": true, "blockPublicAccess": "*", "removalPolicy": "destroy", "enforceSSL": true, "lifecycleRules": [ { "noncurrentVersionTransitions": [ { "storageClass": "*" } ] } ], "autoDeleteObjects": true }, { "addLifecycleRule": [ { "noncurrentVersionTransitions": [ { "storageClass": "*" } ] }, "*", "*" ] } ] } }, "SetHttpSecurityHeaders": { "id": "SetHttpSecurityHeaders", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/SetHttpSecurityHeaders", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/SetHttpSecurityHeaders/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudFront::Function", "aws:cdk:cloudformation:props": { "autoPublish": true, "functionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }", "functionConfig": { "comment": "SetHttpSecurityHeadersc896d796f10191989f85dc3c04e0c09684d72fb250", "runtime": "cloudfront-js-1.0" }, "name": "SetHttpSecurityHeadersc896d796f10191989f85dc3c04e0c09684d72fb250" } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_cloudfront.CfnFunction", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_cloudfront.Function", "version": "2.179.0", "metadata": [ { "functionName": "*", "code": "*" } ] } }, "CloudfrontLoggingBucket": { "id": "CloudfrontLoggingBucket", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::Bucket", "aws:cdk:cloudformation:props": { "bucketEncryption": { "serverSideEncryptionConfiguration": [ { "serverSideEncryptionByDefault": { "sseAlgorithm": "AES256" } } ] }, "ownershipControls": { "rules": [ { "objectOwnership": "ObjectWriter" } ] }, "publicAccessBlockConfiguration": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true }, "tags": [ { "key": "aws-cdk:auto-delete-objects", "value": "true" } ], "versioningConfiguration": { "status": "Enabled" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.CfnBucket", "version": "2.179.0" } }, "Policy": { "id": "Policy", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3CloudfrontLoggingBucket985C0FE8", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3CloudfrontLoggingBucket985C0FE8", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3CloudfrontLoggingBucket985C0FE8", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3CloudfrontLoggingBucket985C0FE8", "Arn" ] }, "/*" ] ] } ] } ], "Version": "2012-10-17" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.BucketPolicy", "version": "2.179.0", "metadata": [ { "bucket": "*" } ] } }, "AutoDeleteObjectsCustomResource": { "id": "AutoDeleteObjectsCustomResource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default", "constructInfo": { "fqn": "aws-cdk-lib.CfnResource", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.CustomResource", "version": "2.179.0", "metadata": [ "*" ] } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.Bucket", "version": "2.179.0", "metadata": [ { "encryption": "S3_MANAGED", "versioned": true, "blockPublicAccess": "*", "removalPolicy": "destroy", "enforceSSL": true, "autoDeleteObjects": true, "objectOwnership": "ObjectWriter" } ] } }, "CloudFrontOac": { "id": "CloudFrontOac", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudFrontOac", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudFront::OriginAccessControl", "aws:cdk:cloudformation:props": { "originAccessControlConfig": { "name": { "Fn::Join": [ "", [ "aws-cloudfront-s3-testnt-s3-", { "Fn::Select": [ 2, { "Fn::Split": [ "/", { "Ref": "AWS::StackId" } ] } ] } ] ] }, "originAccessControlOriginType": "s3", "signingBehavior": "always", "signingProtocol": "sigv4", "description": "Origin access control provisioned by aws-cloudfront-s3" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl", "version": "2.179.0" } }, "CloudFrontDistribution": { "id": "CloudFrontDistribution", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudFrontDistribution", "children": { "Origin1": { "id": "Origin1", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudFrontDistribution/Origin1", "constructInfo": { "fqn": "constructs.Construct", "version": "10.4.2" } }, "Resource": { "id": "Resource", "path": "cfts3-no-cloudfront-s3-access-logs/test-cloudfront-s3/CloudFrontDistribution/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution", "aws:cdk:cloudformation:props": { "distributionConfig": { "enabled": true, "origins": [ { "domainName": { "Fn::GetAtt": [ "testcloudfronts3S3BucketE0C5F76E", "RegionalDomainName" ] }, "id": "cfts3nocloudfronts3accesslogstestcloudfronts3CloudFrontDistributionOrigin1D23B555C", "s3OriginConfig": { "originAccessIdentity": "" } } ], "defaultCacheBehavior": { "pathPattern": "*", "targetOriginId": "cfts3nocloudfronts3accesslogstestcloudfronts3CloudFrontDistributionOrigin1D23B555C", "cachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "compress": true, "viewerProtocolPolicy": "redirect-to-https", "functionAssociations": [ { "functionArn": { "Fn::GetAtt": [ "testcloudfronts3SetHttpSecurityHeaders6C5A1E69", "FunctionARN" ] }, "eventType": "viewer-response" } ] }, "defaultRootObject": "index.html", "httpVersion": "http2", "ipv6Enabled": true, "logging": { "bucket": { "Fn::GetAtt": [ "testcloudfronts3CloudfrontLoggingBucket985C0FE8", "RegionalDomainName" ] } } } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_cloudfront.CfnDistribution", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.aws_cloudfront.Distribution", "version": "2.179.0", "metadata": [ { "defaultBehavior": { "origin": "*", "viewerProtocolPolicy": "redirect-to-https", "functionAssociations": [ { "eventType": "viewer-response", "function": "*" } ] }, "enableLogging": true, "logBucket": "*", "defaultRootObject": "*" } ] } } }, "constructInfo": { "fqn": "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", "version": "2.79.1" } }, "LatestNodeRuntimeMap": { "id": "LatestNodeRuntimeMap", "path": "cfts3-no-cloudfront-s3-access-logs/LatestNodeRuntimeMap", "constructInfo": { "fqn": "aws-cdk-lib.CfnMapping", "version": "2.179.0" } }, "Custom::S3AutoDeleteObjectsCustomResourceProvider": { "id": "Custom::S3AutoDeleteObjectsCustomResourceProvider", "path": "cfts3-no-cloudfront-s3-access-logs/Custom::S3AutoDeleteObjectsCustomResourceProvider", "children": { "Staging": { "id": "Staging", "path": "cfts3-no-cloudfront-s3-access-logs/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging", "constructInfo": { "fqn": "aws-cdk-lib.AssetStaging", "version": "2.179.0" } }, "Role": { "id": "Role", "path": "cfts3-no-cloudfront-s3-access-logs/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role", "constructInfo": { "fqn": "aws-cdk-lib.CfnResource", "version": "2.179.0" } }, "Handler": { "id": "Handler", "path": "cfts3-no-cloudfront-s3-access-logs/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "constructInfo": { "fqn": "aws-cdk-lib.CfnResource", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.CustomResourceProviderBase", "version": "2.179.0" } }, "Integ": { "id": "Integ", "path": "cfts3-no-cloudfront-s3-access-logs/Integ", "children": { "DefaultTest": { "id": "DefaultTest", "path": "cfts3-no-cloudfront-s3-access-logs/Integ/DefaultTest", "children": { "Default": { "id": "Default", "path": "cfts3-no-cloudfront-s3-access-logs/Integ/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", "version": "10.4.2" } }, "DeployAssert": { "id": "DeployAssert", "path": "cfts3-no-cloudfront-s3-access-logs/Integ/DefaultTest/DeployAssert", "children": { "BootstrapVersion": { "id": "BootstrapVersion", "path": "cfts3-no-cloudfront-s3-access-logs/Integ/DefaultTest/DeployAssert/BootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnParameter", "version": "2.179.0" } }, "CheckBootstrapVersion": { "id": "CheckBootstrapVersion", "path": "cfts3-no-cloudfront-s3-access-logs/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnRule", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.Stack", "version": "2.179.0" } } }, "constructInfo": { "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", "version": "2.179.0-alpha.0" } } }, "constructInfo": { "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", "version": "2.179.0-alpha.0" } }, "BootstrapVersion": { "id": "BootstrapVersion", "path": "cfts3-no-cloudfront-s3-access-logs/BootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnParameter", "version": "2.179.0" } }, "CheckBootstrapVersion": { "id": "CheckBootstrapVersion", "path": "cfts3-no-cloudfront-s3-access-logs/CheckBootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnRule", "version": "2.179.0" } } }, "constructInfo": { "fqn": "aws-cdk-lib.Stack", "version": "2.179.0" } }, "Tree": { "id": "Tree", "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", "version": "10.4.2" } } }, "constructInfo": { "fqn": "aws-cdk-lib.App", "version": "2.179.0" } } }