Uso de roles de IAM con las aplicaciones que llaman directamente a los servicios de AWS
Las aplicaciones que se ejecutan en las instancias EC2 de un clúster pueden usar el perfil de instancia de EC2 para obtener credenciales de seguridad temporales al llamar a los servicios de AWS.
Las versiones de Hadoop disponibles con la versión 2.3.0 y posteriores de Amazon EMR ya se han actualizado para utilizar roles de IAM. Si la aplicación se ejecuta estrictamente sobre la arquitectura de Hadoop y no llama directamente a ningún servicio en AWS, debería funcionar con roles de IAM, sin ningún tipo de modificación.
Si la aplicación llama a los servicios de AWS directamente, debe actualizarla para que utilice los roles de IAM. Esto significa que, en lugar de obtener credenciales de cuenta de /etc/hadoop/conf/core-site.xml
en las instancias de EC2 del clúster, la aplicación utiliza un SDK para acceder a los recursos que utilizan roles de IAM o llama a los metadatos de la instancia de EC2 para obtener las credenciales temporales.
Para tener acceso a los recursos de AWS con roles de IAM mediante un SDK
-
Los siguientes temas muestran cómo utilizar varios de los SDK de AWS para tener acceso a credenciales temporales utilizando roles de IAM. Cada tema comienza con una versión de una aplicación que no utiliza roles de IAM y, a continuación, realiza un recorrido por el proceso de conversión de dicha aplicación para utilizar roles de IAM.
-
Uso de roles de IAM para instancias de Amazon EC2 con el SDK para Java en la Guía para desarrolladores de AWS SDK for Java
-
Uso de roles de IAM para instancias de Amazon EC2 con el SDK para .NET en la Guía para desarrolladores de AWS SDK for .NET
-
Uso de roles de IAM para instancias de Amazon EC2 con el SDK para PHP en la Guía para desarrolladores de AWS SDK for PHP;
-
Uso de roles de IAM para instancias de Amazon EC2 con el SDK para Ruby en la Guía para desarrolladores de AWS SDK for Ruby
-
Para obtener credenciales temporales de metadatos de instancias EC2
-
Llame a la siguiente URL desde una instancia EC2 que se ejecuta con el rol de IAM especificado, que devuelve las credenciales de seguridad temporales asociadas (AccessKeyId, SecretAccessKey, SessionToken y Expiration). En el ejemplo que aparece a continuación se utiliza el perfil de instancia predeterminado para Amazon EMR,
EMR_EC2_DefaultRole
.GET http://169.254.169.254/latest/meta-data/iam/security-credentials/
EMR_EC2_DefaultRole
Para obtener más información sobre la escritura de aplicaciones que utilizan roles de IAM, consulte Permitir el acceso a los recursos de AWS a aplicaciones que se ejecutan en instancias de Amazon EC2.
Para obtener más información acerca de las credenciales de seguridad temporales, consulte Uso de credenciales de seguridad temporales en la guía Uso de credenciales de seguridad temporales.