Back to Blog

AWS KMS & Data Protection Deep Dive for the Security Specialty (SCS-C02)

Master the Data Protection domain of the AWS Certified Security Specialty (SCS-C02). Deep dive into KMS key types, envelope encryption, key policies vs IAM, grants, multi-region keys, encryption in transit, and Secrets Manager — with exam scenarios and AWS CLI examples.

By Sailor Team , June 7, 2026

The Data Protection domain carries serious weight on the AWS Certified Security - Specialty (SCS-C02) exam, and it is where AWS Key Management Service (KMS) sits at the center of nearly every question. If you understand exactly how KMS keys work — who can use them, how envelope encryption actually protects data, and how key policies interact with IAM — you can reason your way through most of the encryption scenarios on the exam instead of guessing.

This deep dive is written from a practitioner’s perspective. It covers the mental models the exam rewards, the AWS CLI commands that make the concepts concrete, and the specific “gotchas” that distinguish a passing answer from a plausible-looking wrong one.

Why Data Protection Dominates SCS-C02

Encryption appears across every SCS-C02 domain, not just its own. Logging questions ask about encrypting CloudTrail logs. Infrastructure questions ask about encrypting EBS volumes and S3 buckets. Incident response questions ask about rotating a compromised key. The unifying thread is KMS, so investing time here pays off everywhere.

The exam tests three things repeatedly:

  1. Access control — who is allowed to use a key versus manage it, and how key policies, IAM, and grants combine.
  2. Encryption mechanics — envelope encryption, the difference between encrypting data directly and encrypting data keys, and what “encryption at rest” actually does under the hood.
  3. Operational concerns — key rotation, deletion with a waiting period, cross-account and cross-region access, and choosing between KMS-managed and customer-managed approaches.

KMS Key Types: Know the Differences Cold

The exam frequently hinges on choosing the right kind of key. Get this table into memory.

Key typeWho controls itRotationKey policy editableTypical use
AWS owned keyAWS, shared across accountsAWS-managedNo (invisible to you)Default encryption you never touch
AWS managed key (aws/service)AWS, one per service per accountAutomatic, every yearNoDefault aws/s3, aws/ebs, etc.
Customer managed key (CMK)YouOptional (you enable it)YesAnything needing custom policy, rotation control, or cross-account use

The recurring exam signal: whenever a question requires a custom key policy, cross-account access, manual rotation control, imported key material, or auditing of key usage, the answer is a customer managed key. AWS managed keys cannot have their policies edited and cannot be shared across accounts.

Symmetric vs Asymmetric Keys

Most KMS usage is symmetric (a single 256-bit AES key that never leaves KMS unencrypted). Asymmetric keys exist for cases where a party outside AWS must encrypt data or verify a signature without calling KMS:

  • Symmetric — encryption/decryption inside AWS, generating data keys, envelope encryption. The default.
  • Asymmetric (RSA/ECC) — public/private key pairs for sign/verify or encrypt/decrypt when the counterparty can’t call the KMS API.

If a scenario describes an external partner who must encrypt data they send you, or verify a signature offline, that’s the asymmetric signal.

Envelope Encryption: The Concept the Exam Loves

Envelope encryption is the single most important concept in this domain. KMS does not encrypt your large objects directly — there’s a 4 KB limit on the Encrypt API for a reason. Instead:

  1. You call GenerateDataKey. KMS returns a plaintext data key and an encrypted copy of that data key (encrypted under your CMK).
  2. You use the plaintext data key locally to encrypt your actual data (which can be gigabytes).
  3. You discard the plaintext data key from memory and store the encrypted data key alongside the ciphertext.
  4. To decrypt, you send the encrypted data key back to KMS Decrypt, get the plaintext key, decrypt your data, and discard the plaintext key again.
# Generate a data key under a CMK
aws kms generate-data-key \
  --key-id alias/app-data \
  --key-spec AES_256

# Returns: Plaintext (use locally), CiphertextBlob (store with your data)

This is exactly how S3 SSE-KMS, encrypted EBS volumes, and encrypted RDS instances work behind the scenes. The two benefits the exam wants you to articulate:

  • Performance & cost — KMS only ever handles the small data key, not your bulk data, so you avoid per-byte KMS charges and API throughput limits.
  • Blast radius control — the master key never leaves KMS, and you can re-encrypt the small data key without re-encrypting terabytes of data.

A classic exam question: “How do you rotate the key protecting a 10 TB dataset without re-encrypting all of it?” The answer leverages envelope encryption — you re-encrypt the data key, not the data. With KMS automatic key rotation, the old key material is retained to decrypt existing data keys while new data keys use the new material; no bulk re-encryption is needed.

Key Policies vs IAM vs Grants: The Access Triangle

This is the highest-yield, most-misunderstood topic in the domain. Three mechanisms control who can use a KMS key, and they combine in a specific way.

