AWS In Practice
Courses
  • Welcome to AWS In Practice by IT Assist Labs!
  • Courses
    • AWS Powered E-commerce Application: A Guided Tour
      • Lesson Learning Paths
        • Lesson Learning Paths - Certification Prep
        • Lesson Learning Paths - Interview Prep
      • Lesson Summaries
        • Introduction
          • E-commerce Application Architecture
        • Multi-Account Strategy
          • Multi-Account Strategy Overview
          • Organization Units
          • Core Accounts
        • Core Microservices
          • Services Overview
          • AWS Well-Architected design framework application
          • Site Reliability Engineering Application
          • DevOps Application
          • Monitoring, Logging and Observability Application
        • AWS Service By Layer
          • AWS Service By Layer Overview
          • Presentation Layer
          • Business Logic Layer
          • Data Layer
        • E-commerce Application Use Cases
          • E-commerce Application Use Cases
          • Roles
      • Lesson Content Navigation Demonstration
    • Explore a Live AWS Environment Powering an E-commerce Application
  • Resources
    • AWS Certification Guide
      • Concepts
        • Security, Identity & Compliance
          • AWS IAM-Related Concepts in Certification Exams
        • Design High-Performing Architectures
          • Designing a high-performing architecture with EC2 and Auto Scaling Groups (ASGs)
    • Insights
      • Zero Trust Architecture (ZTA)
      • Implementing a Zero Trust Architecture(ZTA) with AWS
      • The Modern Application Development Lifecycle - Blue/Green Deployments
      • Microservices Communication Patterns
    • Interview Preparation
      • AWS Solutions Archictect
  • AWS Exploration
    • Use Cases
      • Multi-Region Resiliency with Active-Active Setup
        • Exploration Summary
    • Foundational Solutions Architect Use Cases
    • Security Engineer / Cloud Security Architect Use Cases
    • DevOps / Site Reliability Engineer (SRE) Use Cases
    • Cloud Engineer / Cloud Developer
    • Data Engineer Use Cases
    • Machine Learning Engineer / AI Practitioner Use Cases
    • Network Engineer (Cloud) Use Cases
    • Cost Optimization / FinOps Practitioner Use Cases
    • IT Operations / Systems Administrator Use Cases
  • Study Group
    • AWS Certified Solutions Architect - Associate
      • Study Guide Introduction
      • Domain 1: Design Secure Architectures
        • Task Statement 1.1: Design secure access to AWS resources
          • SecureCart's Journey
          • AWS Identity & Access Management (IAM) Fundamentals
          • AWS Security Token Service (STS)
          • AWS Organization
          • IAM Identity Center
          • AWS Policies
          • Federated Access
          • Directory Service
          • Managing Access Across Multiple Accounts
          • Authorization Models in IAM
          • AWS Control Tower
          • AWS Service Control Policies (SCPs)
          • Use Cases
            • Using IAM Policies and Tags for Access Control in AWS
        • Task Statement 1.2: Design Secure Workloads and Applications
          • SecureCart Journey
          • Application Configuration & Credential Security
          • Copy of Application Configuration & Credential Security
          • Network Segmentation Strategies & Traffic Control
          • Securing Network Traffic & AWS Service Endpoints
          • Protecting Applications from External Threats
          • Securing External Network Connections
          • AWS Network Firewall
          • AWS Firewall Manager
          • IAM Authentication Works with Databases
          • AWS WAF (Web Application Firewall)
          • Use Cases
            • AWS Endpoint Policy for Trusted S3 Buckets
            • Increasing Fault Tolerance for AWS Direct Connect in SecureCart’s Multi-VPC Network
            • Securing Multi-Domain SSL with ALB in SecureCart Using SNI-Based SSL
            • Configuring a Custom Domain Name for API Gateway with AWS Certificate Manager and Route 53
            • Application Load Balancer (ALB) – Redirecting HTTP to HTTPS
            • Security Considerations in ALB Logging & Monitoring
          • Amazon CloudFront and Different Origin Use Cases
          • Security Group
          • CloudFront
          • NACL
          • Amazon Cognito
          • VPC Endpoint
        • Task Statement 1.3: Determine appropriate data security controls
          • SecureCart Journey
          • Data Access & Governance
          • Data Encryption & Key Management
          • Data Retention, Classification & Compliance
          • Data Backup, Replication & Recovery
          • Managing Data Lifecycle & Protection Policies
          • KMS
          • S3 Security Measures
          • KMS Use Cases
          • Use Cases
            • Safely Storing Sensitive Data on EBS and S3
            • Managing Compliance & Security with AWS Config
            • Preventing Sensitive Data Exposure in Amazon S3
            • Encrypting EBS Volumes for HIPAA Compliance
            • EBS Encryption Behavior
            • Using EBS Volume While Snapshot is in Progress
          • Compliance
          • Implementing Access Policies for Encryption Keys
          • Rotating Encryption Keys and Renewing Certificates
          • Implementing Policies for Data Access, Lifecycle, and Protection
          • Rotating encryption keys and renewing certificates
          • Instance Store
          • AWS License Manager
          • Glacier
          • AWS CloudHSM Key Management & Zeroization Protection
          • EBS
        • AWS Security Services
        • Use Cases
          • IAM Policy & Directory Setup for S3 Access via Single Sign-On (SSO)
          • Federating AWS Access with Active Directory (AD FS) for Hybrid Cloud Access
      • Domain 2
        • Task Statement 2.1: Design Scalable and Loosely Coupled Architectures
          • SecureCart Journey
          • API Creation & Management
          • Microservices & Event-Driven Architectures
          • Load Balancing & Scaling Strategies
          • Caching Strategies & Edge Acceleration
          • Serverless & Containerization
          • Workflow Orchestration & Multi-Tier Architectures
        • Task Statement 2.2: Design highly available and/or fault-tolerant architectures
          • SecureCart Journey
          • AWS Global Infrastructure & Distributed Design
          • Load Balancing & Failover Strategies
          • Disaster Recovery (DR) Strategies & Business Continuity
          • Automation & Immutable Infrastructure
          • Monitoring & Workload Visibility
          • Use Cases
            • Amazon RDS Failover Events & Automatic Failover Mechanism
      • Domain 3
        • Task Statement 3.1: Determine high-performing and/or scalable storage solutions
          • SecureCart Journey
          • Understanding AWS Storage Types & Use Cases
          • Storage Performance & Configuration Best Practices
          • Scalable & High-Performance Storage Architectures
          • Hybrid & Multi-Cloud Storage Solutions
          • Storage Optimization & Cost Efficiency
          • Hands-on Labs & Final Challenge
        • Task Statement 3.2: Design High-Performing and Elastic Compute Solutions
          • SecureCart
          • AWS Compute Services & Use Cases
          • Elastic & Auto-Scaling Compute Architectures
          • Decoupling Workloads for Performance
          • Serverless & Containerized Compute Solutions
          • Compute Optimization & Cost Efficiency
        • Task Statement 3.3: Determine High-Performing Database Solutions
          • SecureCart Journey
          • AWS Database Types & Use Cases
          • Database Performance Optimization
          • Caching Strategies for High-Performance Applications
          • Database Scaling & Replication
          • High Availability & Disaster Recovery for Databases
        • Task Statement 3.4: Determine High-Performing and/or Scalable Network Architectures
          • SecureCart Journey
          • AWS Networking Fundamentals & Edge Services
          • Network Architecture & Routing Strategies
          • Load Balancing for Scalability & High Availability
          • Hybrid & Private Network Connectivity
          • Optimizing Network Performance
          • Site-to-Site VPN Integration for SAP HANA in AWS
        • Task Statement 3.5: Determine High-Performing Data Ingestion and Transformation Solutions
          • SecureCart Journey
          • Data Ingestion Strategies & Patterns
          • Data Transformation & ETL Pipelines
          • Secure & Scalable Data Transfer
          • Building & Managing Data Lakes
          • Data Visualization & Analytics
      • Domain 4
        • Task Statement 4.1: Design Cost-Optimized Storage Solutions
          • SecureCart Journey
          • AWS Storage Services & Cost Optimization
          • Storage Tiering & Auto Scaling
          • Data Lifecycle Management & Archival Strategies
          • Hybrid Storage & Data Migration Cost Optimization
          • Cost-Optimized Backup & Disaster Recovery
        • Task Statement 4.2: Design Cost-Optimized Compute Solutions
          • SecureCart Journey
          • AWS Compute Options & Cost Management Tools
          • Compute Purchasing Models & Optimization
          • Scaling Strategies for Cost Efficiency
          • Serverless & Container-Based Cost Optimization
          • Hybrid & Edge Compute Cost Strategies
          • AWS License Manager
        • Task Statement 4.3: Design cost-optimized database solutions
          • SecureCart Journey
          • AWS Database Services & Cost Optimization Tools
          • Database Sizing, Scaling & Capacity Planning
          • Caching Strategies for Cost Efficiency
          • Backup, Retention & Disaster Recovery
          • Cost-Optimized Database Migration Strategies
        • Task Statement 4.4: Design Cost-Optimized Network Architectures
          • SecureCart Journey
          • AWS Network Cost Management & Monitoring
          • Load Balancing & NAT Gateway Cost Optimization
          • Network Connectivity & Peering Strategies
          • Optimizing Data Transfer & Network Routing Costs
          • Content Delivery Network & Edge Caching
      • Week Nine
        • Final Review Session
        • Final Practice Test
Powered by GitBook

@ 2024 IT Assist LLC

On this page
  • πŸ”Ή Understanding AWS KMS Access Control
  • πŸ”Ή SecureCart Use Case: Protecting Customer Payment Data
  • πŸ”Ή Step-by-Step: Implementing Access Policies for KMS Keys
  • πŸ”Ή Best Practices for KMS Access Policies
  • πŸ”Ή Common Mistakes & How to Avoid Them
  • βœ… Summary
  1. Study Group
  2. AWS Certified Solutions Architect - Associate
  3. Domain 1: Design Secure Architectures
  4. Task Statement 1.3: Determine appropriate data security controls

Implementing Access Policies for Encryption Keys

Encryption keys play a critical role in securing data across AWS services. To ensure proper access control, organizations must define and enforce IAM policies, key policies, and permission boundaries for AWS Key Management Service (KMS) keys.

This study guide covers: βœ” Key Policy vs. IAM Policy for KMS βœ” Defining Access Controls for Encryption Keys βœ” Best Practices for Securing AWS KMS Keys βœ” Common Mistakes & How to Avoid Them βœ” SecureCart Use Case: Protecting Customer Payment Data


πŸ”Ή Understanding AWS KMS Access Control

AWS KMS does not rely solely on IAM policies. Instead, it uses a combination of IAM policies, Key Policies, and Grants to enforce access control.

