Kinesis SSE not configured
This product is not supported for your selected
Datadog site. (
).
Id: 5c6dd5e7-1fe0-4cae-8f81-4c122717cef3
Cloud Provider: aws
Framework: Terraform
Severity: High
Category: Encryption
Learn More
Description
AWS Kinesis Firehose delivery streams should have Server-Side Encryption (SSE) properly configured to protect sensitive data at rest. Without encryption, data stored in Kinesis streams can be exposed to unauthorized access, potentially leading to data breaches and compliance violations. To secure Kinesis streams, the server_side_encryption
block must be included with enabled
set to true
and a valid key_type
specified (either AWS_OWNED_CMK
or CUSTOMER_MANAGED_CMK
with corresponding key_arn
).
resource "aws_kinesis_firehose_delivery_stream" "example" {
// ... other configuration ...
server_side_encryption {
enabled = true
key_type = "CUSTOMER_MANAGED_CMK"
key_arn = "arn:aws:kms:region:account-id:key/key-id"
}
}
Compliant Code Examples
resource "aws_kinesis_firehose_delivery_stream" "negative1" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "CUSTOMER_MANAGED_CMK"
key_arn = "qwewewre"
}
}
resource "aws_kinesis_firehose_delivery_stream" "negative2" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "AWS_OWNED_CMK"
}
}
Non-Compliant Code Examples
resource "aws_kinesis_firehose_delivery_stream" "positive1" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
kinesis_source_configuration {
kinesis_stream_arn = aws_kinesis_stream.cloudwatch-logs.arn
role_arn = aws_iam_role.firehose_role.arn
}
}
resource "aws_kinesis_firehose_delivery_stream" "positive2" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
}
resource "aws_kinesis_firehose_delivery_stream" "positive3" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = false
}
}
resource "aws_kinesis_firehose_delivery_stream" "positive4" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "AWS_OWN"
}
}
resource "aws_kinesis_firehose_delivery_stream" "positive5" {
name = "${aws_s3_bucket.logs.bucket}-firehose"
destination = "extended_s3"
server_side_encryption {
enabled = true
key_type = "CUSTOMER_MANAGED_CMK"
}
}