Key Policies (the primary control)

Every CMK has a key policy — a resource-based policy attached directly to the key. Unlike most AWS resources, the key policy is authoritative: if the key policy doesn’t grant access (directly or by delegating to IAM), no IAM policy can grant it. A locked-down key policy can completely override IAM.

The standard pattern delegates to IAM with this statement, which says “let IAM policies in this account control access to the key”:

{
  "Sid": "EnableIAMUserPermissions",
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::111122223333:root" },
  "Action": "kms:*",
  "Resource": "*"
}

Exam trap: if a key policy lacks this delegation statement, IAM permissions for the key are ignored, and only principals explicitly named in the key policy can use it. A common scenario describes an admin who “has full IAM access” but still gets AccessDenied on a key — the cause is a restrictive key policy that never delegated to IAM.

IAM Policies (account-wide convenience)

IAM policies grant KMS permissions to principals, but they only take effect if the key policy delegates to IAM (the statement above). IAM is how you manage permissions at scale; the key policy is how you set the outer boundary.

Grants (temporary, programmatic delegation)

Grants are the third mechanism: a way to delegate specific KMS permissions to a principal programmatically and temporarily, without editing policies. AWS services (like an Auto Scaling group attaching an encrypted volume) use grants under the hood.

aws kms create-grant \
  --key-id alias/app-data \
  --grantee-principal arn:aws:iam::111122223333:role/worker \
  --operations Decrypt GenerateDataKey

Use grants when: the access is temporary, scoped to specific operations, and you don’t want to mutate the key policy. They can be revoked instantly with revoke-grant. The exam signal for grants is “temporary,” “programmatic,” or “an AWS service needs to use the key on a resource’s behalf.”

MechanismScopeWhen to use
Key policyThe key itself (authoritative)Set the outer boundary; cross-account trust
IAM policyPrincipals in the accountScale permissions across many keys/users
GrantTemporary, specific opsShort-lived or service-initiated delegation

Cross-Account and Cross-Region Key Access

Cross-Account

Sharing a CMK across accounts requires two changes — a frequent exam point:

  1. The key policy in the owning account must grant the external account access.
  2. An IAM policy in the external account must grant its principals permission to use the key.

Both are required. Granting only one results in AccessDenied. The key owner sets the boundary; the consuming account delegates to its own users.

Multi-Region Keys

A standard CMK is regional — its key material never leaves the region. Multi-Region keys solve the cross-region problem: a primary key and one or more replica keys in other regions that share the same key ID and key material. Ciphertext encrypted in one region can be decrypted by the replica in another region without a cross-region KMS call.

Use multi-Region keys for: disaster recovery across regions, global DynamoDB tables, and active-active multi-region applications. The exam contrasts these with regular keys, where ciphertext is tied to the region it was created in.

Encryption in Transit

Data protection isn’t only at rest. The exam expects you to know how to enforce encryption in transit:

  • TLS everywhere — ACM (AWS Certificate Manager) provisions and auto-renews certificates for ALBs, CloudFront, and API Gateway.
  • Enforce HTTPS on S3 — deny non-TLS requests with a bucket policy condition:
{
  "Sid": "DenyInsecureTransport",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"],
  "Condition": { "Bool": { "aws:SecureTransport": "false" } }
}

The aws:SecureTransport condition key is a frequent exam answer for “how do you ensure clients can only access the bucket over HTTPS.”

Secrets Manager, Parameter Store, and Rotation

Protecting credentials is part of the domain. The exam contrasts two services:

Secrets ManagerSSM Parameter Store (SecureString)
Built-in rotationYes, with LambdaNo (manual)
CostPer secret, per API callFree tier (standard params)
Cross-account sharingVia resource policyLimited
Best forDatabase/API credentials needing rotationConfig values, simple secrets

Both encrypt values with KMS. The deciding factor is usually automatic rotation: if the question requires credentials to rotate on a schedule without custom code to manage it, Secrets Manager is the answer. If it’s a static config value and cost matters, Parameter Store SecureString suffices.

Key Deletion, Rotation, and Disabling

These operational details show up as incident-response questions:

  • Rotation — for customer managed symmetric keys, you can enable automatic annual rotation. AWS retains old key material so existing ciphertext stays decryptable. You can also rotate manually by creating a new key and updating an alias to point to it.
  • Disablingdisable-key makes a key unusable immediately but reversibly. Useful during incident response to “freeze” a possibly-compromised key without destroying data.
  • Deletion — KMS enforces a mandatory waiting period of 7 to 30 days (default 30) before a key is permanently deleted. There is no instant delete. The exam loves this: “an attacker scheduled a key for deletion — what’s your fastest mitigation?” The answer is cancel-key-deletion, because the waiting period gives you time to react.
