BucketPolicyProps Struct
Example
ts
import * as cloudfrontMixins from '@aws-cdk/mixins-preview/aws-cloudfront/mixins';
// Create CloudFront distribution
declare const origin: s3.IBucket;
const distribution = new cloudfront.Distribution(scope, 'Distribution', {
defaultBehavior: {
origin: origins.S3BucketOrigin.withOriginAccessControl(origin),
},
});
// Create destination bucket
const destBucket = new s3.Bucket(scope, 'DeliveryBucket');
// Add permissions to bucket to facilitate log delivery
const bucketPolicy = new s3.BucketPolicy(scope, 'DeliveryBucketPolicy', {
bucket: destBucket,
document: new iam.PolicyDocument(),
});
// Create S3 delivery destination for logs
const destination = new logs.CfnDeliveryDestination(scope, 'Destination', {
destinationResourceArn: destBucket.bucketArn,
name: 'unique-destination-name',
deliveryDestinationType: 'S3',
});
distribution
.with(cloudfrontMixins.CfnDistributionLogsMixin.CONNECTION_LOGS.toDestination(destination));
python
import aws_cdk.mixins_preview.aws_cloudfront.mixins as cloudfront_mixins
# Create CloudFront distribution
# origin: s3.IBucket
distribution = cloudfront.Distribution(scope, "Distribution",
default_behavior=cloudfront.BehaviorOptions(
origin=origins.S3BucketOrigin.with_origin_access_control(origin)
)
)
# Create destination bucket
dest_bucket = s3.Bucket(scope, "DeliveryBucket")
# Add permissions to bucket to facilitate log delivery
bucket_policy = s3.BucketPolicy(scope, "DeliveryBucketPolicy",
bucket=dest_bucket,
document=iam.PolicyDocument()
)
# Create S3 delivery destination for logs
destination = logs.CfnDeliveryDestination(scope, "Destination",
destination_resource_arn=dest_bucket.bucket_arn,
name="unique-destination-name",
delivery_destination_type="S3"
)
distribution.with(cloudfront_mixins.CfnDistributionLogsMixin.CONNECTION_LOGS.to_destination(destination))
java
import software.amazon.awscdk.mixins.preview.services.cloudfront.mixins.*;
// Create CloudFront distribution
IBucket origin;
Distribution distribution = Distribution.Builder.create(scope, "Distribution")
.defaultBehavior(BehaviorOptions.builder()
.origin(S3BucketOrigin.withOriginAccessControl(origin))
.build())
.build();
// Create destination bucket
Bucket destBucket = new Bucket(scope, "DeliveryBucket");
// Add permissions to bucket to facilitate log delivery
BucketPolicy bucketPolicy = BucketPolicy.Builder.create(scope, "DeliveryBucketPolicy")
.bucket(destBucket)
.document(new PolicyDocument())
.build();
// Create S3 delivery destination for logs
CfnDeliveryDestination destination = CfnDeliveryDestination.Builder.create(scope, "Destination")
.destinationResourceArn(destBucket.getBucketArn())
.name("unique-destination-name")
.deliveryDestinationType("S3")
.build();
distribution.with(CfnDistributionLogsMixin.CONNECTION_LOGS.toDestination(destination));
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.Mixins.Preview.AWS.CloudFront.Mixins;
// Create CloudFront distribution
IBucket origin;
var distribution = new Distribution(scope, "Distribution", new DistributionProps {
DefaultBehavior = new BehaviorOptions {
Origin = S3BucketOrigin.WithOriginAccessControl(origin)
}
});
// Create destination bucket
var destBucket = new Bucket(scope, "DeliveryBucket");
// Add permissions to bucket to facilitate log delivery
var bucketPolicy = new BucketPolicy(scope, "DeliveryBucketPolicy", new BucketPolicyProps {
Bucket = destBucket,
Document = new PolicyDocument()
});
// Create S3 delivery destination for logs
var destination = new CfnDeliveryDestination(scope, "Destination", new CfnDeliveryDestinationProps {
DestinationResourceArn = destBucket.BucketArn,
Name = "unique-destination-name",
DeliveryDestinationType = "S3"
});
distribution.With(CfnDistributionLogsMixin.CONNECTION_LOGS.ToDestination(destination));
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import cloudfrontMixins "github.com/aws/aws-cdk-go/awscdkmixinspreview"
// Create CloudFront distribution
var origin IBucket
distribution := cloudfront.NewDistribution(scope, jsii.String("Distribution"), &DistributionProps{
DefaultBehavior: &BehaviorOptions{
Origin: origins.S3BucketOrigin_WithOriginAccessControl(origin),
},
})
// Create destination bucket
destBucket := s3.NewBucket(scope, jsii.String("DeliveryBucket"))
// Add permissions to bucket to facilitate log delivery
bucketPolicy := s3.NewBucketPolicy(scope, jsii.String("DeliveryBucketPolicy"), &BucketPolicyProps{
Bucket: destBucket,
Document: iam.NewPolicyDocument(),
})
// Create S3 delivery destination for logs
destination := logs.NewCfnDeliveryDestination(scope, jsii.String("Destination"), &CfnDeliveryDestinationProps{
DestinationResourceArn: destBucket.bucketArn,
Name: jsii.String("unique-destination-name"),
DeliveryDestinationType: jsii.String("S3"),
})
distribution.With(cloudfrontMixins.CfnDistributionLogsMixin_CONNECTION_LOGS().ToDestination(destination))
Properties
The Amazon S3 bucket that the policy applies to.
documentoptionalPolicyDocumentdocumentoptionalPolicyDocumentdocumentoptionalPolicyDocumentDocumentoptionalPolicyDocumentDocumentoptionalPolicyDocument#Policy document to apply to the bucket.
Default: A new empty PolicyDocument will be created.
removalPolicyoptionalRemovalPolicyremoval_policyoptionalRemovalPolicyremovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicy= RemovalPolicy.DESTROY.#Policy to apply when the policy is removed from this stack.