# BucketAccessControl

Default bucket access control types.

- Source: [`aws-s3/lib/bucket.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-s3/lib/bucket.ts#L3748)

## Example

```ts
const websiteBucket = new s3.Bucket(this, 'WebsiteBucket', {
  websiteIndexDocument: 'index.html',
  publicReadAccess: true,
});

new s3deploy.BucketDeployment(this, 'DeployWebsite', {
  sources: [s3deploy.Source.asset('./website-dist')],
  destinationBucket: websiteBucket,
  destinationKeyPrefix: 'web/static', // optional prefix in destination bucket
  metadata: { A: "1", b: "2" }, // user-defined metadata

  // system-defined metadata
  contentType: "text/html",
  contentLanguage: "en",
  storageClass: s3deploy.StorageClass.INTELLIGENT_TIERING,
  serverSideEncryption: s3deploy.ServerSideEncryption.AES_256,
  cacheControl: [
    s3deploy.CacheControl.setPublic(),
    s3deploy.CacheControl.maxAge(Duration.hours(1)),
  ],
  accessControl: s3.BucketAccessControl.BUCKET_OWNER_FULL_CONTROL,
});
```

## Members

| Member | Description |
| --- | --- |
| `PRIVATE` | Owner gets FULL_CONTROL. |
| `PUBLIC_READ` | Owner gets FULL_CONTROL. |
| `PUBLIC_READ_WRITE` | Owner gets FULL_CONTROL. |
| `AUTHENTICATED_READ` | Owner gets FULL_CONTROL. |
| `LOG_DELIVERY_WRITE` | The LogDelivery group gets WRITE and READ_ACP permissions on the bucket. |
| `BUCKET_OWNER_READ` | Object owner gets FULL_CONTROL. |
| `BUCKET_OWNER_FULL_CONTROL` | Both the object owner and the bucket owner get FULL_CONTROL over the object. |
| `AWS_EXEC_READ` | Owner gets FULL_CONTROL. |

## Referenced by

- [`BucketDeploymentProps`](/v2/docs/aws-cdk-lib.aws_s3_deployment.BucketDeploymentProps).accessControl
- [`BucketProps`](/v2/docs/aws-cdk-lib.aws_s3.BucketProps).accessControl
- [`S3DeployActionProps`](/v2/docs/aws-cdk-lib.aws_codepipeline_actions.S3DeployActionProps).accessControl
- [`S3PutObjectActionProps`](/v2/docs/@aws-cdk_aws-iot-actions-alpha.S3PutObjectActionProps).accessControl