Access Control Type

Purpose

KMS Key Policies

Controls access directly on the key itself (mandatory for all keys).

IAM Policies

Grants users, groups, or roles permission to use KMS keys.

Grants

Provides temporary permissions for specific AWS services (e.g., Lambda, S3).

Service Control Policies (SCPs)

Restricts KMS key usage across multiple AWS accounts.

πŸ“Œ Important: Key Policies override IAM policies in KMS. If an IAM user has KMS permissions but the Key Policy denies access, the user will not be able to use the key.


πŸ”Ή SecureCart Use Case: Protecting Customer Payment Data

SecureCart, an e-commerce platform, needs to encrypt customer credit card transactions stored in Amazon RDS and secure API keys used by third-party vendors.

βœ… SecureCart’s Requirements: βœ” Only authorized applications can decrypt credit card transactions. βœ” Developers should not have direct access to encryption keys. βœ” Auditors need read-only access to encryption logs. βœ” Key usage must be tracked and logged for compliance.


πŸ”Ή Step-by-Step: Implementing Access Policies for KMS Keys

1️⃣ Create a KMS Key for SecureCart’s Payment Transactions

βœ… Steps:

  1. Navigate to AWS KMS β†’ Create Key.

  2. Select Symmetric Key for encryption/decryption.

  3. Define Key Usage (Encrypt & Decrypt).

  4. Add an Alias (e.g., securecart-payment-key).

  5. Configure Key Policy (detailed below).

