3 min. de lectura (aproximado)

Aws iam: el control central de identidades y permisos en la nube

  • AWS Identity and Access Management, o IAM, es el servicio que gestiona quién puede hacer qué dentro de una cuenta de AWS. Actúa como el sistema de control de acceso de toda la plataforma: define identidades, establece permisos y determina bajo qué condiciones se pueden realizar acciones sobre los recursos.
    Sin un control adecuado de identidades y permisos, cualquier persona o servicio con acceso a la cuenta podría crear, modificar o eliminar recursos de forma no autorizada. IAM resuelve este problema al separar la autenticación de la autorización.

    Componentes principales de IAM

    IAM se organiza en torno a cuatro elementos básicos:
    • Usuarios: identidades permanentes asociadas generalmente a personas.
    • Grupos: conjuntos de usuarios que comparten los mismos permisos.
    • Roles: identidades temporales que pueden ser asumidas por usuarios, aplicaciones o servicios de AWS.
    • Políticas: documentos que definen los permisos concretos.
    Las políticas son el corazón del sistema. Se escriben en formato JSON y especifican las acciones permitidas o denegadas sobre determinados recursos. Una política puede adjuntarse directamente a un usuario, a un grupo o a un rol.

    Cómo funcionan las políticas

    Cada política contiene una o varias declaraciones. Cada declaración indica:
    • El efecto (Allow o Deny).
    • Las acciones permitidas o denegadas.
    • Los recursos sobre los que se aplica.
    • Condiciones opcionales, por ejemplo, restricción por dirección IP o por etiquetas.

    Ejemplos

    Política que permite solo la lectura de información de instancias EC2:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeInstances",
            "ec2:DescribeTags"
          ],
          "Resource": "*"
        }
      ]
    }
    
    Esta política otorga visibilidad sin posibilidad de realizar cambios. En entornos reales se suele restringir aún más el alcance mediante ARNs específicos o condiciones adicionales.

    Ejemplo de una política que permite a un rol asumir permisos temporales:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": "arn:aws:iam::123456789012:role/NombreDelRol"
        }
      ]
    }
    

    Principio de mínimo privilegio

    La práctica más importante en IAM consiste en conceder únicamente los permisos estrictamente necesarios para realizar una tarea. Otorgar permisos amplios, por ejemplo, acceso de administrador, aumenta el riesgo en caso de compromiso de credenciales. Los roles temporales, las políticas con condiciones y la revisión periódica de permisos ayudan a mantener este principio.

    Buenas prácticas generales

    • Preferir roles frente a usuarios con claves de acceso de larga duración.
    • Utilizar la autenticación multifactor, o MFA, en cuentas privilegiadas.
    • Revisar de forma periódica las políticas y los accesos no utilizados.
    • Aplicar el principio de mínimo privilegio desde el diseño inicial.
    • Separar entornos (desarrollo, pruebas y producción) mediante cuentas distintas o unidades organizativas cuando sea posible.

    Roles en IAM

    Los roles en IAM son identidades temporales que permiten a personas, aplicaciones o servicios de AWS obtener permisos de forma segura durante un tiempo limitado.

    Diferencia clave con los usuariosz

    • Un usuario IAM es una identidad permanente (normalmente asociada a una persona) que suele tener credenciales de larga duración, como usuario/contraseña o claves de acceso.
    • Un rol IAM no tiene credenciales permanentes. En su lugar, se “asume” (se toma prestado) durante un periodo de tiempo y recibe credenciales temporales.