SAA-C03
Deep Dive
La gestión de claves y secretos es uno de los pilares del dominio de seguridad. El examen distingue entre cuándo usar KMS (claves de cifrado), Secrets Manager (credenciales con rotación) y SSM Parameter Store (configuración). Entender esta distinción es clave.
Contenido
AWS KMS es el servicio central de gestión de claves criptográficas. Se integra nativamente con S3, EBS, RDS, DynamoDB, Lambda, Secrets Manager y casi todo el ecosistema AWS.
Las claves KMS son regionales — una clave en us-east-1 no puede usarse directamente en eu-west-1. Para multi-región, existe Multi-Region Keys.
Seguridad FIPS 140-2
KMS usa módulos HSM certificados. Las claves nunca salen del módulo en texto claro.
Auditoría con CloudTrail
Cada uso de una clave (cifrar, descifrar) genera un evento en CloudTrail. Trazabilidad total.
Rotación automática
Customer-managed keys: rotación anual automática opcional. Material nuevo, mismo Key ID.
KMS no cifra tus datos directamente (sería ineficiente para archivos grandes). Usa envelope encryption: la CMK cifra una data key efímera, y esa data key cifra tus datos reales.
Flujo de cifrado
Solicitar data key
Tu app llama a KMS: GenerateDataKey. KMS devuelve la data key en texto claro Y cifrada con tu CMK.
Cifrar con data key
Tu app usa la data key en texto claro (localmente, sin llamada a red) para cifrar los datos.
Descartar data key en claro
Eliminas la data key en claro de memoria. Solo guardas: datos cifrados + data key cifrada.
Para descifrar
Llamas a KMS con la data key cifrada. KMS la descifra con la CMK y te devuelve la data key en claro para descifrar los datos.
Por qué es importante para el examen
Envelope encryption es la razón por la que KMS puede escalar a millones de objetos. Solo hay 2 llamadas a KMS por objeto (GenerateDataKey al cifrar, Decrypt al descifrar) — no importa el tamaño del archivo.
| Tipo de clave | Creada por | Control | Rotación | Costo |
|---|---|---|---|---|
| AWS Owned Keys | AWS | Ninguno | Automática (AWS) | Gratis |
| AWS Managed Keys | AWS (para tu cuenta) | Ver policy, no modificar | Automática cada 3 años | Gratis |
| Customer Managed Keys | Tú | Control total (policy, rotación, disable) | Manual o automática (1 año) | $1/mes + $0.03/10k requests |
| Customer Imported Keys | Tú (material externo) | Traes tu propio material criptográfico | Solo manual | $1/mes |
Secrets Manager almacena y gestiona secretos (contraseñas de BD, API keys, tokens OAuth) con rotación automática. Cifra secretos con KMS. Ideal para credenciales de bases de datos.
Características clave
Señales en el examen
AWS Systems Manager Parameter Store almacena configuración y secretos simples en formato key-value. Más barato que Secrets Manager pero sin rotación automática integrada.
Standard Parameter
Hasta 4KB, gratuito. Para configuración como nombres de ambiente, URLs, feature flags.
Advanced Parameter
Hasta 8KB, $0.05/parámetro/mes. Soporta políticas (TTL, expiración). Para secretos de mayor tamaño.
String
Valor de texto plano. Para configuración no sensible (nombre de ambiente, región, etc.).
SecureString
Valor cifrado con KMS. Para secretos simples que no necesitan rotación automática.
ACM provisiona, gestiona y renueva certificados SSL/TLS automáticamente. Gratis para certificados usados con AWS services (CloudFront, ALB, API Gateway).
Renovación automática
ACM renueva certificados antes de que expiren. Cero gestión manual.
Solo para AWS services
No puedes exportar la clave privada. Solo ALB, CloudFront, API Gateway.
Certificados importados
Puedes importar certificados de terceros (Let's Encrypt, etc.) si necesitas exportarlos.
Validación
DNS validation (recomendada) o Email validation para probar que eres dueño del dominio.
| Necesidad | Servicio recomendado | Razón |
|---|---|---|
| Cifrar datos en S3, EBS, RDS | AWS KMS | Integración nativa + auditoría CloudTrail |
| Credenciales de BD con rotación automática | Secrets Manager | Rotación integrada con Lambda para RDS/Aurora |
| Variables de configuración por ambiente | SSM Parameter Store (Standard) | Gratuito, jerárquico (/prod/api/url) |
| API keys sin rotación automática | SSM Parameter Store SecureString | Más barato que Secrets Manager si no necesitas rotación |
| Certificados HTTPS para ALB/CloudFront | AWS Certificate Manager | Gratis + renovación automática |
| Material criptográfico propio (BYOK) | KMS Customer Imported Keys | Control total del material de clave |
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una aplicación en EC2 necesita conectarse a una base de datos RDS MySQL. Las credenciales deben rotarse automáticamente cada 30 días sin reiniciar la aplicación. ¿Cuál es la solución correcta?