Skip to main content

🛡️ AWS EBS Attached Volume is not encrypted with KMS CMK🟢

Logic

Similar Policies

Description

Open File

Description

This policy identifies AWS EBS Volumes that are encrypted using AWS managed keys instead of AWS KMS customer-managed keys. Using customer-managed keys provides greater control over the encryption and decryption process for data stored on EBS volumes. When configured, KMS customer-managed keys are used to encrypt data at rest, EBS snapshots, and disk I/O.

Rationale

Using customer-managed KMS keys to protect EBS data enables granular control over key usage and access permissions, supporting the Principle of Least Privilege (PoLP). Amazon KMS allows you to create, rotate, disable, and audit customer-managed keys, improving governance and auditability of encryption key management.

Audit

This policy flags an AWS EBS Volume as INCOMPLIANT if either of the following conditions is met:

  • No AWS KMS Key is associated with the volume, or
  • The AWS KMS Key Manager is not CUSTOMER.

EBS volumes that are not attached to any instance are marked as INAPPLICABLE.

Unencrypted EBS volumes are addressed by the AWS EBS Attached Volume is not encrypted policy and are marked as INAPPLICABLE.

Remediation

Open File

Remediation

Encrypt Amazon EBS Volumes

To encrypt Amazon EBS volumes using AWS KMS customer-managed keys (CMKs), perform the following steps.

From Command Line
Create a customer-managed KMS key
KMS_KEY_ARN=$(aws kms create-key \
--region {{us-east-1}} \
--description "Customer-managed CMK for EBS volume encryption" \
--query 'KeyMetadata.Arn' \
--output text)

aws kms create-alias \
--region {{us-east-1}} \
--alias-name {{alias/ebs-encryption-cmk}} \
--target-key-id $KMS_KEY_ARN
Re-create the EBS volume using the CMK
  1. Create a snapshot of the source volume:

    aws ec2 create-snapshot \
    --region {{us-east-1}} \
    --volume-id {{volume-id}}
  2. Copy the snapshot with encryption enabled:

    aws ec2 copy-snapshot \
    --region {{us-east-1}} \
    --source-region {{us-east-1}} \
    --source-snapshot-id {{snapshot-id}} \
    --encrypted \
    --kms-key-id {{kms-key-arn}}
  3. Create a new volume from the encrypted snapshot:

    aws ec2 create-volume \

... see more

policy.yaml

Open File

Linked Framework Sections

SectionSub SectionsInternal RulesPoliciesFlagsCompliance
💼 AWS Foundational Security Best Practices v1.0.0 → 💼 [EC2.3] Attached Amazon EBS volumes should be encrypted at-rest3no data
💼 AWS Well-Architected → 💼 SEC08-BP01 Implement secure key management3no data
💼 Cloudaware Framework → 💼 Data Encryption66no data
💼 FedRAMP High Security Controls → 💼 CM-3(6) Cryptography Management (H)16no data
💼 FedRAMP High Security Controls → 💼 SC-7(10) Prevent Exfiltration (H)16no data
💼 FedRAMP High Security Controls → 💼 SC-13 Cryptographic Protection (L)(M)(H)1640no data
💼 FedRAMP High Security Controls → 💼 SC-28 Protection of Information at Rest (L)(M)(H)1735no data
💼 FedRAMP High Security Controls → 💼 SC-28(1) Cryptographic Protection (L)(M)(H)524no data
💼 FedRAMP Low Security Controls → 💼 SC-13 Cryptographic Protection (L)(M)(H)40no data
💼 FedRAMP Low Security Controls → 💼 SC-28 Protection of Information at Rest (L)(M)(H)135no data
💼 FedRAMP Low Security Controls → 💼 SC-28(1) Cryptographic Protection (L)(M)(H)24no data
💼 FedRAMP Moderate Security Controls → 💼 SC-13 Cryptographic Protection (L)(M)(H)40no data
💼 FedRAMP Moderate Security Controls → 💼 SC-28 Protection of Information at Rest (L)(M)(H)135no data
💼 FedRAMP Moderate Security Controls → 💼 SC-28(1) Cryptographic Protection (L)(M)(H)24no data
💼 NIST CSF v2.0 → 💼 PR.DS-01: The confidentiality, integrity, and availability of data-at-rest are protected173no data
💼 NIST CSF v2.0 → 💼 PR.DS-02: The confidentiality, integrity, and availability of data-in-transit are protected149no data
💼 NIST CSF v2.0 → 💼 PR.DS-10: The confidentiality, integrity, and availability of data-in-use are protected169no data
💼 NIST SP 800-53 Revision 5 → 💼 CA-9(1) Internal System Connections _ Compliance Checks39no data
💼 NIST SP 800-53 Revision 5 → 💼 CM-3(6) Configuration Change Control _ Cryptography Management16no data
💼 NIST SP 800-53 Revision 5 → 💼 SC-7(10) Boundary Protection _ Prevent Exfiltration16no data
💼 NIST SP 800-53 Revision 5 → 💼 SC-13 Cryptographic Protection429no data
💼 NIST SP 800-53 Revision 5 → 💼 SC-28 Protection of Information at Rest31736no data
💼 NIST SP 800-53 Revision 5 → 💼 SC-28(1) Protection of Information at Rest _ Cryptographic Protection1024no data
💼 NIST SP 800-53 Revision 5 → 💼 SI-7(6) Software, Firmware, and Information Integrity _ Cryptographic Protection25no data