- June 27, 2017
- 1 min read
Cloudformation template for provisioning firehose with S3 delivery
Overview
Kinesis firehose is a managed service within AWS that can be used to capture streaming data and load it into Kinesis Analytics, S3, Amazon Redshift or Amazon ElasticSearch services. I've published a cloudformation template that automates provisioning of all required components for Kinesis Firehose with AWS S3 delivery on your AWS account. You can find more info about the cloudformation template here
One thing I should point out is one of the thing template does is it provisions a KMS key which is used to encrypt/decrypt data ingested at REST. If you want to give others access to read this data from S3 in addition to granting read access to S3 bucket you'll also need to grant DECRYPT permission in your KMS key policy. I din't add this into the template because I don't think it would be good idea to allow decrypt permission to all by default. So depending on your use case if you need to allow consuming applications read access to this data you will need to modify the KMS key policy and grant 'Decrypt' permission as shown below
{
"Sid": "Allow decrypt",
"Effect": "Allow",
"Principal": {
//include service or principal depending on your usecase
},
"Action": "kms:Decrypt",
"Resource": "*"
}Hope that helps.
Cheers,
Ram
Related Posts
RAM GOPINATHAN
August 12, 2026
Building Kubernetes-Style APIs: A Practical Walkthrough
Kubernetes real innovation is the declarative, self-healing API pattern. This post builds that pattern from scratch: an OpenAPI-first server, a Postgres-backed store instead of etcd, and a clean service/store split that keeps business logic out of the database
RAM GOPINATHAN
February 28, 2026
Automating post install configurations with cloud-init for Red Hat Enterprise Linux deployments on baremetal environments
Stop configuring servers by hand. Here's how cloud-init brings cloud-level automation to your physical infrastructure.
RAM GOPINATHAN
January 22, 2026
PODMAN TIPS: Implementing init container pattern for containers running on PODMAN
If you’ve worked with Kubernetes, you’re probably familiar with init containers—containers that run before the main application and are typically used for setup or initialization tasks. In this post,…