Cómo funciona IAM - AWS Identity and Access Management

Cómo funciona IAM

AWS Identity and Access Management proporciona la infraestructura necesaria para controlar la autenticación y autorización de la Cuenta de AWS.

En primer lugar, un usuario humano o una aplicación utiliza las credenciales de inicio de sesión para autenticarse en AWS. IAM compara las credenciales de inicio de sesión con una entidad principal (un usuario de IAM, un usuario federado, un rol de IAM o una aplicación) en la que confía la Cuenta de AWS y autentica el permiso de acceso a AWS.

Luego, IAM realiza una solicitud para conceder a la entidad principal acceso a los recursos. IAM concede o deniega acceso en respuesta a una solicitud de autorización. Por ejemplo, si inicia sesión en la consola por primera vez y se encuentra en la página de inicio de la consola, no está accediendo a un servicio específico. Cuando selecciona un servicio, envía una solicitud de autorización a IAM para ese servicio. IAM comprueba que su identidad aparece en la lista de usuarios autorizados, determina qué políticas controlan el nivel de acceso concedido y evalúa cualquier otra política que pueda estar en vigor. Las entidades principales de su Cuenta de AWS o de cualquier otra Cuenta de AWS de confianza pueden realizar solicitudes de autorización.

Una vez autorizada, la entidad principal puede realizar acciones u operaciones en los recursos de su Cuenta de AWS. Por ejemplo, la entidad principal puede lanzar una instancia de Amazon Elastic Compute Cloud nueva, modificar las suscripciones a un grupo de IAM o eliminar buckets de Amazon Simple Storage Service. El siguiente diagrama ilustra este proceso a través de la infraestructura de IAM:

Este diagrama muestra cómo el servicio de IAM autentica y autoriza a una entidad principal para realizar acciones u operaciones en otros servicios o recursos de AWS.

Componentes de una solicitud

Cuando una entidad principal intenta utilizar la AWS Management Console, la API de AWS o la AWS CLI, la entidad principal envía una solicitud a AWS. La solicitud incluye la información siguiente:

  • Acciones u operaciones: las acciones u operaciones que la entidad principal quiere realizar, como una acción en la AWS Management Console de la API o una operación en la AWS CLI o la API de AWS.

  • Recursos: el objeto de recurso de AWS sobre el que la entidad principal solicita que realicen una acción u operación.

  • Principal: persona o aplicación que utilizó una entidad (usuario o rol) para enviar la solicitud. La información sobre la entidad principal incluye las políticas de permisos.

  • Datos de entorno: información sobre la dirección IP, el agente de usuario, el estado de habilitación de SSL y la marca temporal.

  • Datos de recursos: datos relacionados con el recurso solicitado, como por ejemplo, un nombre de tabla de DynamoDB o una etiqueta de una instancia de Amazon EC2.

AWS recopila la información sobre la solicitud en un contexto de solicitud, que IAM evalúa para autorizarla.

Autenticación de entidades principales

Una entidad principal inicia sesión en AWS con sus credenciales, que IAM autentica para permitir a la entidad principal enviar una solicitud a AWS. Algunos servicios como, por ejemplo, Amazon S3 y AWS STS, permiten solicitudes específicas de los usuarios anónimos. Sin embargo, son la excepción a la regla. Se autentica cada tipo de usuario.

  • Usuario raíz: las credenciales de inicio de sesión utilizadas para la autenticación son la dirección de correo electrónico que utilizó para crear la Cuenta de AWS y la contraseña que especificó en ese momento.

  • Usuario federado: su proveedor de identidad lo autentica y le pasa sus credenciales de AWS, sin que tenga que iniciar sesión directamente en AWS. Tanto IAM Identity Center como IAM admiten usuarios federados.

  • Usuarios en Directorio de AWS IAM Identity Center (no federados): los usuarios creados directamente en el directorio predeterminado del IAM Identity Center inician sesión en el portal de acceso de AWS y proporcionan su nombre de usuario y contraseña.

  • Usuario de IAM: para iniciar sesión, proporcione el ID de la cuenta o alias, el nombre de usuario y la contraseña. Para autenticar cargas de trabajo desde la API o la AWS CLI, puede utilizar credenciales temporales mediante la asignación de un rol o puede utilizar credenciales a largo plazo al proporcionar su clave de acceso y clave secreta.

    Para obtener más información acerca de estas entidades de IAM, consulte Usuarios de IAM y Roles de IAM.

