

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Utilice las funciones de IAM con aplicaciones que llamen directamente a AWS los servicios
<a name="emr-iam-roles-calling"></a>

Las aplicaciones que se ejecutan en las instancias EC2 de un clúster pueden usar el perfil de instancia EC2 para obtener credenciales de seguridad temporales al llamar a los servicios. 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 su aplicación se ejecuta estrictamente sobre la arquitectura Hadoop y no llama directamente a ningún servicio AWS, debería funcionar con las funciones de IAM sin modificaciones.

Si su aplicación llama AWS directamente a los servicios, debe actualizarla para aprovechar las funciones 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 acceder a AWS los recursos con funciones de IAM mediante un SDK**
+ En los siguientes temas se muestra cómo usar varios de ellos para acceder AWS SDKs a las credenciales temporales mediante los 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](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) en la *Guía para desarrolladores de AWS SDK para Java * 
  +  [Uso de roles de IAM para instancias de Amazon EC2 con el SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-roles.html) en la *Guía para desarrolladores de AWS SDK para .NET * 
  +  [Uso de roles de IAM para instancias de Amazon EC2 con el SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/php-dg-roles.html) en la *Guía para desarrolladores de AWS SDK para PHP ;* 
  +  [Uso de roles de IAM para instancias de Amazon EC2 con el SDK para Ruby](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/ruby-dg-roles.html) en la *Guía para desarrolladores de AWS SDK para Ruby * 

**Para obtener credenciales temporales de metadatos de instancias de EC2**
+ Llame a la siguiente URL desde una instancia de EC2 que se ejecute con la función de IAM especificada, que devolverá las credenciales de seguridad temporales asociadas (AccessKeyId, SecretAccessKey SessionToken, y caducidad). 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 cómo escribir aplicaciones que utilizan funciones de IAM, consulte [Conceder acceso AWS a los recursos a las aplicaciones que se ejecutan en instancias de Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html).

Para obtener más información acerca de las credenciales de seguridad temporales, consulte [Uso de credenciales de seguridad temporales](https://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html) en la guía *Uso de credenciales de seguridad temporales*. 