# Schedule deletion with the minimum 7-day window
aws kms schedule-key-deletion --key-id <id> --pending-window-in-days 7

# Cancel it during the window
aws kms cancel-key-deletion --key-id <id>

Aliases matter here too: pointing applications at an alias (alias/app-data) rather than a raw key ID means you can swap the underlying key during rotation or incident response without touching application code.

A Worked Exam Scenario

A company stores sensitive files in S3. Compliance requires that even the AWS account’s root user and administrators cannot decrypt the data unless explicitly authorized, that access is fully auditable, and that the data is recoverable in a second region for DR. What design meets these requirements?

Reason through it with the models above:

  • “Even admins can’t decrypt unless authorized” → a customer managed key with a tightly scoped key policy that does not grant blanket kms:* to the account root. Only named principals get Decrypt.
  • “Fully auditable” → KMS logs every API call to CloudTrail; ensure the trail captures data and management events.
  • “Recoverable in a second region” → a multi-Region key so the replica in the DR region can decrypt the replicated objects.
  • S3 encryption → SSE-KMS referencing that CMK, with a bucket policy denying uploads that don’t specify the key.

Spotting which requirement maps to which KMS feature is exactly the skill the exam measures.

How This Fits Your SCS-C02 Prep

Data protection interlocks with the other SCS-C02 domains, so study it alongside them. The AWS Security Specialty domains explained guide shows how data protection is weighted against threat detection and IAM, and the SCS-C02 exam topics breakdown maps the specific services you’ll be tested on. If you want a structured timeline, the 30-day AWS Security Specialty study plan sequences KMS and encryption into a realistic schedule, and if you’re still deciding whether you’re ready, the AWS Security Specialty difficulty guide sets expectations honestly.

Encryption questions reward pattern recognition more than memorization — you need to have seen “key policy doesn’t delegate to IAM → AccessDenied” and “scheduled deletion → cancel within the window” enough times that they’re instant. Working through realistic, scenario-based questions with detailed explanations is the most efficient way to build that reflex. The AWS Certified Security Specialty Mock Exam Bundle is built around exam-style scenarios with performance-focused review, so you encounter each KMS and data-protection pattern under realistic conditions before the real exam.

Frequently Asked Questions

What is envelope encryption in AWS KMS?

Envelope encryption is the practice of encrypting your data with a data key, then encrypting that data key with a KMS master key (CMK). KMS generates the data key, you use it locally to encrypt large data, then store the encrypted data key alongside the ciphertext. This avoids KMS’s 4 KB direct-encryption limit, reduces cost and API load, and keeps the master key inside KMS at all times. It’s how S3 SSE-KMS, EBS, and RDS encryption work internally.

How do KMS key policies and IAM policies interact?

The key policy is authoritative for a CMK. IAM policies only grant KMS access if the key policy explicitly delegates to IAM (typically a statement allowing the account root kms:*). If a key policy lacks that delegation, IAM permissions are ignored and only principals named directly in the key policy can use the key. This is a frequent source of unexpected AccessDenied errors on the exam.

When should I use a customer managed key instead of an AWS managed key?

Use a customer managed key (CMK) whenever you need a custom key policy, manual control over rotation, cross-account access, imported key material, or detailed auditing of key usage. AWS managed keys (like aws/s3) cannot have their policies edited, rotate automatically once a year, and cannot be shared across accounts.

What are KMS grants used for?

Grants delegate specific KMS permissions to a principal programmatically and temporarily, without editing the key policy or IAM. They’re scoped to particular operations (like Decrypt and GenerateDataKey), can be revoked instantly, and are commonly used by AWS services that need to use a key on a resource’s behalf — for example, Auto Scaling attaching an encrypted EBS volume.

Can you instantly delete a KMS key?

No. KMS enforces a mandatory waiting period of 7 to 30 days (default 30) before a key is permanently deleted. During this window the key is disabled but recoverable with cancel-key-deletion. For an immediate but reversible action, use disable-key. This waiting period is a deliberate safeguard and a common incident-response exam topic.

What is a multi-Region KMS key?

A multi-Region key is a primary CMK plus one or more replica keys in other regions that share the same key ID and key material. Ciphertext encrypted in one region can be decrypted by a replica in another region without a cross-region KMS call. They’re used for disaster recovery, global DynamoDB tables, and active-active multi-region applications, in contrast to standard regional keys whose ciphertext is tied to one region.

How do I enforce encryption in transit for S3?

Add a bucket policy with a Deny statement conditioned on aws:SecureTransport being false. This blocks any request that doesn’t use HTTPS/TLS. For provisioning and auto-renewing the TLS certificates on ALBs, CloudFront, and API Gateway, use AWS Certificate Manager (ACM).

Limited Time Offer: Get 80% off all Mock Exam Bundles | Sale ends in 7 days. Start learning today.

Claim Now