Skip to content

Redshift clusters should be encrypted with CMK

Ensure Redshift cluster is encrypted using CMK. The rule is non-compliant if the Redshift clusters is not encrypted using CMK.

How to fix

Attribute kms_key_id of aws_redshift_cluster must be non-empty.

Implementation options

Choose the option that matches how you manage Terraform. All options satisfy this control.

Option 1: Open source module (terraform-aws-modules)

If you use terraform-aws-modules/redshift/aws, configure the required module inputs to satisfy this control. You can later migrate to the compliance.tf module with minimal changes because it is compatible by design.

module "redshift" {
  source  = "terraform-aws-modules/redshift/aws"
  version = ">=7.0.0,<8.0.0"

  cluster_identifier     = "abc123"
  database_name          = "mydb"
  master_password_wo     = "change-me-in-production"
  master_username        = "admin"
  node_type              = "dc2.large"
  number_of_nodes        = 1
  subnet_ids             = []
  vpc_security_group_ids = []
}

Option 2: Terraform AWS provider resources

If you manage resources directly, configure the relevant Terraform AWS provider resources to meet this control. See docs for the resources involved: aws_redshift_cluster.

resource "aws_redshift_cluster" "this" {
  automated_snapshot_retention_period = 7
  cluster_identifier                  = "pofix-example"
  master_password                     = "ChangeMe123!"
  master_username                     = "admin"
  node_type                           = "dc2.large"
  skip_final_snapshot                 = true
}
Which option should I choose?
  • Compliance.tf module (recommended): controls enforced by default and mapped to frameworks.
  • Open source module (terraform-aws-modules): compatible by design with compliance.tf. Same variable names for an easy, low-change migration path when you are ready.
  • Terraform AWS provider resources: manage Terraform resources directly.

Tool mappings

Use these identifiers to cross-reference this control across tools, reports, and evidence.

  • Compliance.tf (CTF) Control: redshift_cluster_encrypted_with_cmk

  • Checkov Check: CKV_AWS_142

  • Powerpipe Controls: aws_compliance.control.redshift_cluster_encrypted_with_cmk, aws_compliance.control.redshift_cluster_kms_enabled