aws-kinesisfirehose-s3 - AWS Solutions Constructs

aws-kinesisfirehose-s3

All classes are under active development and subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.

Language Package
Python
aws_solutions_constructs.aws-kinesis-firehose-s3
Typescript
@aws-solutions-constructs/aws-kinesisfirehose-s3
Java
software.amazon.awsconstructs.services.kinesisfirehoses3

This AWS Solutions Construct implements an Amazon Kinesis Data Firehose delivery stream connected to an Amazon S3 bucket.

Here is a minimal deployable pattern definition in TypeScript:

import { KinesisFirehoseToS3 } from '@aws-solutions-constructs/aws-kinesisfirehose-s3'; new KinesisFirehoseToS3(this, 'test-firehose-s3', {});

Initializer

new KinesisFirehoseToS3(scope: Construct, id: string, props: KinesisFirehoseToS3Props);

Parameters

Pattern Construct Props

Name Type Description
bucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Bucket.
existingBucketObj? s3.IBucket Optional existing instance of S3 Bucket, if this is set then bucketProps and existingLoggingBucketObj are ignored.
existingLoggingBucketObj? s3.IBucket Optional existing instance of logging S3 Bucket for the S3 Bucket created by the pattern.
kinesisFirehoseProps? kinesisfirehose.CfnDeliveryStreamProps | any Optional user provided props to override the default props for Kinesis Firehose Delivery Stream.
logGroupProps? logs.LogGroupProps Optional user provided props to override the default props for for the CloudWatchLogs LogGroup.

Pattern Properties

Name Type Description
kinesisFirehose kinesisfirehose.CfnDeliveryStream Returns an instance of kinesisfirehose.CfnDeliveryStream created by the construct.
kinesisFirehoseLogGroup logs.LogGroup Returns an instance of the logs.LogGroup created by the construct for Kinesis Data Firehose delivery stream.
kinesisFirehoseRole iam.Role Returns an instance of the iam.Role created by the construct for Kinesis Data Firehose delivery stream.
s3Bucket? s3.Bucket Returns an instance of s3.Bucket created by the construct.
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 this pattern without any overrides will set the following defaults:

Amazon Kinesis Firehose

  • Enable CloudWatch logging for Kinesis Firehose

  • Configure least privilege access IAM role for Amazon Kinesis Firehose

Amazon S3 Bucket

  • Configure Access logging for S3 Bucket

  • Enable server-side encryption for S3 Bucket using AWS managed KMS Key

  • Turn on the versioning for S3 Bucket

  • Don't allow public access for S3 Bucket

  • Retain the S3 Bucket when deleting the CloudFormation stack

  • Enforce encryption of data in transit

  • Applies lifecycle rule to move noncurrent object versions to Glacier storage after 90 days

Architecture

GitHub

To view the code for this pattern, create/view issues and pull requests, and more:
@aws-solutions-constructs/aws-kinesisfirehose-s3