Roles de IAM para Amazon EC2 - Amazon Elastic Compute Cloud

Roles de IAM para Amazon EC2

Las aplicaciones deben firmar sus solicitudes de API con credenciales de AWS. Por lo tanto, si es usted un desarrollador de aplicaciones, necesitará una estrategia para administrar las credenciales de sus aplicaciones que se ejecuten en instancias de EC2. Por ejemplo, puede distribuir con seguridad sus credenciales de AWS a las instancias, lo que habilita las aplicaciones que tiene en dichas instancias para que utilicen sus credenciales a fin de firmar solicitudes y, al mismo tiempo, proteger sus credenciales respecto a otros usuarios. Sin embargo, distribuir las credenciales a cada instancia de forma segura plantea ciertas dificultades, en especial cuando se trata de aquellas que AWS crea en su nombre, como las instancias de spot o las de los grupos de Auto Scaling. También debe poder actualizar las credenciales de cada instancia cuando rota sus credenciales de AWS.

Hemos diseñado los roles de IAM, para que sus aplicaciones puedan realizar solicitudes de API con seguridad desde sus instancias, sin que usted tenga que administrar las credenciales de seguridad que la aplicación utiliza. En lugar de crear y distribuir sus credenciales de AWS, puede delegar el permiso para realizar solicitudes de API mediante los roles de IAM, tal como se indica a continuación:

  1. Cree de un rol de IAM.

  2. Defina qué cuentas o servicios de AWS pueden asumir el rol.

  3. Defina qué acciones y recursos de la API puede utilizar la aplicación después de asumir el rol.

  4. Especifique el rol cuando lance su instancia, o asocie el rol a una instancia existente.

  5. Haga que la aplicación recupere unas credenciales temporales y las use.

Por ejemplo, puede utilizar roles de IAM para conceder permisos a aplicaciones que se ejecutan en sus instancias y que necesitan utilizar un bucket en Amazon S3. Puede especificar permisos para roles de IAM, creando una política en formato JSON. Son parecidos a las políticas que crea para usuarios de . Si cambia un rol, el cambio se propaga a todas las instancias.

nota

Las credenciales del rol de IAM de Amazon EC2 no están sujetas a la duración máxima de sesión configurada en el rol. Para obtener más información, consulte Uso de roles de IAM en la guía del usuario de IAM.

Al crear roles de IAM, asocie las políticas de IAM con privilegios mínimos que restringen el acceso a las llamadas a la API específicas que requiere la aplicación. Para la comunicación de Windows a Windows, use grupos y roles de Windows bien definidos y bien documentados para conceder acceso a nivel de aplicación entre instancias de Windows. Los grupos y roles permiten que los clientes definan permisos de nivel de carpeta NTFS y aplicaciones con privilegios mínimos para limitar el acceso a los requisitos específicos de la aplicación.

Solo puede adjuntar un rol de IAM a una instancia, pero puede adjuntar el mismo rol a muchas instancias. Para obtener más información sobre la creación y el uso de roles de IAM, consulte Roles en la Guía del usuario de IAM.

Puede aplicar permisos de nivel de recursos a sus políticas de IAM para controlar la capacidad de los usuarios de asociar, sustituir o desasociar roles de IAM de una instancia. Para obtener más información, consulte Permisos de nivel de recurso admitidos para las acciones de la API de Amazon EC2 y el siguiente ejemplo: Ejemplo: Trabajar con roles de IAM.

Perfiles de instancias

Amazon EC2 utiliza un perfil de instancia como contenedor de un rol de IAM. Cuando se crea un rol de IAM utilizando la consola de IAM, esta crea automáticamente un perfil de instancia y le da el mismo nombre que el rol al que corresponde. Si utiliza la consola de Amazon EC2 para iniciar una instancia con un rol de IAM o para asociar un rol de IAM a una instancia, elija el rol en función de una lista de nombres de perfiles de instancias.

