For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/security/code_security/iac_security/iac_rules/cloudformation-aws-rds-storage-not-encrypted.md.
A documentation index is available at /llms.txt.
RDS database instances must have storage encryption enabled to protect data at rest and to ensure snapshots and automated backups are encrypted. Without it, sensitive database contents can be exposed if storage media or backups are compromised. In AWS CloudFormation, the AWS::RDS::DBInstance resource must define the StorageEncrypted property and set it to true. Resources missing StorageEncrypted or with StorageEncrypted set to false will be flagged. Optionally set KmsKeyId to use a customer-managed KMS key when you require specific key control.
AWSTemplateFormatVersion:2010-09-09Description:RDS Storage EncryptedParameters:SourceDBInstanceIdentifier:Type:StringDBInstanceType:Type:StringSourceRegion:Type:StringResources:MyKey:Type:"AWS::KMS::Key"Properties:KeyPolicy:Version:2012-10-17Id:key-default-1Statement:- Sid:Enable IAM User PermissionsEffect:AllowPrincipal:AWS:!Join- ""- - "arn:aws:iam::"- !Ref "AWS::AccountId"- ":root"Action:"kms:*"Resource:"*"MyDBSmall:Type:"AWS::RDS::DBInstance"Properties:DBInstanceClass:!Ref DBInstanceTypeSourceDBInstanceIdentifier:!Ref SourceDBInstanceIdentifierSourceRegion:!Ref SourceRegionKmsKeyId:!Ref MyKeyStorageEncrypted:true
{"Description":"RDS Storage Encrypted","Parameters":{"SourceRegion":{"Type":"String"},"SourceDBInstanceIdentifier":{"Type":"String"},"DBInstanceType":{"Type":"String"}},"Resources":{"MyDBSmall":{"Type":"AWS::RDS::DBInstance","Properties":{"SourceDBInstanceIdentifier":"SourceDBInstanceIdentifier","SourceRegion":"SourceRegion","KmsKeyId":"MyKey","StorageEncrypted":true,"DBInstanceClass":"DBInstanceType"}},"MyKey":{"Type":"AWS::KMS::Key","Properties":{"KeyPolicy":{"Version":"2012-10-17T00:00:00Z","Id":"key-default-1","Statement":[{"Sid":"Enable IAM User Permissions","Effect":"Allow","Principal":{"AWS":["",["arn:aws:iam::","AWS::AccountId",":root"]]},"Action":"kms:*","Resource":"*"}]}}}},"AWSTemplateFormatVersion":"2010-09-09T00:00:00Z"}
Non-Compliant Code Examples
AWSTemplateFormatVersion:2010-09-09Description:RDS Storage EncryptedParameters:SourceDBInstanceIdentifier:Type:StringDBInstanceType:Type:StringSourceRegion:Type:StringResources:MyKey:Type:"AWS::KMS::Key"Properties:KeyPolicy:Version:2012-10-17Id:key-default-1Statement:- Sid:Enable IAM User PermissionsEffect:AllowPrincipal:AWS:!Join- ""- - "arn:aws:iam::"- !Ref "AWS::AccountId"- ":root"Action:"kms:*"Resource:"*"MyDBSmall:Type:"AWS::RDS::DBInstance"Properties:DBInstanceClass:!Ref DBInstanceTypeSourceDBInstanceIdentifier:!Ref SourceDBInstanceIdentifierSourceRegion:!Ref SourceRegionKmsKeyId:!Ref MyKeyStorageEncrypted:false
AWSTemplateFormatVersion:2010-09-11Description:RDS Storage Encrypted2Parameters:SourceDBInstanceIdentifier:Type:StringDBInstanceType:Type:StringSourceRegion:Type:StringResources:MyKey2:Type:"AWS::KMS::Key"Properties:KeyPolicy:Version:2012-10-17Id:key-default-1Statement:- Sid:Enable IAM User PermissionsEffect:AllowPrincipal:AWS:!Join- ""- - "arn:aws:iam::"- !Ref "AWS::AccountId"- ":root"Action:"kms:*"Resource:"*"MyDBSmall2:Type:"AWS::RDS::DBInstance"Properties:DBInstanceClass:!Ref DBInstanceTypeSourceDBInstanceIdentifier:!Ref SourceDBInstanceIdentifierSourceRegion:!Ref SourceRegionKmsKeyId:!Ref MyKey
{"AWSTemplateFormatVersion":"2010-09-09T00:00:00Z","Description":"RDS Storage Encrypted","Parameters":{"SourceDBInstanceIdentifier":{"Type":"String"},"DBInstanceType":{"Type":"String"},"SourceRegion":{"Type":"String"}},"Resources":{"MyKey":{"Type":"AWS::KMS::Key","Properties":{"KeyPolicy":{"Version":"2012-10-17T00:00:00Z","Id":"key-default-1","Statement":[{"Sid":"Enable IAM User Permissions","Effect":"Allow","Principal":{"AWS":["",["arn:aws:iam::","AWS::AccountId",":root"]]},"Action":"kms:*","Resource":"*"}]}}},"MyDBSmall":{"Type":"AWS::RDS::DBInstance","Properties":{"DBInstanceClass":"DBInstanceType","SourceDBInstanceIdentifier":"SourceDBInstanceIdentifier","SourceRegion":"SourceRegion","KmsKeyId":"MyKey","StorageEncrypted":false}}}}
1
2
rulesets:- CloudFormation / AWS # Rules to enforce / AWS.
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.