Políticas IAM en AWS

Roberto EspañaRoberto España
3 min read

📘 Introducción

Hoy voy a hablar sobre las IAM policies, cómo están estructuradas, cómo funcionan y algunos conceptos clave para entenderlas mejor.


🧾 Policy

Las IAM policies son documentos en formato JSON que definen permisos para permitir o denegar (allow or deny) acciones sobre los servicios y recursos de AWS. Estas políticas pueden asociarse a identidades como usuarios, grupos y roles, o directamente a recursos, como un bucket S3.

A continuación, podemos ver un ejemplo básico de una policy y sus componentes:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AccesoCompleto",
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}

🧩 Componentes clave

  • Statement (declaración): Es el bloque principal que compone una policy. Puede haber múltiples statements dentro de una misma política. En esencia, es una lista (array) de reglas individuales de permisos.

  • Sid: Es una etiqueta opcional usada para identificar el statement. Sirve como un nombre que describe el propósito de ese bloque de permisos.

  • Effect: Define el efecto del statement, que puede ser Allow (permitir) o Deny (denegar).

  • Action: Especifica las acciones que se permiten o deniegan. En el ejemplo anterior, se otorgan todos los permisos sobre el servicio S3 (s3:*).

  • Resource: Indica los recursos a los que se aplica la acción, utilizando el formato ARN (Amazon Resource Name). En el ejemplo, se concede acceso completo a todos los recursos S3 de la cuenta.


🔎 Evaluación de acceso: DENY -> ALLOW -> DENY

AWS utiliza una lógica específica para evaluar si se concede o no el acceso a un recurso:

  • Deny implícito: Por defecto, todo acceso está denegado.

  • Allow explícito: Si una política concede acceso, entonces se permite.

  • Deny explícito: Si existe una política que deniega explícitamente el acceso, esta tiene prioridad sobre cualquier Allow y siempre se impone.


🔗 Asociación de múltiples políticas

Al trabajar con IAM, es común preguntarse:

¿Un usuario puede tener múltiples policies asociadas?
La respuesta es . Un usuario puede tener permisos provenientes de distintas fuentes:

  1. Policies directamente adjuntadas al usuario (IAM policy).

  2. Policies adjuntadas a un grupo al que pertenece el usuario.

  3. Policies adjuntadas a un recurso específico (resource-based policy), como un bucket S3.


🧠 Tipos de políticas IAM

Existen dos formas principales de definir políticas:

🔸 Inline Policies

  • Se adjuntan directamente a un usuario, grupo o rol.

  • Son específicas y no reutilizables.

  • Útiles en casos únicos o excepcionales donde se necesita una granularidad máxima.

  • No recomendadas para grandes organizaciones por su alto costo de mantenimiento.

🔹 Managed Policies

  • Son políticas reutilizables y más fáciles de gestionar.

  • Existen dos tipos:

    • AWS Managed Policies: Creadas y mantenidas por AWS.

    • Customer Managed Policies: Creadas por el cliente para su propio uso.

  • Permiten centralizar la gestión de permisos, aplicándolos de manera uniforme a múltiples usuarios, grupos o roles.

  • Son recomendadas para entornos que requieren eficiencia, escalabilidad y bajo overhead administrativo


✅ Conclusión

Entender cómo funcionan las IAM policies es fundamental para gestionar correctamente el acceso a los recursos en AWS. Saber estructurarlas, reconocer sus componentes clave y cómo se evalúan permite construir entornos seguros, escalables y controlados. Además, elegir el tipo adecuado de política (inline vs. managed) según el caso de uso puede marcar la diferencia en la eficiencia administrativa y el mantenimiento a largo plazo.

0
Subscribe to my newsletter

Read articles from Roberto España directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Roberto España
Roberto España

Ingeniero en Telecomunicaciones con enfoque en redes, conectividad y automatización. Actualmente estudiando AWS, DevOps y CI/CD. Comparto mi camino con proyectos prácticos y artículos técnicos desde Chile 🇨🇱.