Si utiliza la AWS CLI, la API o un SDK de AWS para crear un rol, cree el rol y el perfil de instancia de forma independiente, con nombres potencialmente diferentes. Si posteriormente usa la AWS CLI, la API o un AWS SDK para iniciar una instancia con un rol de IAM o para adjuntar un rol de IAM a una instancia, especifique el nombre del perfil de instancias.

Un perfil de instancia solo puede contener un rol de IAM. Este límite no se puede aumentar.

Para obtener más información, consulte Instance Profiles en la Guía del usuario de IAM.

Permisos para su caso de uso

Cuando crea por primera vez un rol de IAM para las aplicaciones, a veces puede conceder permisos más allá de lo necesario. Antes de iniciar la aplicación en su entorno de producción, puede generar una política de IAM que esté basada en la actividad de acceso de un rol de IAM. El analizador de acceso de IAM revisa los registros de AWS CloudTrail y genera una plantilla de política que contiene los permisos que ha utilizado el rol en el intervalo de fechas especificado. Puede utilizar la plantilla para crear una política administrada con permisos detallados y, a continuación, adjuntarla al rol de IAM. De esta forma, solo concede los permisos que el rol necesita para interactuar con los recursos de AWS para su caso de uso específico. Esto le ayuda a cumplir con la mejor práctica de otorgar privilegios mínimos. Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía de usuario de IAM.

Roles de identidad de instancia para instancias de Amazon EC2

Cada instancia de Amazon EC2 que inicie tiene un rol de identidad de instancia que representa su identidad. Un rol de identidad de instancia es un tipo de rol de IAM. Los servicios y las características de AWS integrados para usar el rol de identidad de instancia pueden usarlo para identificar la instancia en el servicio.

Las credenciales de rol de identidad de instancia están disponibles en el servicio de metadatos de instancia (IMDS) en /identity-credentials/ec2/security-credentials/ec2-instance. Las credenciales incluyen un par de claves de acceso temporal de AWS y un token de sesión. Se utilizan para firmar las solicitudes de Sigv4 de AWS a los servicios de AWS que utilizan el rol de identidad de instancia. Las credenciales están presentes en los metadatos de la instancia independientemente de si un servicio o una característica que utiliza los roles de identidad de la instancia está habilitado en la instancia.

Los roles de identidad de instancia se crean automáticamente cuando se inicia una instancia, no tienen ningún documento de política de confianza de roles y no están sujetos a ninguna política de identidad o recursos.

Servicios admitidos

Los siguientes servicios de AWS utilizan el rol de identidad de instancia:

  • Amazon EC2: la conexión de instancias EC2 utiliza el rol de identidad de instancia para actualizar las claves de host de una instancia de Linux.

  • Amazon GuardDuty: el monitoreo de tiempo de ejecución utiliza el rol de identidad de instancia para permitir que el agente de tiempo de ejecución envíe telemetría de seguridad al punto de conexión de VPC de GuardDuty.

  • AWS Security Token Service (AWS STS): las credenciales del rol de identidad de instancia se pueden usar con la acción GetCallerIdentityde AWS STS.

  • AWS Systems Manager: cuando se utiliza la configuración de la administración de host predeterminada, AWS Systems Manager utiliza la identidad proporcionada por el rol de identidad de instancia para registrar las instancias de EC2. Tras identificar la instancia, Systems Manager puede pasar el rol de IAM de AWSSystemsManagerDefaultEC2InstanceManagementRole a la instancia.

Los roles de identidad de instancia no se pueden usar con otros servicios o características de AWS porque no están integrados con los roles de identidad de instancia.

ARN de rol de identidad de instancia

El ARN de rol de identidad de instancia tiene el siguiente formato:

arn:aws-partition:iam::account-number:assumed-role/aws:ec2-instance/instance-id

Por ejemplo:

arn:aws:iam::0123456789012:assumed-role/aws:ec2-instance/i-0123456789example

Para más información acerca de los ARN, consulte Nombres de recursos de Amazon (ARN) en la guía de referencia de usuario de IAM.