Ya sabes que las políticas son los documentos que definen los permisos en AWS. Pero hay dos formas de aplicarlas, según dónde las adjuntes: a una identidad o a un recurso. Entender la diferencia te ayudará a leer y escribir permisos correctamente, y a resolver el clásico misterio de «¿por qué este permiso no funciona?».

Anatomía de una política (repaso rápido)

Una política IAM es un documento JSON. Su pieza central es la declaración (statement), que responde a:

{
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::informes-2026/*"
}
  • Effect: Allow (permitir) o Deny (denegar).
  • Action: qué se puede hacer (s3:GetObject = leer objetos de S3).
  • Resource: sobre qué recurso (identificado por su ARN, el identificador único de cualquier recurso en AWS).

Esta política dice: «Permitir la acción leer objetos sobre los objetos del bucket informes-2026». No te preocupes por memorizar la sintaxis; lo importante es entender el concepto.

Las dos formas de aplicar permisos

Políticas basadas en identidad (identity-based)

Se adjuntan a una identidad: un usuario, un grupo o un rol. Responden a la pregunta:

«¿Qué puede hacer ESTA identidad?»

Ejemplo: Adjuntas a la usuaria María una política que dice «puede leer del bucket informes-2026». El permiso viaja con María: allá donde actúe, puede leer ese bucket.

Es la forma más común. Cuando das permisos a tus usuarios y roles, normalmente usas políticas basadas en identidad.

Políticas basadas en recurso (resource-based)

Se adjuntan al recurso en sí: un bucket de S3, una cola SQS, una función Lambda… Responden a la pregunta:

«¿Quién puede acceder a ESTE recurso?»

Ejemplo: Adjuntas al bucket informes-2026 una política que dice «la cuenta de la empresa colaboradora puede leer mis objetos». El permiso viaja con el bucket: define quién puede entrar en él.

Ya viste un ejemplo en el Capítulo 5: las bucket policies de S3 son políticas basadas en recurso.

La analogía que lo aclara todo

Analogía del edificio:

  • Una política basada en identidad es como lo que tu tarjeta de empleado puede abrir. La llevas contigo; define a qué puertas puedes entrar tú.
  • Una política basada en recurso es como la lista de personas autorizadas pegada en la puerta de una sala concreta. Define quién puede entrar a esa sala en particular.

A veces, para entrar a una sala, ambas deben coincidir: tu tarjeta debe permitir abrir esa puerta y tu nombre debe estar en la lista de la sala.

¿Cuándo se usa cada una?

Situación Tipo de política
Dar permisos a tus propios usuarios/roles Basada en identidad (lo habitual)
Permitir que otra cuenta de AWS acceda a tu recurso Basada en recurso
Controlar quién accede a un bucket S3, cola SQS, Lambda Basada en recurso
Permisos generales de un equipo de desarrollo Basada en identidad (vía grupos)

El caso estrella de las políticas basadas en recurso es el acceso entre cuentas (cross-account): cuando alguien de otra cuenta de AWS necesita acceder a algo tuyo, la política basada en recurso es la que lo permite, porque se aplica al recurso sin importar de qué cuenta venga quien accede.

Cómo se combinan: la lógica de evaluación

Cuando alguien intenta hacer algo, AWS evalúa todas las políticas que aplican (las de identidad y las de recurso) con estas reglas, en este orden:

  1. Por defecto, todo está denegado. Si nada lo permite, se deniega.
  2. Un Allow explícito concede el permiso (puede venir de la política de identidad o de la de recurso).
  3. Un Deny explícito SIEMPRE gana. Si cualquier política dice «denegar», se deniega, aunque otra diga «permitir».
¿Hay un Deny explícito?  ──Sí──► DENEGADO (gana siempre)
        │ No
        ▼
¿Hay un Allow explícito?  ──Sí──► PERMITIDO
        │ No
        ▼
              DENEGADO (denegación por defecto)

Regla mental: «Deny gana a Allow, y sin Allow no hay permiso.» Esta regla resuelve casi todos los misterios de permisos en AWS.

Ejemplo del misterio típico: «Le di a María permiso para leer el bucket, pero no puede.» Posibles causas: hay un Deny explícito en algún sitio (que gana), o la política del recurso (bucket) no la incluye, o falta el Allow en su identidad. Conociendo la lógica de evaluación, sabes dónde mirar.

Un apunte: políticas gestionadas vs en línea

Para terminar, dos formas de organizar las políticas (no confundir con identidad/recurso):

  • Gestionadas (managed): políticas reutilizables que adjuntas a varias identidades. AWS ofrece muchas predefinidas (como AmazonS3ReadOnlyAccess), y puedes crear las tuyas. Recomendadas por ser reutilizables y fáciles de mantener.
  • En línea (inline): políticas escritas directamente dentro de una sola identidad. Útiles para permisos muy específicos de un único usuario o rol.

Lo que debes recordar

  • Una política define permisos con Effect (allow/deny), Action (qué) y Resource (sobre qué, vía ARN).
  • Basada en identidad: se adjunta a un usuario/grupo/rol → «¿qué puede hacer esta identidad?». Es lo más común.
  • Basada en recurso: se adjunta al recurso (bucket, cola…) → «¿quién puede acceder a este recurso?». Clave para el acceso entre cuentas.
  • Lógica de evaluación: todo denegado por defecto, un Allow concede, y un Deny explícito gana siempre.
  • «Deny gana a Allow, y sin Allow no hay permiso» resuelve la mayoría de dudas.

En el siguiente subcapítulo veremos dos pilares de la seguridad de acceso: la autenticación multifactor (MFA) y las credenciales temporales (STS).

Cloud, AWS & Terraform — De cero a experto

Capítulo 1 · Qué es el cloud computing

Capítulo 2 · El mercado cloud y los grandes proveedores

Capítulo 3 · Regiones, zonas de disponibilidad y edge

Capítulo 4 · Cómputo: EC2

Capítulo 5 · Almacenamiento: S3

Capítulo 6 · Redes: VPC

Capítulo 7 · Identidad y acceso: IAM

Capítulo 8 · Bases de datos gestionadas

Capítulo 9 · Por qué Infraestructura como Código

Capítulo 10 · HCL: el lenguaje de Terraform

Capítulo 11 · Providers y estado

Capítulo 12 · Tu primera infraestructura real en Terraform

Capítulo 13 · Balanceo de carga y autoescalado

Capítulo 14 · Serverless con Lambda

Capítulo 15 · Mensajería y eventos

Capítulo 16 · Entrega de contenido y DNS

Capítulo 17 · Contenedores en AWS

Capítulo 18 · Módulos: reutilización y composición

Capítulo 19 · Workspaces y gestión de entornos

Capítulo 20 · Backends remotos y locking

Capítulo 21 · Testing de infraestructura

Capítulo 22 · Terraform en CI/CD

Capítulo 23 · Seguridad en profundidad

Capítulo 24 · Observabilidad: logs, métricas y trazas

Capítulo 25 · Optimización de costes

Capítulo 26 · Alta disponibilidad y disaster recovery

Capítulo 27 · Well-Architected Framework de AWS

Capítulo 28 · Arquitecturas serverless a escala

Capítulo 29 · Plataformas de datos en AWS

Capítulo 30 · Multi-cuenta y landing zones

Capítulo 31 · Platform Engineering e Internal Developer Platform

Capítulo 32 · Certificaciones AWS relevantes

Capítulo 33 · Proyectos para consolidar lo aprendido

Capítulo 34 · Recursos y comunidad

© Copyright 2024. Todos los derechos reservados