UNPKG

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

Version:

CDK Constructs for AWS Cloudfront to AWS S3 integration.

1,087 lines 53.6 kB
{ "version": "tree-0.1", "tree": { "id": "App", "path": "", "children": { "cfts3-no-security-headers": { "id": "cfts3-no-security-headers", "path": "cfts3-no-security-headers", "children": { "test-cloudfront-s3-no-security-headers": { "id": "test-cloudfront-s3-no-security-headers", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers", "children": { "S3LoggingBucket": { "id": "S3LoggingBucket", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::Bucket", "aws:cdk:cloudformation:props": { "bucketEncryption": { "serverSideEncryptionConfiguration": [ { "serverSideEncryptionByDefault": { "sseAlgorithm": "AES256" } } ] }, "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-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", "Arn" ] }, "/*" ] ] } ] }, { "Action": "s3:PutObject", "Condition": { "ArnLike": { "aws:SourceArn": { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "Arn" ] } }, "StringEquals": { "aws:SourceAccount": { "Ref": "AWS::AccountId" } } }, "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Resource": { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", "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-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3LoggingBucket/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 } ] } }, "S3Bucket": { "id": "S3Bucket", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3Bucket", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/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" } ] }, "loggingConfiguration": { "destinationBucketName": { "Ref": "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F" } }, "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-security-headers/test-cloudfront-s3-no-security-headers/S3Bucket/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/S3Bucket/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3nosecurityheadersS3Bucket4D06173D" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "Arn" ] }, "/*" ] ] } ] }, { "Action": "s3:GetObject", "Condition": { "StringEquals": { "AWS:SourceArn": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":cloudfront::", { "Ref": "AWS::AccountId" }, ":distribution/", { "Ref": "testcloudfronts3nosecurityheadersCloudFrontDistribution3BC8CDED" } ] ] } } }, "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Resource": { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "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-security-headers/test-cloudfront-s3-no-security-headers/S3Bucket/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/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": "*" } ] } ], "serverAccessLogsBucket": "*", "autoDeleteObjects": true }, { "addLifecycleRule": [ { "noncurrentVersionTransitions": [ { "storageClass": "*" } ] }, "*", "*" ] } ] } }, "CloudfrontLoggingBucketAccessLog": { "id": "CloudfrontLoggingBucketAccessLog", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::Bucket", "aws:cdk:cloudformation:props": { "bucketEncryption": { "serverSideEncryptionConfiguration": [ { "serverSideEncryptionByDefault": { "sseAlgorithm": "AES256" } } ] }, "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-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1", "Arn" ] }, "/*" ] ] } ] }, { "Action": "s3:PutObject", "Condition": { "ArnLike": { "aws:SourceArn": { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "Arn" ] } }, "StringEquals": { "aws:SourceAccount": { "Ref": "AWS::AccountId" } } }, "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Resource": { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1", "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-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucketAccessLog/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 } ] } }, "CloudfrontLoggingBucket": { "id": "CloudfrontLoggingBucket", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucket", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucket/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::Bucket", "aws:cdk:cloudformation:props": { "bucketEncryption": { "serverSideEncryptionConfiguration": [ { "serverSideEncryptionByDefault": { "sseAlgorithm": "AES256" } } ] }, "loggingConfiguration": { "destinationBucketName": { "Ref": "testcloudfronts3nosecurityheadersCloudfrontLoggingBucketAccessLogA3FF51B1" } }, "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-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucket/Policy", "children": { "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucket/Policy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy", "aws:cdk:cloudformation:props": { "bucket": { "Ref": "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5" }, "policyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Effect": "Deny", "Principal": { "AWS": "*" }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "Arn" ] }, "/*" ] ] } ] }, { "Action": [ "s3:DeleteObject*", "s3:GetBucket*", "s3:List*", "s3:PutBucketPolicy" ], "Effect": "Allow", "Principal": { "AWS": { "Fn::GetAtt": [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn" ] } }, "Resource": [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "Arn" ] }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "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-security-headers/test-cloudfront-s3-no-security-headers/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource", "children": { "Default": { "id": "Default", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/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", "serverAccessLogsBucket": "*" } ] } }, "CloudFrontOac": { "id": "CloudFrontOac", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudFrontOac", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudFront::OriginAccessControl", "aws:cdk:cloudformation:props": { "originAccessControlConfig": { "name": { "Fn::Join": [ "", [ "aws-cloudfront-s3-testaders-", { "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-security-headers/test-cloudfront-s3-no-security-headers/CloudFrontDistribution", "children": { "Origin1": { "id": "Origin1", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudFrontDistribution/Origin1", "constructInfo": { "fqn": "constructs.Construct", "version": "10.4.2" } }, "Resource": { "id": "Resource", "path": "cfts3-no-security-headers/test-cloudfront-s3-no-security-headers/CloudFrontDistribution/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution", "aws:cdk:cloudformation:props": { "distributionConfig": { "enabled": true, "origins": [ { "domainName": { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersS3Bucket4D06173D", "RegionalDomainName" ] }, "id": "cfts3nosecurityheaderstestcloudfronts3nosecurityheadersCloudFrontDistributionOrigin1A0125E27", "s3OriginConfig": { "originAccessIdentity": "" } } ], "defaultCacheBehavior": { "pathPattern": "*", "targetOriginId": "cfts3nosecurityheaderstestcloudfronts3nosecurityheadersCloudFrontDistributionOrigin1A0125E27", "cachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "compress": true, "viewerProtocolPolicy": "redirect-to-https" }, "defaultRootObject": "index.html", "httpVersion": "http2", "ipv6Enabled": true, "logging": { "bucket": { "Fn::GetAtt": [ "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", "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" }, "enableLogging": true, "logBucket": "*", "defaultRootObject": "*" } ] } } }, "constructInfo": { "fqn": "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", "version": "2.79.1" } }, "LatestNodeRuntimeMap": { "id": "LatestNodeRuntimeMap", "path": "cfts3-no-security-headers/LatestNodeRuntimeMap", "constructInfo": { "fqn": "aws-cdk-lib.CfnMapping", "version": "2.179.0" } }, "Custom::S3AutoDeleteObjectsCustomResourceProvider": { "id": "Custom::S3AutoDeleteObjectsCustomResourceProvider", "path": "cfts3-no-security-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider", "children": { "Staging": { "id": "Staging", "path": "cfts3-no-security-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging", "constructInfo": { "fqn": "aws-cdk-lib.AssetStaging", "version": "2.179.0" } }, "Role": { "id": "Role", "path": "cfts3-no-security-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role", "constructInfo": { "fqn": "aws-cdk-lib.CfnResource", "version": "2.179.0" } }, "Handler": { "id": "Handler", "path": "cfts3-no-security-headers/Cu