Diseño de la gestión de identidades y accesos - Cómo lograr una seguridad de confianza cero con IAM

Explicamos los métodos de diseño de la gestión de accesos que aprovechan AWS IAM y presentamos cómo lograr una seguridad de confianza cero con el principio de privilegio mínimo, el diseño de políticas y la integración con Cognito.

Principios básicos de la gestión de accesos en la nube

La seguridad de un entorno en la nube empieza por una gestión de accesos adecuada. AWS Identity and Access Management (IAM) es un servicio para controlar de forma segura el acceso a los recursos de AWS, y configura el control de acceso con cuatro elementos: usuarios, grupos, roles y políticas. IAM se ofrece de forma gratuita con las cuentas de AWS y se puede usar sin coste adicional. En la evaluación de las políticas de IAM, una denegación explícita tiene prioridad sobre un permiso. Un diseño que, siguiendo el principio de privilegio mínimo, concede solo los permisos de acceso necesarios es uno de los fundamentos de la seguridad en la nube.

Diseño de políticas de IAM y prácticas recomendadas

Las políticas de IAM se escriben en formato JSON y se componen de cuatro elementos: Effect (permitir/denegar), Action (operación), Resource (recurso de destino) y Condition (condición). Las políticas administradas por AWS son políticas predefinidas que cubren casos de uso habituales y se pueden utilizar para configurar permisos con rapidez. Con las políticas administradas por el cliente, es posible definir permisos detallados adaptados a los requisitos propios de la organización. Con el elemento Condition se pueden añadir condiciones como restricciones de direcciones IP, la obligatoriedad de MFA, restricciones de franja horaria y el control de acceso basado en etiquetas. A continuación se muestra un ejemplo de política de IAM que exige MFA.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
    }
  }]
}

IAM Access Analyzer detecta automáticamente los recursos compartidos con entidades externas e identifica los permisos de acceso no deseados. Además, la función de generación de políticas de Access Analyzer genera automáticamente políticas de privilegio mínimo a partir de los registros de actividad de CloudTrail y ayuda a reducir los permisos excesivos.

Roles de IAM y acceso entre cuentas

Los roles de IAM son un mecanismo que delega permisos de acceso mediante credenciales de seguridad temporales, y permiten evitar el uso de claves de acceso a largo plazo. Si se asignan roles a servicios de AWS, como los perfiles de instancia de EC2, los roles de ejecución de Lambda o los roles de tarea de ECS, no es necesario incrustar claves de acceso en el código de la aplicación. En el acceso entre cuentas, se configura una política de confianza para permitir la asunción de roles (AssumeRole) desde otra cuenta de AWS y se comparten recursos en un entorno de varias cuentas. Al combinarlo con las políticas de control de servicios (SCP) de AWS Organizations, se pueden definir los límites de acceso de toda la organización y establecer barreras de protección que las políticas de IAM de cada cuenta no pueden superar. Si se usan políticas de sesión, también es posible restringir aún más los permisos al asumir un rol.

Autenticación de usuarios finales mediante la integración con Cognito

IAM se encarga del control de acceso a los recursos de AWS, y para la autenticación de los usuarios finales se puede combinar con Amazon Cognito. Lo habitual es una configuración en la que los grupos de usuarios de Cognito procesan la autenticación de los usuarios (registro, inicio de sesión, MFA) y los grupos de identidades de Cognito emiten credenciales de IAM temporales a los usuarios autenticados. Gracias a esta integración, después de autenticarse en Cognito, los usuarios finales pueden acceder directamente a recursos de AWS como S3 o DynamoDB con los permisos basados en un rol de IAM. Con la función de grupos de Cognito, se puede asociar un rol de IAM distinto a cada grupo de usuarios y separar los permisos por grupo. La integración con proveedores de identidad externos (Google, Facebook, SAML, OIDC) la intermedia Cognito.

Precios de IAM

IAM se puede usar sin coste adicional. Los usuarios, los grupos, los roles y las políticas se pueden crear dentro de los límites de las cuotas de servicio, y las llamadas a la API de IAM no tienen coste. IAM Identity Center (SSO) también es gratuito. El analizador de acceso externo de IAM Access Analyzer es gratuito, y el analizador de acceso no utilizado cuesta unos 0.20 USD al mes por rol/usuario (a fecha de agosto de 2026). IAM es un servicio que constituye la base de la seguridad, y su uso en sí no tiene coste.

Resumen

Como núcleo de la gestión de accesos en entornos en la nube, AWS IAM ofrece sin coste adicional un control detallado de los permisos mediante usuarios, roles y políticas. El diseño de políticas basado en el principio de privilegio mínimo y el análisis automático con IAM Access Analyzer se pueden usar en el trabajo de detectar y reducir los permisos excesivos. Con las credenciales temporales de los roles de IAM se pueden reducir las situaciones en las que se usan claves de acceso a largo plazo, y se pueden usar para el acceso entre cuentas y la integración entre servicios. Al combinarlo con Cognito, se puede gestionar de forma continua desde la autenticación de los usuarios finales hasta el control de acceso a los recursos de AWS. IAM es el servicio central al crear la base de la gestión de accesos en AWS.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir