mcpField
I
implementing-envelope-encryption-with-aws-kms

implementing-envelope-encryption-with-aws-kms

github.com/mukul975Security35.2k42 installsUpdated 8w ago
Repository

About implementing-envelope-encryption-with-aws-kms

A security skill for developers and security practitioners implementing envelope encryption with AWS KMS. It covers local data encryption, key caching, rotation, and multi-region disaster recovery.

Key features

  1. 01Generate DEKs with GenerateDataKey
  2. 02Encrypt locally with AES-256-GCM
  3. 03Store encrypted DEKs alongside ciphertext
  4. 04Cache keys to reduce KMS calls
  5. 05Handle rotation and multi-region encryption

Use cases

  1. 01Implement envelope encryption for large data volumes
  2. 02Reduce reliance on KMS requests for encryption operations
  3. 03Plan key rotation and disaster recovery

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill implementing-envelope-encryption-with-aws-kms

After installing, type/implementing-envelope-encryption-with-aws-kmsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

Details

From the project README

Implementing Envelope Encryption with AWS KMS

Overview

Envelope encryption is a strategy where data is encrypted with a data encryption key (DEK), and the DEK itself is encrypted with a master key (KEK) managed by AWS KMS. This approach allows encrypting large volumes of data locally while keeping the master key secure in a hardware security module (HSM) managed by AWS. This skill covers implementing envelope encryption using AWS KMS GenerateDataKey API.

When to Use

  • When deploying or configuring implementing envelope encryption with aws kms capabilities in your environment
  • When establishing security controls aligned to compliance requirements
  • When building or improving security architecture for this domain
  • When conducting security assessments that require this implementation

Prerequisites

  • Familiarity with cryptography concepts and tools
  • Access to a test or lab environment for safe execution
  • Python 3.8+ with required dependencies installed
  • Appropriate authorization for any testing activities

Objectives

  • Understand the envelope encryption pattern and its advantages
  • Generate data encryption keys using AWS KMS GenerateDataKey
  • Encrypt/decrypt data locally using DEKs
  • Store encrypted DEK alongside ciphertext
  • Implement key caching to reduce KMS API calls
  • Handle key rotation with automatic re-encryption
  • Implement multi-region encryption for disaster recovery

Key Concepts

Envelope Encryption Flow
  1. Call kms:GenerateDataKey to get plaintext DEK + encrypted DEK
  2. Use plaintext DEK to encrypt data locally (AES-256-GCM)
  3. Store encrypted DEK alongside ciphertext
  4. Discard plaintext DEK from memory
  5. For decryption: call kms:Decrypt on encrypted DEK, then decrypt data
Advantages Over Direct KMS Encryption
AspectDirect KMSEnvelope Encryption
Max data size4 KBUnlimited
LatencyNetwork round-trip per operationLocal encryption
Cost$0.03/10,000 requestsFewer KMS requests
OfflineNot possibleYes (with cached DEKs)
KMS Key Types
  • AWS Managed: AWS creates and manages (aws/s3, aws/ebs)
  • Customer Managed: You create and manage policies
  • Custom Key Store: Backed by CloudHSM cluster

Security Considerations

  • Never store plaintext DEK; only keep encrypted DEK
  • Use key policies to restrict who can call GenerateDataKey and Decrypt
  • Enable AWS CloudTrail logging for all KMS API calls
  • Implement key rotation (automatic annual rotation for CMKs)
  • Use encryption context for authenticated encryption metadata
  • Handle KMS throttling with exponential backoff

Validation Criteria

  • GenerateDataKey returns plaintext and encrypted DEK
  • Data encrypts correctly with plaintext DEK using AES-256-GCM
  • Encrypted DEK can be decrypted via KMS Decrypt API
  • Decrypted DEK recovers the original data
  • Plaintext DEK is wiped from memory after use
  • Encryption context is validated during decryption
  • Key rotation re-encrypts DEKs with new master key

Comments

Markdown supported