AWS le recomienda el uso de la autenticación multifactor (MFA) con todos los usuarios para aumentar la seguridad de su cuenta. Para obtener más información sobre MFA, consulte Autenticación multifactor de AWS en IAM.

Conceptos básicos de la política de autorizaciones y permisos

La autorización se refiere a que la entidad principal tenga los permisos necesarios para completar su solicitud. Durante la autorización, IAM identifica las políticas que se aplican a la solicitud con valores del contexto de solicitud. A continuación, utiliza las políticas para determinar si se debe permitir o denegar la solicitud. IAM almacena la mayoría de las políticas de permisos como documentos JSON que especifican los permisos de las entidades principales.

Existen varios tipos de políticas que pueden afectar una solicitud de autorización. Para proporcionar a los usuarios los permisos necesarios para tener acceso a los recursos de AWS de su cuenta, puede utilizar políticas basadas en identidad. Las políticas basadas en recursos pueden conceder acceso entre cuentas. Para realizar una solicitud en una cuenta diferente, una política de la otra cuenta debe permitirle el acceso al recurso y la entidad de IAM que utilice para realizar la solicitud debe tener una política basada en identidad que la permita.

IAM comprueba cada política que se aplica al contexto de una solicitud. La evaluación de políticas de IAM utiliza una denegación explícita, lo que significa que si una sola política de permisos incluye una acción denegada, IAM deniega toda la solicitud y deja de evaluarla. Dado que las solicitudes se deniegan de forma predeterminada, las políticas de permisos aplicables deben permitir todas las partes de la solicitud para que IAM la autorice. La lógica de evaluación para una solicitud dentro de una cuenta individual se rige por las siguientes normas básicas:

  • De forma predeterminada, se deniegan todas las solicitudes. (Por lo general, las solicitudes realizadas con las credenciales de Usuario raíz de la cuenta de AWS para los recursos de la cuenta siempre se autorizan).

  • Un permiso explícito en cualquier política de permisos (basada en identidad o en recursos) anula esta opción predeterminada.

  • La existencia de una SCP de Organizaciones, un límite de permisos de IAM o una política de sesión anula el permiso. Si existen uno o varios de estos tipos de políticas, todos ellos deben permitir la solicitud. De lo contrario, se deniega implícitamente.

  • Una denegación explícita en cualquier política invalida cualquier permiso concedido a cualquier política.

Para obtener más información, consulte Lógica de evaluación de políticas.

Una vez que IAM autentica y autoriza a la entidad principal, aprueba las acciones u operaciones de su solicitud evaluando la política de permisos que se aplica a la entidad principal. Cada servicio de AWS define las acciones (operaciones) compatibles, e incluye las cosas que se pueden hacer con un recurso, como visualizar, crear, editar y eliminar dicho recurso. La política de permisos que se aplica a la entidad principal debe incluir las acciones necesarias para realizar una operación. Para obtener más información sobre cómo IAM evalúa las políticas de permisos, consulte Lógica de evaluación de políticas.

El servicio define un conjunto de acciones que la entidad principal puede llevar a cabo en cada recurso. Al crear políticas de permisos, asegúrese de incluir las acciones que desea que el usuario pueda realizar. Por ejemplo, IAM admite más de 40 acciones para un recurso de usuario, incluidas las siguientes acciones básicas:

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

Además, puede especificar condiciones en su política de permisos que proporcionen acceso a los recursos cuando la solicitud cumpla las condiciones especificadas. Por ejemplo, es posible que desee que una declaración de política entre en vigor después de una fecha específica o que controle el acceso cuando aparezca un valor específico en la API. Para especificar las condiciones, se usa el elemento Elementos de la política de JSON de IAM: operadores de condiciónCondition de una declaración de política.

Después de que IAM aprueba las operaciones de una solicitud, la entidad principal puede trabajar con los recursos relacionados dentro de la cuenta. Un recurso es un objeto que existe dentro de un servicio. Entre los ejemplos se incluyen una instancia Amazon EC2, un usuario de IAM y un bucket de Amazon S3. Si la entidad principal crea una solicitud para realizar una acción en un recurso que no está incluido en la política de permisos, el servicio deniega la solicitud. Por ejemplo, si tiene permiso para eliminar un rol de IAM, pero solicita eliminar un grupo de IAM, la solicitud fallará si no tiene permiso para eliminar grupos de IAM. Para obtener más información sobre qué acciones, recursos y claves de condición admiten los diferentes servicios de AWS, consulte Acciones, recursos y claves de condición para servicios de AWS.