awssolutionsconstructsawscloudfronts3

package module
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

README

aws-cloudfront-s3 module



Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_cloudfront_s3
Typescript Logo Typescript @aws-solutions-constructs/aws-cloudfront-s3
Java Logo Java software.amazon.awsconstructs.services.cloudfronts3

This AWS Solutions Construct implements an AWS CloudFront fronting an AWS S3 Bucket.

Here is a minimal deployable pattern definition in Typescript:

import { CloudFrontToS3 } from '@aws-solutions-constructs/aws-cloudfront-s3';

new CloudFrontToS3(this, 'test-cloudfront-s3', {});

Initializer

new CloudFrontToS3(scope: Construct, id: string, props: CloudFrontToS3Props);

Parameters

Pattern Construct Props

Name Type Description
existingBucketObj? s3.IBucket Existing instance of S3 Bucket object or interface. If this is provided, then also providing bucketProps will cause an error.
bucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Bucket.
cloudFrontDistributionProps? cloudfront.DistributionProps Optional user provided props to override the default props for CloudFront Distribution
insertHttpSecurityHeaders? boolean Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from CloudFront
originPath? string Optional user provided props to provide anoriginPath that CloudFront appends to the origin domain name when CloudFront requests content from the origin. The string should start with a /, for example: /production. Default value is '/'
loggingBucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Logging Bucket.
cloudFrontLoggingBucketProps? s3.BucketProps Optional user provided props to override the default props for the CloudFront Logging Bucket.
logS3AccessLogs? boolean Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true

Pattern Properties

Name Type Description
cloudFrontWebDistribution cloudfront.CloudFrontWebDistribution Returns an instance of cloudfront.CloudFrontWebDistribution created by the construct
cloudFrontFunction? cloudfront.Function Returns an instance of the Cloudfront function created by the pattern.
cloudFrontLoggingBucket s3.Bucket Returns an instance of the logging bucket for CloudFront WebDistribution.
s3BucketInterface s3.IBucket Returns an instance of s3.IBucket created by the construct
s3Bucket? s3.Bucket Returns an instance of s3.Bucket created by the construct. IMPORTANT: If existingBucketObj was provided in Pattern Construct Props, this property will be undefined
s3LoggingBucket? s3.Bucket Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon CloudFront
  • Configure Access logging for CloudFront WebDistribution
  • Enable automatic injection of best practice HTTP security headers in all responses from CloudFront WebDistribution
  • CloudFront originPath set to '/'
Amazon S3 Bucket
  • Configure Access logging for S3 Bucket
  • Enable server-side encryption for S3 Bucket using AWS managed KMS Key
  • Enforce encryption of data in transit
  • Turn on the versioning for S3 Bucket
  • Don't allow public access for S3 Bucket
  • Retain the S3 Bucket when deleting the CloudFormation stack
  • Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days

Architecture

Architecture Diagram


© Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Documentation

Overview

CDK Constructs for AWS Cloudfront to AWS S3 integration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloudFrontToS3_IsConstruct

func CloudFrontToS3_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func NewCloudFrontToS3_Override

func NewCloudFrontToS3_Override(c CloudFrontToS3, scope constructs.Construct, id *string, props *CloudFrontToS3Props)

Types

type CloudFrontToS3

type CloudFrontToS3 interface {
	constructs.Construct
	CloudFrontFunction() awscloudfront.Function
	CloudFrontLoggingBucket() awss3.Bucket
	CloudFrontWebDistribution() awscloudfront.Distribution
	Node() constructs.Node
	S3Bucket() awss3.Bucket
	S3BucketInterface() awss3.IBucket
	S3LoggingBucket() awss3.Bucket
	ToString() *string
}

func NewCloudFrontToS3

func NewCloudFrontToS3(scope constructs.Construct, id *string, props *CloudFrontToS3Props) CloudFrontToS3

type CloudFrontToS3Props

type CloudFrontToS3Props struct {
	// Optional user provided props to override the default props for the S3 Bucket.
	BucketProps *awss3.BucketProps `json:"bucketProps"`
	// Optional user provided props to override the default props.
	CloudFrontDistributionProps interface{} `json:"cloudFrontDistributionProps"`
	// Optional user provided props to override the default props for the CloudFront Logging Bucket.
	CloudFrontLoggingBucketProps *awss3.BucketProps `json:"cloudFrontLoggingBucketProps"`
	// Existing instance of S3 Bucket object, providing both this and `bucketProps` will cause an error.
	ExistingBucketObj awss3.IBucket `json:"existingBucketObj"`
	// Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from cloudfront.
	InsertHttpSecurityHeaders *bool `json:"insertHttpSecurityHeaders"`
	// Optional user provided props to override the default props for the S3 Logging Bucket.
	LoggingBucketProps *awss3.BucketProps `json:"loggingBucketProps"`
	// Whether to turn on Access Logs for the S3 bucket with the associated storage costs.
	//
	// Enabling Access Logging is a best practice.
	LogS3AccessLogs *bool `json:"logS3AccessLogs"`
	// Optional user provided props to provide an originPath that CloudFront appends to the origin domain name when CloudFront requests content from the origin.
	//
	// The string should start with a `/`, for example `/production`.
	OriginPath *string `json:"originPath"`
}

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL