Skip to content
v2.273.0

BlockPublicAccess Class ​

Example ​

ts
import { RemovalPolicy } from 'aws-cdk-lib';

new s3.Bucket(scope, 'Bucket', {
  blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
  encryption: s3.BucketEncryption.S3_MANAGED,
  enforceSSL: true,
  versioned: true,
  removalPolicy: RemovalPolicy.RETAIN,
});
python
from aws_cdk import RemovalPolicy


s3.Bucket(scope, "Bucket",
    block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
    encryption=s3.BucketEncryption.S3_MANAGED,
    enforce_ssl=True,
    versioned=True,
    removal_policy=RemovalPolicy.RETAIN
)
java
import software.amazon.awscdk.RemovalPolicy;


Bucket.Builder.create(scope, "Bucket")
        .blockPublicAccess(BlockPublicAccess.BLOCK_ALL)
        .encryption(BucketEncryption.S3_MANAGED)
        .enforceSSL(true)
        .versioned(true)
        .removalPolicy(RemovalPolicy.RETAIN)
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK;


new Bucket(scope, "Bucket", new BucketProps {
    BlockPublicAccess = BlockPublicAccess.BLOCK_ALL,
    Encryption = BucketEncryption.S3_MANAGED,
    EnforceSSL = true,
    Versioned = true,
    RemovalPolicy = RemovalPolicy.RETAIN
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import "github.com/aws/aws-cdk-go/awscdk"


s3.NewBucket(*scope, jsii.String("Bucket"), &BucketProps{
	BlockPublicAccess: s3.BlockPublicAccess_BLOCK_ALL(),
	Encryption: s3.BucketEncryption_S3_MANAGED,
	EnforceSSL: jsii.Boolean(true),
	Versioned: jsii.Boolean(true),
	RemovalPolicy: awscdk.RemovalPolicy_RETAIN,
})

Initializer ​

ts
new BlockPublicAccess(options: BlockPublicAccessOptions)
python
BlockPublicAccess(options: BlockPublicAccessOptions)
java
new BlockPublicAccess(BlockPublicAccessOptions options)
csharp
new BlockPublicAccess(BlockPublicAccessOptions options)
go
NewBlockPublicAccess(Options BlockPublicAccessOptions)

Properties ​

BLOCK_ACLSBlockPublicAccessblock_aclsBlockPublicAccessBLOCK_ACLSBlockPublicAccessBLOCK_ACLSBlockPublicAccessBLOCK_ACLSBlockPublicAccessrequiredstaticdeprecated#
Use `BLOCK_ACLS_ONLY` instead.
BLOCK_ACLS_ONLYBlockPublicAccessblock_acls_onlyBlockPublicAccessBLOCK_ACLS_ONLYBlockPublicAccessBLOCK_ACLS_ONLYBlockPublicAccessBLOCK_ACLS_ONLYBlockPublicAccessrequiredstatic#
Use this option if you want to only block the ACLs, using this will set blockPublicPolicy and restrictPublicBuckets to false.
BLOCK_ALLBlockPublicAccessblock_allBlockPublicAccessBLOCK_ALLBlockPublicAccessBLOCK_ALLBlockPublicAccessBLOCK_ALLBlockPublicAccessrequiredstatic#
Use this option if you want to ensure every public access method is blocked.

However keep in mind that this is the default state of an S3 bucket, and leaving blockPublicAccess undefined would also work.

blockPublicAclsbooleanblock_public_aclsboolblockPublicAclsBooleanBlockPublicAclsboolBlockPublicAcls*bool#
blockPublicPolicybooleanblock_public_policyboolblockPublicPolicyBooleanBlockPublicPolicyboolBlockPublicPolicy*bool#
ignorePublicAclsbooleanignore_public_aclsboolignorePublicAclsBooleanIgnorePublicAclsboolIgnorePublicAcls*bool#
restrictPublicBucketsbooleanrestrict_public_bucketsboolrestrictPublicBucketsBooleanRestrictPublicBucketsboolRestrictPublicBuckets*bool#