Skip to content
v2.276.0

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 ​

bucketIBucketbucketIBucketbucketIBucketBucketIBucketBucketIBucketrequired#
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.