πŸ“Œ Why Use KMS? βœ” Meets PCI DSS compliance for securing payment data. βœ” Provides centralized key management with fine-grained access controls. βœ” Integrates with AWS services (S3, RDS, API Gateway).


2️⃣ Define Key Policies for Fine-Grained Access Control

βœ… KMS Key Policy for SecureCart:

User/Service

Permission

Justification

SecureCart Lambda Function

kms:Encrypt, kms:Decrypt

Encrypt/decrypt transactions.

Database Admins

kms:DescribeKey, kms:Decrypt

View key details but no modifications.

Auditors

kms:ListKeys, kms:GetKeyPolicy

Compliance reporting (read-only).

Developers

❌ No access

Prevent unauthorized key usage.

πŸ“Œ Key Policy JSON Excerpt:

jsonCopyEdit{
  "Id": "SecureCartKeyPolicy",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:role/securecart-lambda" },
      "Action": ["kms:Encrypt", "kms:Decrypt"],
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["kms:DeleteKey"],
      "Resource": "*"
    }
  ]
}

πŸ”Ή Why This Matters? βœ” Restricts key deletion. βœ” Allows only SecureCart Lambda to use the key. βœ” Blocks unauthorized access from developers.


3️⃣ Implement IAM Policies for Secure Access

IAM Policies help enforce role-based access control (RBAC) to KMS keys.

βœ… Example IAM Policy for SecureCart Auditors (Read-Only Access):

jsonCopyEdit{
  "Effect": "Allow",
  "Action": [
    "kms:ListKeys",
    "kms:GetKeyPolicy",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

πŸ”Ή Why Use IAM Policies? βœ” Assigns fine-grained permissions to IAM roles. βœ” Supports least privilege access control.


4️⃣ Use AWS KMS Grants for Temporary Access

Grants provide temporary permissions to AWS services (e.g., Lambda, RDS).

βœ… Example: SecureCart Lambda Needs Temporary Access

jsonCopyEdit{
  "Effect": "Allow",
  "Action": [
    "kms:CreateGrant",
    "kms:Decrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" }
  }
}

πŸ”Ή Why Use Grants? βœ” Limits access duration (reduces risk). βœ” Ideal for short-lived workloads (e.g., API calls).


5️⃣ Enforce Organization-Wide Key Restrictions with SCPs

SecureCart enforces global KMS security policies across all accounts.

βœ… Service Control Policy (SCP) Example: βœ” Prevents KMS key deletion across all accounts

jsonCopyEdit{
  "Effect": "Deny",
  "Action": ["kms:ScheduleKeyDeletion"],
  "Resource": "*",
  "Condition": {
    "StringEquals": { "aws:PrincipalOrgID": "o-abc12345" }
  }
}

πŸ”Ή Why Use SCPs? βœ” Enforces enterprise-wide security policies. βœ” Prevents accidental key deletion.


πŸ”Ή Best Practices for KMS Access Policies

βœ… Use IAM Roles Instead of IAM Users – Reduces risk of credential leakage. βœ… Enable Key Rotation – Reduces impact of compromised keys. βœ… Restrict Key Deletion – Prevents accidental data loss. βœ… Use Encryption Context – Ensures keys are used only for specific purposes. βœ… Log Key Usage with CloudTrail – Enables security audits.


πŸ”Ή Common Mistakes & How to Avoid Them

Mistake

Impact

Solution

Granting IAM Users Direct KMS Access

Increases security risk

Use IAM roles instead.

Not Configuring Key Policies Properly

Users may be locked out

Always test access policies.

Disabling Key Rotation

Increases risk of key compromise

Enable key rotation for compliance.

Not Logging KMS API Calls

Lack of visibility

Use AWS CloudTrail for tracking.


βœ… Summary

βœ” Use KMS Key Policies for direct key access control. βœ” Use IAM Policies for role-based access control. βœ” Use Grants for temporary, limited access. βœ” Use SCPs to enforce organization-wide security. βœ” Log all KMS activity with AWS CloudTrail for compliance.

PreviousComplianceNextRotating Encryption Keys and Renewing Certificates

Last updated 2 months ago