Cuando estamos bajo presión, casi siempre gana la solución más rápida. Algo falla, alguien necesita acceso, hay una entrega cerca. Entonces hacemos lo típico: damos permisos amplios “por ahora”.
El problema es que lo temporal suele quedarse para siempre.
Menor privilegio no es paranoia. Es intención. Damos solo lo necesario para que los errores tengan un impacto pequeño y la seguridad sea más predecible.
Qué significa menor privilegio de verdad
Menor privilegio significa:
- Solo las acciones necesarias
- Solo los recursos necesarios
- Solo cuando se necesita
- Solo para la identidad correcta
Una buena política responde:
- Qué necesita hacer este sistema
- En qué recursos lo hará
- Qué cosas nunca debería poder hacer
IAM no es solo seguridad. IAM también es estabilidad. Un rol con demasiado poder puede romper más cosas más rápido.
Por Qué Importa a Gran Escala
En entornos pequeños, los permisos amplios tal vez no exploten de inmediato. En entornos grandes, tarde o temprano sí.
Menor privilegio te protege de:
- Impacto masivo si una credencial se compromete
- Borrados accidentales en producción
- Roles antiguos que nadie recuerda
- Auditorías difíciles de explicar
Además, ayuda a depurar. Si algo falla, sabemos que los límites de acceso son reales.
Dónde Fallamos Normalmente
Los patrones más comunes son:
- Wildcards como
*:* - Políticas copiadas sin limpieza
- Un rol para todo
- Permisos temporales que nunca se quitan
- No separar permisos de despliegue y ejecución
Esto les pasa a equipos buenos también. La solución es un patrón claro.
Ejemplos: Mala Política vs Buena Política
Ejemplo 1: Acceso a S3
❌ Mala política (demasiado amplia)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
✅ Buena política (limitada y práctica)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucketInPrefix",
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::my-app-data",
"Condition": {
"StringLike": {
"s3:prefix": ["public/*"]
}
}
},
{
"Sid": "ReadObjectsInPrefix",
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-app-data/public/*"
}
]
}
Un Sistema Simple para Diseñar IAM Bien
- Separar roles
- Empezar mínimo y crecer cuando sea necesario
- Usar guardrails como SCPs y boundaries
- Revisar y limpiar permisos regularmente
🧪 Mini Proyecto: Rol de Menor Privilegio para Lambda + S3 usando Terraform.
Objetivo
Crear:
- Un bucket S3
- Un rol de ejecución de Lambda
- Una política de menor privilegio
- Adjuntar la política al rol
La Lambda podrá:
- Leer solo de
public/ - Escribir solo en
results/ - Escribir logs en CloudWatch
¿Quieres verlo todo en acción?
Completa este despliegue arquitectónico utilizando este repositorio de GitHub - Demostración de IAM Least Privilege. Siéntete libre de explorar otros proyectos en los que he trabajado.
Si este artículo te ayudó, aquí está lo que puedes hacer después:
Sígueme en X y YouTube para más contenido de AWS, DevOps y Terraform,para principiantes o expertos. También comparto miniproyectos en nuestro newsletter ☕ Cloud Café Subscríbete en LinkedIn.
Top comments (0)