🤔 ¿Qué son las políticas IAM en #AWS?
➡️ Son una serie de reglas que te permiten manejar el acceso a los diferentes servicios de AWS.
Una política es un objeto en AWS que puede ser asociado a una identidad o recurso como Usuarios, Grupos y Roles.
Los permisos descritos en la política de acceso determinan si la acción requerida por una identidad es permitida o rechazada.
Estas políticas son descritas como objetos JSON lo que facilita su lectura y escritura.
El principal elemento de una política es el objecto "Statement", un arreglo de reglas.
Este arreglo se compone de un objeto que tiene los siguiente elementos:
✅ "Actions": Una lista de acciones que serán permitidas o denegadas como "s3:Get" que se refiere al servicio s3.
✅ "Resource": Una lista de recursos donde las acciones serán aplicadas.
Los recursos son identificados por un string ARN - Amazon Resource Names cuyo formato es
`arn:partition:service:region:account-id:resource-id`
✅ Condition: Elemento opcional que permite controlar cuando el permiso otorgado es efectivo por ejemplo definiendo que una determinada IP
✅ Effect: "Allow" or "Deny" para indicar si está política permite o deniega acceso a la acción determinada previamente.
Las políticas IAM pueden ser:
- AWS Managed Policies: Creadas, configuradas y mantenidas por Amazon para cubrir los casos de uso más comunes por ejemplo
AmazonS3FullAccess o AmazonS3ReadOnlyAccess
O Customer Managed Policies que en efecto son políticas creadas por ti, el usuario.
Puedes crear estas políticas
📑 Copiando una AWS Managed Policy y luego editándola
💻 Usando el generador de políticas en la interfaz.
✍️ Manualmente
Si bien las políticas IAM pueden ser asignadas a cualquier identidad y son públicamente accesibles, es posible crear políticas que estén asociadas solo a una identidad en particular: Inline Policies
Estas "Inline Policies" están "embebidas" a una identidad en específico y no pueden ser utilizadas o compartidas por otra identidad.
Se pueden crear con el generador de políticas o manualmente y si la identidad es eliminada, esta política también lo será
Una situación común es que se agregues varias políticas a una identidad y que en algún punto se genere un conflicto.
¿Cómo se maneja el conflicto?
- Por defecto todo acceso es denegado
- "Deny" tiene precedencia sobre cualquier "Allow"
Por cierto, la definición de una política IAM puede tener múltiples estamentos y afectar a multiples servicios o recursos