

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.

# Autenticación y acceso: uso AWS SDKs y herramientas
<a name="access"></a>

Al desarrollar una aplicación AWS del SDK o utilizar AWS herramientas para utilizarla Servicios de AWS, debe establecer la forma en que se autentica su código o herramienta. AWS Puede configurar el acceso programático a AWS los recursos de diferentes maneras, según el entorno en el que se ejecute el código y el AWS acceso del que disponga. 

Las siguientes opciones forman parte de la [cadena de proveedores de credenciales](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain). Esto significa que, al configurar `credentials` los archivos AWS `config` y recursos compartidos en consecuencia, el AWS SDK o la herramienta detectarán y utilizarán automáticamente ese método de autenticación.

## Elección de un método para autenticar el código de aplicación
<a name="authDecisionTree"></a>

Elige un método para autenticar las llamadas realizadas AWS por tu aplicación.

### ¿Está ejecutando código DENTRO de un Servicio de AWS (como Amazon EC2, Lambda, Amazon ECS, Amazon EKS)? CodeBuild
<a name="a"></a>

Si el código se ejecuta AWS, las credenciales se pueden poner automáticamente a disposición de la aplicación. Por ejemplo, si su aplicación está alojada en Amazon Elastic Compute Cloud y hay un rol de IAM asociado a ese recurso, las credenciales estarán disponibles automáticamente para su aplicación. Del mismo modo, si utiliza contenedores de Amazon ECS o Amazon EKS, el código que se ejecuta en el contenedor a través de la [cadena de proveedores de credenciales](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) del SDK puede obtener automáticamente las credenciales establecidas para el rol de IAM.

#### ¿Su código se encuentra en una instancia de Amazon Elastic Compute Cloud?
<a name="a1"></a>

[Uso de funciones de IAM para autenticar las aplicaciones desplegadas en Amazon EC2](access-iam-roles-for-ec2.md): utilizar roles de IAM para ejecutar de forma segura su aplicación en una instancia de Amazon EC2.

#### ¿Su código está en una AWS Lambda función?
<a name="a2"></a>

Lambda crea un rol de ejecución con permisos mínimos al [crear una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). A continuación, el AWS SDK o la herramienta utilizan automáticamente la función de IAM asociada a la Lambda en tiempo de ejecución, a través del entorno de ejecución de Lambda.

#### ¿Su código está en Amazon Elastic Container Service (en Amazon EC2 o en AWS Fargate Amazon ECS)?
<a name="a3"></a>

Roles de IAM para la tarea. Debe [crear un rol de tarea](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) y especificarlo en la [definición de tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html). A continuación, el SDK o la herramienta de AWS utilizan automáticamente el rol de IAM asignado a la tarea en tiempo de ejecución, a través de los metadatos de Amazon ECS.

#### ¿Su código está en Amazon Elastic Kubernetes Service?
<a name="a4"></a>

Le recomendamos que utilice [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

Nota: Si cree que los [roles de IAM para cuentas de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (IRSA) podrían adaptarse mejor a sus necesidades específicas, consulte [Comparación de Pod Identity de EKS e IRSA](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-accounts-iam) en la **Guía del usuario de Amazon EKS**.

#### ¿Su código se ejecuta en AWS CodeBuild
<a name="a5"></a>

Consulte [Uso de políticas basadas en la identidad](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html) para. CodeBuild

#### ¿Está su código en otro Servicio de AWS?
<a name="a6"></a>

Consulte la guía dedicada a su Servicio de AWS. Cuando ejecutas código AWS, la [cadena de proveedores de credenciales](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) del SDK puede obtener y actualizar automáticamente las credenciales por ti.

### ¿Está creando aplicaciones móviles o aplicaciones web basadas en clientes?
<a name="b"></a>

Si va a crear aplicaciones móviles o aplicaciones web basadas en clientes a las que es necesario acceder AWS, cree su aplicación de manera que solicite credenciales de AWS seguridad temporales de forma dinámica mediante la federación de identidades web. 

Con la federación de identidades web no necesita crear código de inicio de sesión personalizado ni administrar sus propias identidades de usuario. En lugar de ello, los usuarios de la aplicación pueden iniciar sesión con un proveedor de identidades (IdP) externo bien conocido, como Login with Amazon, Facebook, Google o cualquier otro IdP compatible con OpenID Connect (OIDC). Pueden recibir un token de autenticación y, después, cambiarlo por credenciales de seguridad temporales en AWS ese mapa por un rol de IAM con permisos para usar los recursos de su empresa. Cuenta de AWS

Para aprender a configurar esto para su SDK o herramienta, consulte [Asumir un rol con identidad web u OpenID Connect para autenticar y herramientas AWS SDKs](access-assume-role-web.md). 

Para aplicaciones móviles, le recomendamos que utilice Amazon Cognito. Amazon Cognito actúa como agente de identidades y realiza gran parte del trabajo de federación por usted. Para obtener más información, consulte [Uso de Amazon Cognito para aplicaciones móviles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) en la *Guía del usuario de IAM*. 

### ¿Está desarrollando y ejecutando el código LOCALMENTE?
<a name="c"></a>

Lo recomendamos[Uso de credenciales de consola para autenticar AWS SDKs y herramientas](access-login.md).

Tras un flujo de autenticación rápido basado en el navegador, genera AWS automáticamente credenciales temporales que funcionan en todas las herramientas de desarrollo locales, como la AWS CLI y Herramientas de AWS para PowerShell . AWS SDKs 

#### Si usa Identity Center para AWS acceder a la cuenta
<a name="idc"></a>

Utilice el Centro de identidades de IAM para autenticar el AWS SDK y las herramientas si ya tiene acceso a AWS las cuentas que and/or necesita para gestionar el acceso de sus empleados. Como práctica recomendada de seguridad, te recomendamos que utilices AWS Organizations el IAM Identity Center para gestionar el acceso a todas tus cuentas. AWS Puede crear usuarios en el Centro de identidades de IAM, usar Microsoft Active Directory, usar un proveedor de identidades (IdP) SAML 2.0 o federar individualmente su IdP en cuentas. AWS Para comprobar si su región es compatible con el Centro de Identidad de IAM, consulte los puntos de enlace y las cuotas del Centro de Identidad de [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md) IAM en la Referencia general de Amazon Web Services.

#### Si busca otras formas de autenticarse
<a name="owa"></a>

Cree un usuario de IAM con menos privilegios con permisos para `sts:AssumeRole` desempeñar su función de destino. A continuación, configure su perfil para que asuma un rol mediante una `source_profile` configuración para ese usuario.

También puede usar credenciales de IAM temporales a través de variables de entorno o del archivo de AWS credenciales compartido. Consulte Uso de credenciales de corta duración para autenticar AWS SDKs y utilizar herramientas.

Nota: Solo en entornos aislados o de aprendizaje, puede considerar la posibilidad de utilizar credenciales de larga duración para AWS SDKs autenticar y utilizar herramientas.

### ¿Este código se ejecuta en las instalaciones o en una máquina virtual híbrida/bajo demanda (como un servidor que lee o escribe en Amazon S3, o Jenkins que implementa en la nube)?
<a name="d"></a>

#### ¿Utiliza certificados de cliente X.509?
<a name="d1"></a>

Sí, consulte [Uso de funciones de IAM en cualquier lugar para AWS SDKs autenticar y utilizar herramientas](access-rolesanywhere.md). Puede usar IAM Roles Anywhere para obtener credenciales de seguridad temporales en IAM para cargas de trabajo como servidores, contenedores y aplicaciones que se ejecutan fuera de ellos. AWS Para utilizar IAM Roles Anywhere, sus cargas de trabajo deben utilizar certificados X.509.

#### ¿Puede el entorno conectarse de forma segura a un proveedor de identidad federado (como Microsoft Entra u Okta) para solicitar credenciales temporales? AWS
<a name="d2"></a>

##### Sí: utilice [Proveedor de credenciales de proceso](feature-process-credentials.md)
<a name="d2a"></a>

Se utiliza [Proveedor de credenciales de proceso](feature-process-credentials.md) para recuperar las credenciales automáticamente en tiempo de ejecución. Estos sistemas pueden utilizar una herramienta auxiliar o un complemento para obtener las credenciales y pueden asumir un rol de IAM entre bastidores al utilizar `sts:AssumeRole`.

##### No: utilice credenciales temporales inyectadas mediante AWS Secrets Manager
<a name="d2b"></a>

Utilice credenciales temporales inyectadas mediante AWS Secrets Manager. Para ver las opciones para obtener claves de acceso de corta duración, consulte [Solicitud de credenciales de seguridad temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) en la *Guía del usuario de IAM*. Para ver las opciones de almacenamiento de estas credenciales temporales, consulte [AWS claves de acceso](feature-static-credentials.md).

Puede usar estas credenciales para recuperar de forma segura permisos de aplicaciones más amplios desde [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html), donde se pueden almacenar los secretos de producción o credenciales basadas en roles de larga duración.

### ¿Estás utilizando una herramienta de terceros que no está incluida AWS?
<a name="e"></a>

Utilice la documentación redactada por su proveedor externo para obtener la mejor orientación sobre la obtención de credenciales.

#### Si un tercero no ha proporcionado la documentación, ¿puede inyectar credenciales temporales de forma segura?
<a name="e1"></a>

Sí: utilice variables de entorno y AWS STS credenciales temporales.

No: utilice claves de acceso estáticas almacenadas en el administrador de secretos cifrados (último recurso).

## Métodos de autenticación
<a name="authOptions"></a>

**Métodos de autenticación para el código que se ejecuta en un AWS entorno**

Si el código se ejecuta AWS, las credenciales se pueden poner automáticamente a disposición de la aplicación. Por ejemplo, si su aplicación está alojada en Amazon Elastic Compute Cloud y hay un rol de IAM asociado a ese recurso, las credenciales estarán disponibles automáticamente para su aplicación. Del mismo modo, si utiliza contenedores de Amazon ECS o Amazon EKS, el código que se ejecuta en el contenedor a través de la cadena de proveedores de credenciales del SDK puede obtener automáticamente las credenciales establecidas para el rol de IAM.
+ [Uso de funciones de IAM para autenticar las aplicaciones desplegadas en Amazon EC2](access-iam-roles-for-ec2.md): utilizar roles de IAM para ejecutar de forma segura su aplicación en una instancia de Amazon EC2. 
+  Puede interactuar mediante programación mediante el IAM Identity Center de las siguientes maneras: AWS 
  + Se utiliza [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/)para ejecutar AWS CLI comandos desde la consola.
  + Si quieres probar un espacio de colaboración basado en la nube para equipos de desarrollo de software, considera usar [Amazon CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html). 

**Autenticación a través de un proveedor de identidades basado en web, aplicaciones web móviles o basadas en cliente**

Si va a crear aplicaciones móviles o aplicaciones web basadas en clientes a las que es necesario acceder AWS, cree su aplicación de manera que solicite credenciales de AWS seguridad temporales de forma dinámica mediante la federación de identidades web. 

Con la federación de identidades web no necesita crear código de inicio de sesión personalizado ni administrar sus propias identidades de usuario. En lugar de ello, los usuarios de la aplicación pueden iniciar sesión con un proveedor de identidades (IdP) externo bien conocido, como Login with Amazon, Facebook, Google o cualquier otro IdP compatible con OpenID Connect (OIDC). Pueden recibir un token de autenticación y, después, cambiarlo por credenciales de seguridad temporales en AWS ese mapa por un rol de IAM con permisos para usar los recursos de su empresa. Cuenta de AWS

Para aprender a configurar esto para su SDK o herramienta, consulte [Asumir un rol con identidad web u OpenID Connect para autenticar y herramientas AWS SDKs](access-assume-role-web.md). 

Para aplicaciones móviles, le recomendamos que utilice Amazon Cognito. Amazon Cognito actúa como agente de identidades y realiza gran parte del trabajo de federación por usted. Para obtener más información, consulte [Uso de Amazon Cognito para aplicaciones móviles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) en la *Guía del usuario de IAM*. 

**Métodos de autenticación para el código que se ejecuta de forma local (no interna en AWS)**
+ [Uso de credenciales de consola para autenticar AWS SDKs y herramientas](access-login.md)— Esta función funciona tanto con la interfaz de línea de AWS comandos como con las herramientas PowerShell y le proporciona credenciales actualizables que funcionan en todas las herramientas de desarrollo local, como la AWS CLI, las herramientas para PowerShell y. AWS
+ [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md)— Como práctica recomendada de seguridad, le recomendamos que la utilice AWS Organizations junto con IAM Identity Center para gestionar el acceso en todas sus instalaciones. Cuentas de AWS Puede crear usuarios en Microsoft Active Directory AWS IAM Identity Center, usar un proveedor de identidades (IdP) de SAML 2.0 o federar individualmente su IdP a. Cuentas de AWS Para comprobar si su región es compatible con el IAM Identity Center, consulte los [puntos de conexión de AWS IAM Identity Center y las cuotas](https://docs.aws.amazon.com/general/latest/gr/sso.html) en *Referencia general de Amazon Web Services*. 
+ [Uso de funciones de IAM en cualquier lugar para AWS SDKs autenticar y utilizar herramientas](access-rolesanywhere.md)— Puede utilizar IAM Roles Anywhere para obtener credenciales de seguridad temporales en IAM para cargas de trabajo como servidores, contenedores y aplicaciones que se ejecutan fuera de ellas. AWS Para utilizar IAM Roles Anywhere, sus cargas de trabajo deben utilizar certificados X.509. 
+  [Asumir un rol con AWS credenciales para autenticarse AWS SDKs y herramientas](access-assume-role.md)— Puedes asumir una función de IAM para acceder temporalmente a AWS recursos a los que, de otro modo, no tendrías acceso. 
+  [Uso de claves de AWS acceso para autenticar AWS SDKs y herramientas](access-users.md)— Otras opciones que podrían resultar menos prácticas o que podrían aumentar el riesgo de seguridad de sus AWS recursos. 

**Más información sobre la administración de acceso**

La *guía del usuario de IAM* contiene la siguiente información sobre el control seguro del acceso a AWS los recursos:
+ [Identidades de IAM (usuarios, grupos de usuarios y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html): comprenda los conceptos básicos de las identidades en. AWS
+ [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html): recomendaciones de seguridad que se deben seguir al desarrollar aplicaciones AWS de acuerdo con el [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/).

*Referencia general de Amazon Web Services* tiene los conceptos básicos sobre lo siguiente:
+ [Comprender y obtener sus credenciales de AWS](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html): opciones de claves de acceso y prácticas de gestión tanto para el acceso por consola como programático.

**Complemento de propagación de identidades de confianza (TIP) de IAM Identity Center para acceder a Servicios de AWS**
+ [Uso del complemento TIP para acceder Servicios de AWS](access-tip.md)— Si está creando una aplicación para Amazon Q Business u otro servicio que permita la propagación de identidades de forma fiable y utiliza el AWS SDK para Java o el AWS SDK para JavaScript, puede utilizar el complemento TIP para disfrutar de una experiencia de autorización simplificada. 

## ID de creador de AWS
<a name="bid"></a>

El tuyo ID de creador de AWS complementa cualquier otra que ya Cuentas de AWS tengas o quieras crear. Si bien a Cuenta de AWS actúa como contenedor de los AWS recursos que usted crea y proporciona un límite de seguridad para esos recursos, usted lo ID de creador de AWS representa como individuo. Puedes iniciar sesión con tu cuenta ID de creador de AWS para acceder a herramientas y servicios para desarrolladores, como Amazon Q y Amazon CodeCatalyst.
+ [Inicia ID de creador de AWS sesión con](https://docs.aws.amazon.com/signin/latest/userguide/sign-in-aws_builder_id.html) la *Guía del AWS Sign-In usuario*: aprende a crear y usar una ID de creador de AWS y descubre qué proporciona el Builder ID.
+ [CodeCatalystconceptos: ID de creador de AWS](https://docs.aws.amazon.com/codecatalyst/latest/userguide/concepts.html#sign-in-concept) en la *Guía del CodeCatalyst usuario de Amazon*: aprenda cómo se CodeCatalyst usa un ID de creador de AWS.

# Uso de credenciales de consola para autenticar AWS SDKs y herramientas
<a name="access-login"></a>

El uso de credenciales de consola es el método recomendado para proporcionar AWS credenciales al desarrollar una AWS aplicación en el entorno local o en otros entornos de servicios no AWS informáticos. Si estás desarrollando en un AWS recurso, como Amazon Elastic Compute Cloud (Amazon EC2) AWS CloudShell o, te recomendamos que obtengas las credenciales de ese servicio.

También puede autenticarse a través del Centro de Identidad de IAM. [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md) Esta opción es una forma habitual de que las organizaciones administren el acceso de sus empleados y requiere que Identity Center esté habilitado.

## ¿Cómo funciona?
<a name="access-login-how"></a>

El inicio de [sesión para el desarrollo AWS local con las credenciales de la consola](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html) le permite usar las credenciales de inicio de sesión de AWS Management Console existentes para el acceso programático a los AWS servicios. Tras un flujo de autenticación basado en un navegador, AWS genera credenciales temporales que funcionan en todas las herramientas de desarrollo locales, como la AWS CLI, Tools for PowerShell y. AWS SDKs Esta función simplifica el proceso de configuración y administración de las credenciales de AWS CLI, especialmente si prefiere la autenticación interactiva en lugar de administrar las claves de acceso a largo plazo.

Con este proceso, puede autenticarse con sus credenciales raíz creadas durante la configuración inicial de la cuenta, con los usuarios de IAM o con una identidad federada de su proveedor de identidad.

Si las utilizas SDKs para el desarrollo, los clientes del SDK utilizarán las credenciales temporales a través del. [AWS SDKs y Herramientas: proveedores de credenciales estandarizadas](standardized-credentials.md) También puede configurar el[Proveedor de credenciales de inicio de sesión](feature-login-credentials.md).

Tanto la AWS CLI como las herramientas admiten la autenticación mediante el comando login para PowerShell:
+ [Inicie sesión para el desarrollo AWS local con las credenciales de la consola](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)
+ [Inicie sesión con las credenciales de la consola](https://docs.aws.amazon.com/powershell/v5/userguide/creds-idc.html#login-con-creds) que aparecen en la guía Herramientas de AWS para PowerShell del usuario

# Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas
<a name="access-sso"></a>

 AWS IAM Identity Center se puede utilizar para proporcionar AWS credenciales al desarrollar una AWS aplicación en entornos de servicios no AWS informáticos. Si estás desarrollando en un AWS recurso, como Amazon Elastic Compute Cloud (Amazon EC2) AWS Cloud9 o, te recomendamos que obtengas las credenciales de ese servicio.

Utilice la autenticación del IAM Identity Center si ya utiliza el Identity Center para acceder a la AWS cuenta o si necesita gestionar el acceso de una organización. 

En este tutorial, establecerá el acceso al Centro de Identidad de IAM y lo configurará para su SDK o herramienta mediante el portal de AWS acceso y el. AWS CLI
+ El portal de AWS acceso es la ubicación web en la que se inicia sesión manualmente en el Centro de identidades de IAM. El formato de la URL es `d-xxxxxxxxxx.awsapps.com/start` o `your_subdomain.awsapps.com/start`. Al iniciar sesión en el portal de AWS acceso, puede ver Cuentas de AWS los roles que se han configurado para ese usuario. Este procedimiento utiliza el portal de AWS acceso para obtener los valores de configuración que necesita para el proceso de SDK/tool autenticación. 
+  AWS CLI Se utiliza para configurar el SDK o la herramienta para que utilice la autenticación del Centro de Identidad de IAM para las llamadas a la API realizadas mediante el código. Este proceso único actualiza el AWS `config` archivo compartido, que luego es utilizado por el SDK o la herramienta al ejecutar el código. 

## Requisitos previos
<a name="prereq-auth"></a>

Antes de comenzar este procedimiento, debe haber completado lo siguiente:
+ Si no tienes una Cuenta de AWS, [regístrate para obtener una Cuenta de AWS](https://portal.aws.amazon.com/billing/signup).
+ Si aún no ha activado el IAM Identity Center, [active el IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) según las instrucciones de la *Guía del usuario de AWS IAM Identity Center *

## Configuración del acceso mediante programación mediante el IAM Identity Center
<a name="idcGettingStarted"></a>

### Paso 1: establecer el acceso y seleccionar el conjunto de permisos adecuado
<a name="establishAccess"></a>

Elija uno de los siguientes métodos para acceder a sus AWS credenciales.

#### No he establecido el acceso a través de IAM Identity Center
<a name="idc-access"></a>

1. Agregue un usuario y permisos administrativos según el procedimiento de [configuración del acceso de los usuarios con el directorio predeterminado de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) de la *Guía del usuario de AWS IAM Identity Center * 

1. El conjunto de permisos de `AdministratorAccess` no debe utilizarse para un desarrollo normal. En su lugar, le recomendamos que utilice el conjunto de permisos predefinido `PowerUserAccess`, a menos que su empleador haya creado un conjunto de permisos personalizado para este fin.

   Siga el mismo procedimiento de [configuración del acceso de los usuarios con el directorio predeterminado de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html), pero esta vez:
   + En lugar de crear el grupo `Admin team`, cree un grupo `Dev team` y sustitúyalo por este a continuación en las instrucciones.
   + Puede usar el usuario existente, pero debe agregarlo al nuevo grupo `Dev team`.
   + En lugar de crear el conjunto de permisos `AdministratorAccess`, cree un conjunto de permisos `PowerUserAccess` y sustitúyalo por este a continuación en las instrucciones.

   Cuando haya terminado, tendrá lo siguiente:
   + Un grupo `Dev team`.
   + Un conjunto de permisos `PowerUserAccess` adjunto al grupo `Dev team`.
   + Su usuario agregado al grupo `Dev team`.

1. Salga del portal e inicie sesión de nuevo para ver sus opciones Cuentas de AWS y para `Administrator` o`PowerUserAccess`. Seleccione `PowerUserAccess` cuando trabaje con el SDK/las herramientas. 

#### Ya tengo acceso a AWS través de un proveedor de identidad federado administrado por mi empresa (como Microsoft Entra u Okta)
<a name="federated-access"></a>

Inicia sesión a AWS través del portal de tu proveedor de identidad. Si el administrador de la nube te ha concedido permisos `PowerUserAccess` (de desarrollador), verás aquellos a los Cuentas de AWS que tienes acceso y tu conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos. 

Las implementaciones personalizadas pueden dar lugar a experiencias diferentes, como distintos nombres de conjuntos de permisos. Si no está seguro de qué configuración de permisos debe utilizar, contacte con su equipo de TI para obtener ayuda. 

#### Ya tengo acceso a él a AWS través del portal de AWS acceso gestionado por mi empresa
<a name="accessportal-access"></a>

Inicie sesión a AWS través del portal de AWS acceso. Si su administrador de la nube le ha concedido permisos `PowerUserAccess` (desarrollador), verá las Cuentas de AWS a las que tiene acceso y su conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos. 

#### Ya tengo acceso a AWS través de un proveedor de identidad personalizado federado administrado por mi empleador
<a name="customfederated-access"></a>

Contacte con su equipo de TI para obtener ayuda.

### Paso 2: Configurar SDKs y usar las herramientas para usar el IAM Identity Center
<a name="configureAccess"></a>

1.  En su máquina de desarrollo, instale la versión más reciente de la AWS CLI. 

   1. Consulte [Instalar o actualizar la versión más reciente de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) en la *Guía del usuario de AWS Command Line Interface *. 

   1.  (Opcional) Para comprobar que funciona, abra una línea de comandos y ejecute el `aws --version` comando. AWS CLI 

1. Inicie sesión en el portal de AWS acceso. Es posible que su empresa le facilite esta URL o que la reciba en un correo electrónico tras el **paso 1: establecer el acceso**. Si no es así, busque la **URL de su portal de AWS acceso** en el **panel de control** de [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/). 

   1. En el portal de AWS acceso, en la pestaña **Cuentas**, seleccione la cuenta individual que desee administrar. Aparece los roles para el usuario. Elija **Claves de acceso** para obtener credenciales de acceso a la línea de comandos o mediante programación para el conjunto de permisos apropiado. Utilice el conjunto de permisos `PowerUserAccess` predefinido o el conjunto de permisos que usted o su empleador hayan creado para aplicar permisos de privilegio mínimo para el desarrollo. 

   1. En el cuadro de diálogo **Obtener credenciales**, elija **MacOS y Linux** o **Windows**, en función del sistema operativo.

   1. Elija el método de **Credenciales del IAM Identity Center** para obtener los valores `Issuer URL` y `SSO Region` que necesita para el próximo paso. Nota: Se puede usar `SSO Start URL` indistintamente con `Issuer URL`.

1. En la AWS CLI línea de comandos, ejecute el `aws configure sso` comando. Cuando se le solicite, introduzca los valores de configuración que recopiló en el paso anterior. Para obtener más información sobre este AWS CLI comando, consulte [Configurar su perfil con el `aws configure sso` asistente](https://docs.aws.amazon.com/cli/latest/userguide/sso-configure-profile-token.html#sso-configure-profile-token-auto-sso). 

   1. En la petición `SSO Start URL`, introduzca el valor que obtuvo para `Issuer URL`. 

   1.  Para el **nombre del perfil CLI**, le recomendamos que lo introduzca *default* al empezar. Para obtener información sobre cómo configurar perfiles no predeterminados (con nombre) y su variable de entorno asociada, consulte [Profiles](file-format.md#file-format-profile). 

1. (Opcional) En la AWS CLI línea de comandos, confirme la identidad de la sesión activa ejecutando el `aws sts get-caller-identity` comando. La respuesta debería mostrar el conjunto de permisos del IAM Identity Center que configuró. 

1. Si utiliza un AWS SDK, cree una aplicación para su SDK en su entorno de desarrollo.

   1. En el caso de algunos SDKs, es `SSOOIDC` necesario añadir paquetes adicionales a la aplicación antes de poder utilizar la autenticación del IAM Identity Center. `SSO` Para obtener más detalles, consulte su SDK específica.

   1.  Si anteriormente configuró el acceso a AWS, revise el AWS `credentials` archivo compartido para ver si existe alguno[AWS claves de acceso](feature-static-credentials.md). Debe eliminar todas las credenciales estáticas antes de que el SDK o la herramienta utilicen las credenciales del IAM Identity Center debido a la precedencia [Comprender la cadena de proveedores de credenciales](standardized-credentials.md#credentialProviderChain). 

 Para obtener información detallada sobre cómo las herramientas SDKs y herramientas utilizan y actualizan las credenciales con esta configuración, consulte[Cómo se resuelve la autenticación de IAM Identity Center AWS SDKs y sus herramientas](understanding-sso.md). 

Para configurar los ajustes del proveedor de IAM Identity Center directamente en el archivo `config` compartido, consulte [Proveedor de credenciales del IAM Identity Center](feature-sso-credentials.md) en esta guía.

## Actualización de las sesiones de acceso al portal
<a name="refreshSession"></a>

El acceso eventualmente caducará y los SDK o las herramientas detectarán un error de autenticación. El momento en que se produce este vencimiento depende de la duración de las sesiones configuradas. Para volver a actualizar la sesión del portal de acceso cuando sea necesario, utilice el comando AWS CLI para ejecutar el `aws sso login` comando. 

Puede ampliar tanto la duración de la sesión del portal de acceso al IAM Identity Center como la duración de la sesión del conjunto de permisos. Esto prolonga el tiempo que puede ejecutar el código antes de tener que volver a iniciar sesión manualmente con la AWS CLI. Para obtener más información, consulte los siguientes temas en la *Guía del usuario de AWS IAM Identity Center *:
+ **Duración de la sesión del IAM Identity Center**: [configurar la duración de las sesiones del portal de acceso de AWS de sus usuarios](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) 
+ **Duración de la sesión establecida por permisos**: [establecer la duración de la sesión](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)

# Cómo se resuelve la autenticación de IAM Identity Center AWS SDKs y sus herramientas
<a name="understanding-sso"></a>



## Términos relevantes del IAM Identity Center
<a name="ssoterms"></a>

Los siguientes términos le ayudan a entender el proceso y la configuración subyacentes en AWS IAM Identity Center. La documentación del AWS SDK APIs utiliza nombres diferentes a los de IAM Identity Center para algunos de estos conceptos de autenticación. Resulta útil conocer ambos nombres. 

En la siguiente tabla, se muestra cómo se relacionan entre sí los nombres alternativos.


| Nombre del IAM Identity Center | Nombre de la API del SDK | Description (Descripción) | 
| --- | --- | --- | 
| Centro de identidades  | sso  | Aunque se haya cambiado el nombre de AWS Single Sign-On, los espacios de nombres de las sso API mantendrán su nombre original por motivos de compatibilidad con versiones anteriores. Para más información, consulte [IAM Identity Center renam](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) en la Guía del usuario de AWS IAM Identity Center . | 
| Consola del IAM Identity CenterConsola administrativa |   | La consola que se utiliza para configurar el inicio de sesión único.  | 
| AWS URL del portal de acceso  |  | Una URL exclusiva de su cuenta del IAM Identity Center, como https://xxx.awsapps.com/start. Inicie sesión en este portal con sus credenciales de inicio de sesión del IAM Identity Center.  | 
| Sesión del Portal de Acceso del IAM Identity Center  | Sesión de autenticación  | Proporciona un token de acceso al portador al intermediario.  | 
| Sesión del conjunto de permisos  |   | La sesión de IAM que el SDK usa internamente para realizar las Servicio de AWS llamadas. En las discusiones informales, es posible que vea que esto se denomina incorrectamente “sesión de roles”. | 
| Credenciales de configuración de permisos  | AWS credencialescredenciales de sigv4  | Las credenciales que el SDK utiliza realmente para la mayoría de las Servicio de AWS llamadas (específicamente, todas las Servicio de AWS llamadas sigv4). En las discusiones informales, es posible que veas que esto se denomina incorrectamente “credenciales de roles”. | 
| Proveedor de credenciales del IAM Identity Center  | Proveedor de credenciales SSO  | Cómo se obtienen las credenciales, como la clase o el módulo que proporciona la funcionalidad.  | 

## Comprenda la resolución de credenciales del SDK para Servicios de AWS
<a name="idccredres"></a>

La API del IAM Identity Center intercambia credenciales de token de portador por credenciales sigv4. La mayoría Servicios de AWS son sigv4 APIs, con algunas excepciones como Amazon CodeWhisperer y. Amazon CodeCatalyst A continuación, se describe el proceso de resolución de credenciales para admitir la mayoría de las Servicio de AWS llamadas mediante el código de la aplicación. AWS IAM Identity Center

### Inicie una sesión en el portal de AWS acceso
<a name="idccredres1"></a>
+ Inicie el proceso iniciando sesión con sus credenciales.
  + Utilice el `aws sso login` comando de AWS Command Line Interface (AWS CLI). Esto inicia una nueva sesión en el IAM Identity Center si aún no tiene una sesión activa.
+ Al iniciar una nueva sesión, recibirá un token de actualización y un token de acceso del IAM Identity Center. AWS CLI También actualiza un archivo JSON de caché de SSO con un nuevo token de acceso y un token de actualización y lo pone a disposición para su uso. SDKs
+ Si ya tienes una sesión activa, el AWS CLI comando reutiliza la sesión existente y caducará cuando caduque la sesión existente. Para obtener información sobre cómo establecer la duración de una sesión del IAM Identity Center, consulte [Configurar la duración de las sesiones del portal de AWS acceso de los usuarios](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) en la Guía del *AWS IAM Identity Center usuario*. 
  + La duración máxima de la sesión se ha ampliado a 90 días para reducir la necesidad de iniciar sesión con frecuencia.

### Cómo obtiene el SDK las credenciales para las llamadas Servicio de AWS
<a name="idccredres2"></a>

SDKs proporcionan acceso Servicios de AWS cuando se crea una instancia de un objeto de cliente por servicio. Cuando el perfil seleccionado del AWS `config` archivo compartido está configurado para la resolución de credenciales del Centro de Identidad de IAM, el Centro de Identidad de IAM se utiliza para resolver las credenciales de su aplicación. 
+ El [proceso de resolución de credenciales](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) se completa durante el tiempo de ejecución cuando se crea un cliente.

Para recuperar las credenciales de sigv4 APIs mediante el inicio de sesión único del IAM Identity Center, el SDK utiliza el token de acceso al IAM Identity Center para obtener una sesión de IAM. Esta sesión de IAM se denomina sesión de conjunto de permisos y proporciona AWS acceso al SDK al asumir una función de IAM. 
+  La duración de la sesión del conjunto de permisos se establece independientemente de la duración de la sesión del IAM Identity Center.
  + Para obtener información sobre cómo configurar la duración de la sesión del conjunto de permisos, consulte [Definir la duración de la sesión](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) en la *Guía del usuario de AWS IAM Identity Center *.
+  Tenga en cuenta que las credenciales del conjunto de permisos también se denominan credenciales y *AWS credenciales* *sigv4* en la mayoría de la documentación de la API AWS del SDK.

Las credenciales del conjunto de permisos se devuelven de una llamada a la API [getRoleCredentials](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html)del Centro de Identidad de IAM al SDK. El objeto de cliente del SDK utiliza esa supuesta función de IAM para realizar llamadas al Servicio de AWS, por ejemplo, pedir a Amazon S3 que incluya los buckets de su cuenta. El objeto de cliente puede seguir funcionando con esas credenciales del conjunto de permisos hasta que caduque la sesión del conjunto de permisos. 

### Caducidad y actualización de la sesión
<a name="idccredres3"></a>

Al utilizar el [Configuración del proveedor de token de SSO](feature-sso-credentials.md#sso-token-config), el token de acceso por hora obtenido del IAM Identity Center se actualiza automáticamente mediante el token de actualización.
+ Si el token de acceso ha caducado cuando el SDK intenta usarlo, el SDK utiliza el token de actualización para intentar obtener un nuevo token de acceso. El IAM Identity Center compara el token de actualización con la duración de la sesión del portal de acceso al IAM Identity Center. Si el token de actualización no ha caducado, el IAM Identity Center responde con otro token de acceso.
+ Este token de acceso se puede utilizar para actualizar la sesión del conjunto de permisos de los clientes existentes o para resolver las credenciales de los nuevos clientes. 

Sin embargo, si la sesión del portal de acceso del IAM Identity Center ha caducado, no se concede ningún token de acceso nuevo. Por lo tanto, la duración del conjunto de permisos no se puede renovar. Caducará (y se perderá el acceso) cuando se agote el tiempo de espera de la sesión del conjunto de permisos almacenado en caché para los clientes existentes. 

Cualquier código que cree un nuevo cliente no se autenticará en cuanto caduque la sesión del IAM Identity Center. Esto se debe a que las credenciales del conjunto de permisos no se almacenan en caché. Su código no podrá crear un nuevo cliente ni completar el proceso de resolución de credenciales hasta que tenga un token de acceso válido. 

En resumen, cuando el SDK necesita nuevas credenciales de conjunto de permisos, primero compruebe si hay credenciales válidas y existentes y si las utiliza. Esto se aplica tanto si las credenciales son para un cliente nuevo como para un cliente existente con credenciales caducadas. Si no se encuentran las credenciales o no son válidas, el SDK llama a la API del IAM Identity Center para obtener nuevas credenciales. Para llamar a la API, necesita el token de acceso. Si el token de acceso ha caducado, el SDK utiliza el token de actualización para intentar obtener un nuevo token de acceso del servicio del IAM Identity Center. Este token se concede si la sesión del portal de acceso al IAM Identity Center no ha caducado. 

# Uso de funciones de IAM en cualquier lugar para AWS SDKs autenticar y utilizar herramientas
<a name="access-rolesanywhere"></a>

Puede utilizar IAM Roles Anywhere para obtener credenciales de seguridad temporales en IAM para cargas de trabajo como servidores, contenedores y aplicaciones que se ejecutan fuera de ellas. AWS Para utilizar IAM Roles Anywhere, sus cargas de trabajo deben utilizar certificados X.509. El administrador de la nube debe proporcionar el certificado y la clave privada necesarios para configurar IAM Roles Anywhere como su proveedor de credenciales.

## Paso 1: Configurar IAM Roles Anywhere
<a name="config-ira"></a>

IAM Roles Anywhere proporciona una forma de obtener credenciales temporales para una carga de trabajo o un proceso que se ejecuta fuera de. AWS Se establece un anclaje de confianza con la autoridad de certificación para obtener credenciales temporales para el rol de IAM asociado. El rol establece los permisos que tendrá su carga de trabajo cuando su código se autentique con IAM Roles Anywhere.

Para ver los pasos necesarios para configurar el ancla de confianza, el rol de IAM y el perfil de IAM Roles Anywhere, consulte [Creación de un ancla de confianza y un perfil en AWS Identity and Access Management Roles Anywhere en](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html) la Guía del usuario de *IAM Roles* Anywhere.

**nota**  
Un *perfil* en la *IAM Roles Anywhere User Guide* hace referencia a un concepto exclusivo del servicio de IAM Roles Anywhere. No está relacionado con los perfiles del archivo compartido. AWS `config` 

## Paso 2: Utilice IAM Roles Anywhere
<a name="use-ira"></a>

Para obtener credenciales de seguridad temporales de IAM Roles Anywhere, utilice la herramienta ayudante de credenciales de IAM Roles Anywhere. La herramienta de credenciales implementa el proceso de firma de IAM Roles Anywhere.

Para obtener instrucciones sobre cómo descargar la herramienta auxiliar de credenciales, consulte [Obtener credenciales de seguridad temporales de AWS Identity and Access Management Roles Anywhere en la guía del](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html) usuario de *IAM Roles Anywhere*.

Para utilizar las credenciales de seguridad temporales de IAM Roles Anywhere AWS SDKs y AWS CLI, puede `credential_process` configurar los ajustes del archivo compartido. AWS `config` SDKs Y son AWS CLI compatibles con un proveedor de credenciales de proceso que se utiliza `credential_process` para autenticarse. A continuación se muestra la estructura general para establecer `credential_process`.

```
credential_process = [path to helper tool] [command] [--parameter1 value] [--parameter2 value] [...]  
```

El comando `credential-process` de la herramienta auxiliar devuelve las credenciales temporales en un formato JSON estándar que es compatible con la configuración `credential_process`. Tenga en cuenta que el nombre del comando contiene un guion, pero el nombre de la configuración contiene un guion bajo. El comando requiere los parámetros siguientes:
+ `private-key`: la ruta a la clave privada que firmó la solicitud. 
+ ` certificate`: la ruta al certificado. 
+ `role-arn`: el ARN del rol para el que se van a obtener las credenciales temporales. 
+ `profile-arn`: el ARN del perfil que proporciona una asignación para el rol especificado. 
+ `trust-anchor-arn`: el ARN del anclaje de confianza usado para autenticar. 

Su administrador de la nube debe proporcionarle el certificado y la clave privada. Los tres valores del ARN se pueden copiar de la Consola de administración de AWS. El siguiente ejemplo muestra un archivo compartido `config` que configura la recuperación de credenciales temporales de la herramienta auxiliar. 

```
[profile dev]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```

 Para ver los parámetros opcionales y los detalles adicionales de las herramientas de ayuda, consulte [IAM Roles Anywhere](https://github.com/aws/rolesanywhere-credential-helper#readme) Credential Helper en. GitHub 

Para obtener más información sobre el ajuste de configuración del SDK en sí y el proveedor de credenciales del proceso, consulte [Proveedor de credenciales de proceso](feature-process-credentials.md) en esta guía.

# Asumir un rol con AWS credenciales para autenticarse AWS SDKs y herramientas
<a name="access-assume-role"></a>

Para asumir un rol, se utiliza un conjunto de credenciales de seguridad temporales para acceder a los recursos de AWS a los que de otro modo usted no tendría acceso. Las credenciales temporales incluyen un ID de clave de acceso, una clave de acceso secreta y un token de seguridad. Para obtener más información sobre las solicitudes de la API de AWS Security Token Service (AWS STS), consulte [Acciones](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) en la *Referencia de la API de AWS Security Token Service *. 

Para configurar el SDK o la herramienta para que asuma un rol, primero debe crear o identificar el *rol* específico que desee asumir. Los roles de IAM se identifican de forma exclusiva mediante un nombre de recurso de Amazon ([ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)) del rol. Los roles establecen relaciones de confianza con otra entidad. La entidad de confianza que usa el rol puede ser una Servicio de AWS u otra Cuenta de AWS. Para más información acerca de los roles de IAM, consulte [Uso de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) en la *Guía del usuario de IAM*. 

Una vez identificado el rol de IAM, si esa función confía en usted, puede configurar el SDK o la herramienta para que utilice los permisos que otorga la función. 

**nota**  
Se AWS recomienda utilizar puntos de enlace regionales siempre que sea posible y configurar los suyos[Región de AWS](feature-region.md). 

## Asumir un rol de IAM
<a name="credOrSourceAssumeRole"></a>

Al asumir un rol, AWS STS devuelve un conjunto de credenciales de seguridad temporales. Estas credenciales provienen de otro perfil o de la instancia o contenedor en el que se ejecuta el código. Por lo general, este tipo de asumir un rol se utiliza cuando se tienen credenciales de AWS para una cuenta, pero la aplicación necesita acceder a los recursos de otra cuenta. 

### Paso 1: Configurar un rol de IAM
<a name="credOrSourceAssumeRole_step1"></a>

Para configurar el SDK o la herramienta para que asuma un rol, primero debe crear o identificar el rol específico que desee asumir. Los roles de IAM se identifican de forma exclusiva mediante un [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) de rol. Los roles establecen relaciones de confianza con otra entidad, normalmente dentro de su cuenta o para el acceso entre cuentas. Para obtener más información, consulte [Creación de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) en la *Guía del usuario de IAM*.

### Paso 2: configurar el SDK o la herramienta
<a name="credOrSourceAssumeRole_step2"></a>

Configure el SDK o la herramienta para obtener las credenciales de `credential_source` o `source_profile`. 

Se utiliza `credential_source` para obtener credenciales de un contenedor de Amazon ECS, de una instancia de Amazon EC2 o de variables de entorno. 

Se utiliza `source_profile` para obtener credenciales de otro perfil. `source_profile` también admite el encadenamiento de roles, que consiste en jerarquías de perfiles en las que se utiliza un rol asumido para asumir otro rol.

Cuando lo especificas en un perfil, el SDK o la herramienta realiza automáticamente la llamada a la AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API correspondiente por ti. Para recuperar y usar credenciales temporales asumiendo un rol, especifique los siguientes valores de configuración en el AWS `config` archivo compartido. Para obtener más información sobre esta configuración, consulte la sección [Asumir la configuración del proveedor de credenciales de rol](feature-assume-role-credentials.md#feature-assume-role-credentials-settings). 
+ `role_arn`: del rol de IAM que creó en el paso 1
+ Configure una de las siguientes opciones: `credential_source` o `source_profile`
+ (Opcional) `duration_seconds`
+ (Opcional) `external_id`
+ (Opcional) `mfa_serial`
+ (Opcional) `role_session_name` 

Los siguientes ejemplos muestran la configuración de ambas opciones de asumir roles en un archivo `config` compartido:

```
role_arn = arn:aws:iam::123456789012:role/my-role-name
credential_source = Ec2InstanceMetadata
```

```
[profile-with-user-that-can-assume-role]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[profile dev]
region = us-east-1
output = json
role_arn = arn:aws:iam::123456789012:role/my-role-name
source_profile = profile-with-user-that-can-assume-role
role_session_name = my_session
```

Para obtener más información sobre la configuración del proveedor de credenciales de rol, consulte [Asumir el rol de proveedor de credenciales](feature-assume-role-credentials.md) en esta guía.

# Asumir un rol con identidad web u OpenID Connect para autenticar y herramientas AWS SDKs
<a name="access-assume-role-web"></a>

Para asumir un rol, se utiliza un conjunto de credenciales de seguridad temporales para acceder a los recursos de AWS a los que de otro modo usted no tendría acceso. Las credenciales temporales incluyen un ID de clave de acceso, una clave de acceso secreta y un token de seguridad. Para obtener más información sobre las solicitudes de la API de AWS Security Token Service (AWS STS), consulte [Acciones](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) en la *Referencia de la API de AWS Security Token Service *. 

Para configurar el SDK o la herramienta para que asuma un rol, primero debe crear o identificar el *rol* específico que desee asumir. Los roles de IAM se identifican de forma exclusiva mediante un nombre de recurso de Amazon ([ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)) del rol. Los roles establecen relaciones de confianza con otra entidad. La entidad de confianza que usa el rol puede ser un proveedor de identidad web o una federación OpenID Connect(OIDC) o SAML. Para obtener más información sobre los roles de IAM, consulte [Métodos para asumir un rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*. 

Una vez configurada la función de IAM en tu SDK, si esa función está configurada para confiar en tu proveedor de identidades, puedes configurar aún más tu SDK para que asuma esa función a fin de obtener AWS credenciales temporales.

**nota**  
Se recomienda utilizar puntos de enlace regionales siempre que sea posible y configurar los suyos. AWS [Región de AWS](feature-region.md) 

## Cómo federar con identidad web u OpenID Connect
<a name="webidentity"></a>

Puedes usar los JSON Web Tokens (JWTs) de proveedores de identidad públicos, como Login With Amazon, Facebook o Google, para obtener AWS credenciales temporales`AssumeRoleWithWebIdentity`. Según cómo se usen, JWTs pueden denominarse tokens de ID o tokens de acceso. También puede utilizar proveedores de identidad JWTs emitidos por proveedores de identidad (IdPs) que sean compatibles con el protocolo de detección de la OIDC, como EntraId o. PingFederate

Si utiliza Amazon Elastic Kubernetes Service, esta característica permite especificar diferentes roles de IAM para cada uno de sus cuentas de servicio en un clúster de Amazon EKS. Esta función de Kubernetes se distribuye JWTs a tus pods, que luego este proveedor de credenciales los utiliza para obtener credenciales temporales. AWS Para obtener más información sobre esta configuración de Amazon EKS, consulte [Roles de IAM para cuentas de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) en la **Guía del usuario de Amazon EKS**. Sin embargo, para simplificar el proceso, le recomendamos que utilice [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) si su [SDK es compatible](feature-container-credentials.md#feature-container-credentials-sdk-compat).

### Paso 1: Configurar un proveedor de identidades y un rol de IAM
<a name="webidentity_step1"></a>

Para configurar la federación con un IdP externo, utilice un proveedor de identidades de IAM para informar AWS sobre el IdP externo y su configuración. Esto establece la *confianza* entre su IdP Cuenta de AWS y el externo. Antes de configurar el SDK para usar el JSON Web Token (JWT) para la autenticación, primero debe configurar el proveedor de identidad (IdP) y el rol de IAM que se usa para acceder a él. Para configurarlos, consulte [Creación de un rol para identidades web o de OpenID Connect Federation (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html) en la *Guía del usuario de IAM*.

### Paso 2: configurar el SDK o la herramienta
<a name="webidentity_step2"></a>

Configure el SDK o la herramienta para usar un token web JSON (JWT) AWS STS para la autenticación. 

Cuando lo especificas en un perfil, el SDK o la herramienta realiza automáticamente la llamada a la AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API correspondiente. Para recuperar y usar credenciales temporales mediante la federación de identidades web, especifique los siguientes valores de configuración en el AWS `config` archivo compartido. Para obtener más información sobre esta configuración, consulte la sección [Asumir la configuración del proveedor de credenciales de rol](feature-assume-role-credentials.md#feature-assume-role-credentials-settings). 
+ `role_arn`: del rol de IAM que creó en el paso 1
+ `web_identity_token_file`: desde el IdP externo
+ (Opcional) `duration_seconds`
+ (Opcional) `role_session_name` 

El siguiente es un ejemplo de una configuración de archivos compartidos `config` para asumir un rol con identidad web:

```
[profile web-identity]
role_arn=arn:aws:iam::123456789012:role/my-role-name
web_identity_token_file=/path/to/a/token
```

**nota**  
Para aplicaciones móviles, le recomendamos que utilice Amazon Cognito. Amazon Cognito actúa como agente de identidades y realiza gran parte del trabajo de federación por usted. Sin embargo, el proveedor de identidades de Amazon Cognito no está incluido en las bibliotecas principales de herramientas SDKs y herramientas como otros proveedores de identidades. Para acceder a la API de Amazon Cognito, incluya el cliente del servicio Amazon Cognito en la compilación o las bibliotecas de su SDK o herramienta. Para su uso con AWS SDKs, consulte los [ejemplos de código](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html) en la Guía *para desarrolladores de Amazon Cognito*.

Para obtener más información sobre la configuración del proveedor de credenciales de rol, consulte [Asumir el rol de proveedor de credenciales](feature-assume-role-credentials.md) en esta guía.

# Uso de claves de AWS acceso para autenticar AWS SDKs y herramientas
<a name="access-users"></a>

El uso de claves de AWS acceso es una opción de autenticación cuando se utilizan AWS SDKs herramientas.

## Use credenciales a corto plazo
<a name="credentials-temporary"></a>

 Recomendamos configurar su SDK o herramienta para utilizar [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md) para usar opciones de duración de sesión ampliada. 

Sin embargo, para configurar directamente las credenciales temporales del SDK o de la herramienta, consulte [Uso de credenciales a corto plazo para autenticar AWS SDKs y herramientasCredenciales a corto plazo](access-temp-idc.md).

## Use credenciales a largo plazo
<a name="credentials-long-term"></a>

**aviso**  
Para evitar riesgos de seguridad, no utilice a los usuarios de IAM para la autenticación cuando desarrolle software especialmente diseñado o trabaje con datos reales. En cambio, utilice la federación con un proveedor de identidades como [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

### Gestione el acceso en todas partes Cuentas de AWS
<a name="manage-access-accounts"></a>

Como práctica recomendada de seguridad, te recomendamos que utilices AWS Organizations IAM Identity Center para gestionar el acceso en todas tus Cuentas de AWS instalaciones. Para más información, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

Puede crear usuarios en el Centro de identidades de IAM, usar Microsoft Active Directory, usar un proveedor de identidades (IdP) SAML 2.0 o federar individualmente su IdP a. Cuentas de AWS Con uno de estos enfoques, puede ofrecer a sus usuarios una experiencia de inicio de sesión único. También puede aplicar la autenticación multifactor (MFA) y utilizar credenciales Cuenta de AWS temporales para el acceso. Esto es diferente al de un usuario de IAM, que es una credencial de larga duración que se puede compartir y que podría aumentar el riesgo de seguridad de sus recursos de AWS .

### Cree usuarios de IAM únicamente para entornos aislados
<a name="create-iam-user-sandbox"></a>

Si es la primera vez que lo usa AWS, puede crear un usuario de IAM de prueba y luego usarlo para ejecutar tutoriales y explorar lo que AWS ofrece. Está bien usar este tipo de credenciales cuando estés aprendiendo, pero te recomendamos que evites usarlas fuera de un entorno aislado.

Para los siguientes casos de uso, podría ser conveniente empezar con los usuarios de IAM en: AWS
+ Cómo empezar a utilizar el AWS SDK o la herramienta y explorarlos Servicios de AWS en un entorno aislado.
+ Ejecute scripts, trabajos y otros procesos automatizados programados que no admitan un proceso de inicio de sesión asistido por una persona como parte de su aprendizaje.

Si utilizas usuarios de IAM fuera de estos casos de uso, cámbiate al Centro de Identidad de IAM o federa tu proveedor de identidades Cuentas de AWS lo antes posible. Para obtener más información, consulte [Federación de identidades en AWS](https://aws.amazon.com/identity/federation/).

### Asegurar claves de acceso para un usuario de IAM
<a name="secure-iam-access-keys"></a>

Debe rotar con regularidad las claves de acceso de usuario de IAM. Siga las instrucciones en [Rotating access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) en la *Guía de usuario de IAM*. Si cree que ha compartido accidentalmente sus claves de acceso de usuario de IAM, rote las claves de acceso.

Las claves de acceso de los usuarios de IAM deben almacenarse en el AWS `credentials` archivo compartido de la máquina local. No guarde las claves de acceso de los usuarios de IAM en su código. No incluya archivos de configuración que contengan sus claves de acceso de usuario de IAM en ningún software de administración de código fuente. Las herramientas externas, como el proyecto de código abierto [git-secrets](https://github.com/awslabs/git-secrets), pueden ayudarte a no enviar información confidencial a un repositorio de Git de forma inadvertida. Para obtener más información acerca de los usuarios de IAM, consulte [Identidades de IAM (usuarios, grupos y funciones)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la *Guía de usuario de IAM*.

Para configurar un usuario de IAM para empezar, consulte [Uso de credenciales a largo plazo para autenticar AWS SDKs y herramientas](access-iam-users.md).

# Uso de credenciales a corto plazo para autenticar AWS SDKs y herramientas
<a name="access-temp-idc"></a>

 Recomendamos configurar el AWS SDK o la herramienta para utilizarlos [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md) con opciones de duración de sesión prolongada. Sin embargo, puede copiar y usar las credenciales temporales que están disponibles en el portal de AWS acceso. Las credenciales nuevas deberán copiarse cuando caduquen. Puede utilizar las credenciales temporales en un perfil o como valores para las propiedades del sistema y las variables de entorno.

Práctica recomendada: en lugar de administrar manualmente las claves de acceso y un token del archivo de credenciales, recomendamos que la aplicación utilice credenciales temporales enviadas desde: 
+ Un servicio de AWS cómputo, como ejecutar la aplicación en Amazon Elastic Compute Cloud o en AWS Lambda.
+ Otra opción de la cadena de proveedores de credenciales, como [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md).
+ O utilícela [Proveedor de credenciales de proceso](feature-process-credentials.md) para recuperar credenciales temporales.

**Configure un archivo de credenciales con las credenciales de corta duración recuperadas del portal de AWS acceso**

1. [Creación de archivos de credenciales compartidas](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html).

1. En el archivo de credenciales, pegue el siguiente texto de marcador de posición hasta que pegue las credenciales temporales que funcionen.

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. Guarde el archivo. El archivo `~/.aws/credentials` debería existir ahora en su sistema de desarrollo local. Este archivo contiene el [perfil [predeterminado]](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile) que el SDK o la herramienta utilizan si no se especifica un perfil con nombre específico. 

1. [Inicie sesión en el portal de AWS acceso](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html).

1. Siga estas [instrucciones para actualizar manualmente las credenciales de las credenciales](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) para copiar las credenciales del rol de IAM del portal de AWS acceso.

   1. Para el paso 4 de las instrucciones vinculadas, elija el nombre del rol de IAM que le concede acceso para sus necesidades de desarrollo. **Este rol suele tener un nombre similar **PowerUserAccess**al de Desarrollador.**

   1. Para el paso 7 de las instrucciones vinculadas, seleccione la opción **Agregar manualmente un perfil al su archivo de credenciales de AWS ** y copie el contenido.

1. Pegue las credenciales copiadas en el archivo local `credentials`. No se necesita el nombre del perfil generado si está utilizando el perfil `default`. Su archivo debería parecerse a lo siguiente.

   ```
   [default]
   aws_access_key_id=AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. Guarde el archivo `credentials`.

Cuando el SDK cree un cliente de servicio, accederá a estas credenciales temporales y las utilizará para cada solicitud. La configuración del rol de IAM elegido en el paso 5a determina el [tiempo de validez de las credenciales temporales](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html). La duración máxima es de doce horas.

Cuando las credenciales temporales caduquen, repita los pasos del 4 al 7.

# Uso de credenciales a largo plazo para autenticar AWS SDKs y herramientas
<a name="access-iam-users"></a>

**aviso**  
Para evitar riesgos de seguridad, no utilice a los usuarios de IAM para la autenticación cuando desarrolle software especialmente diseñado o trabaje con datos reales. En cambio, utilice la federación con un proveedor de identidades como [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

Si utilizas un usuario de IAM para ejecutar tu código, el SDK o la herramienta de tu entorno de desarrollo se autentican mediante credenciales de usuario de IAM de larga duración en el archivo compartido. AWS `credentials` Revise [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) y pase al IAM Identity Center o a otras credenciales temporales lo antes posible.

## Advertencias y directrices importantes para las credenciales
<a name="iam-warnings-and-guidelines"></a>

**Advertencias para las credenciales**
+ ***NO*** use las credenciales raíz de la cuenta para obtener acceso a los recursos de AWS . Estas credenciales proporcionan acceso ilimitado a la cuenta y son difíciles de revocar.
+ ***NO*** incluya claves de acceso literales ni información sobre credenciales en sus archivos de aplicación. Si lo hace, puede crear un riesgo de exposición accidental de sus credenciales si, por ejemplo, carga el proyecto en un repositorio público.
+ ***NO*** incluya archivos que contengan credenciales en el área de su proyecto.
+ Tenga en cuenta que todas las credenciales almacenadas en el AWS `credentials` archivo compartido se almacenan en texto sin formato.

**Guía adicional para administrar las credenciales de forma segura**

Para obtener información general sobre cómo administrar las AWS credenciales de forma segura, consulte [Prácticas recomendadas para administrar las claves de AWS acceso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) en el [Referencia general de AWS](https://docs.aws.amazon.com/general/latest/gr/). Además de esa conversación, tenga en cuenta lo siguiente:
+ Use [roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) para tareas de Amazon Elastic Container Service (Amazon ECS).
+ Use [roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) para aplicaciones que se ejecutan en instancias de Amazon EC2.

## Requisitos previos: crear una cuenta AWS
<a name="signup"></a>

Para utilizar un usuario de IAM para acceder a AWS los servicios, necesita una AWS cuenta y AWS unas credenciales.

1. **Cree una cuenta.**

   Para crear una AWS cuenta, consulte [Primeros pasos: ¿es la primera vez AWS](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html) que lo usa? en la *Guía AWS Account Management de referencia*.

1. **Crear un usuario administrativo.**

   Evite usar la cuenta de usuario raíz (la cuenta inicial que cree) para acceder a la consola y los servicios de administración. En su lugar, cree una cuenta de usuario administrativo, como se explica en [Crear un usuario administrativo](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) en la *Guía del usuario de IAM*.

   Después de crear la cuenta de usuario administrativo y registrar los detalles de inicio de sesión, **asegúrese de desconectar la cuenta de usuario raíz** y vuelva a iniciar sesión con la cuenta administrativa.

Ninguna de estas cuentas es adecuada para el desarrollo AWS o la ejecución de aplicaciones AWS. Como buena práctica, debe crear usuarios, conjuntos de permisos o roles de servicio que sean adecuados para estas tareas. Para obtener más información, consulte [Aplicar permisos de privilegio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) en la *Guía del usuario de IAM*.

## Paso 1: Crear el usuario de IAM
<a name="step1authIamUser"></a>
+ Siga el procedimiento [Creación de usuarios de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) de la *Guía del usuario de IAM para crear su usuario de IAM*. Al crear su usuario de IAM:
  + Le recomendamos que seleccione **Proporcionar acceso de usuario a Consola de administración de AWS**. Esto le permite ver Servicios de AWS relacionados con el código que está ejecutando en un entorno visual, como comprobar los registros de diagnóstico de AWS CloudTrail o cargar archivos en Amazon Simple Storage Service, lo que resulta útil a la hora de depurar el código.
  + Para **Establecer permisos** - **Opciones de permiso**, elija **Adjuntar políticas directamente** para indicar cómo desea asignar permisos a este usuario. 
    + La mayoría de los tutoriales del SDK “Introducción” utilizan el servicio Amazon S3 como ejemplo. Para proporcionar a su aplicación acceso completo a Amazon S3, seleccione la política `AmazonS3FullAccess` que desea asociar a este usuario.
  + Puede ignorar los pasos opcionales de ese procedimiento relacionados con la configuración de los límites de permisos o etiquetas. 

## Paso 2: Obtener las claves de acceso
<a name="stepGetKeys"></a>

1. En el panel de navegación de la consola de IAM, seleccione **Usuarios** y, a continuación, seleccione el **User name** del usuario que creó anteriormente.

1. En la página del usuario, selecciona la página **Credenciales de seguridad**. A continuación, en **Claves de acceso**, seleccione **Crear clave de acceso**.

1. Para el **Paso 1 Crear clave de acceso**, elija **Interfaz de línea de comandos (CLI)** o **Código local**. Ambas opciones generan el mismo tipo de clave para utilizarla tanto con la AWS CLI como con la SDKs.

1. En el **paso 2 de Crear clave de acceso**, introduzca una etiqueta opcional y seleccione **Siguiente**.

1. En el **paso 3 de Crear clave de acceso**, seleccione **Descargar archivo.csv** para guardar un archivo `.csv` con la clave de acceso y la clave de acceso secreta de su usuario de IAM. Necesitará esta información más tarde.
**aviso**  
Utilice las medidas de seguridad adecuadas para mantener estas credenciales seguras.

1. Seleccione **Done (Listo)**. 

## Paso 3: Actualice el archivo compartido `credentials`
<a name="stepauthIamUser"></a>

1. Cree o abra el archivo AWS `credentials` compartido. Este archivo es `~/.aws/credentials` en sistemas Linux y macOS y `%USERPROFILE%\.aws\credentials` en Windows. Para obtener más información, consulte la [ubicación de los archivos de credenciales](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html).

1. Agregue el siguiente texto al archivo `credentials` compartido. Sustituya el valor de ID y el valor clave de ejemplo por los valores del archivo `.csv` que descargó anteriormente. 

   ```
   [default]
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   ```

   

1. Guarde el archivo.

El archivo compartido `credentials` es la forma más común de almacenar las credenciales. También se pueden configurar como variables de entorno; consulte los nombres de las variables de entorno [AWS claves de acceso](feature-static-credentials.md). Esta es una forma de empezar, pero le recomendamos que haga la transición al IAM Identity Center o a otras credenciales temporales lo antes posible. Cuando deje de usar credenciales de larga duración, recuerde eliminarlas del archivo compartido `credentials`.

# Uso de funciones de IAM para autenticar las aplicaciones desplegadas en Amazon EC2
<a name="access-iam-roles-for-ec2"></a>

En este ejemplo, se describe la configuración de un AWS Identity and Access Management rol con acceso a Amazon S3 para usarlo en la aplicación implementada en una instancia de Amazon Elastic Compute Cloud. 

Para ejecutar la aplicación AWS del SDK en una instancia de Amazon Elastic Compute Cloud, crea una función de IAM y, a continuación, dale a tu EC2 instancia de Amazon acceso a esa función. Para obtener más información, consulte [Funciones de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) en la *Guía del EC2 usuario de Amazon*.

## Creación de un rol de IAM
<a name="createRoleForEc2"></a>

Es probable que la aplicación del AWS SDK que desarrolle acceda al menos a una Servicio de AWS para realizar acciones. Cree un rol de IAM que conceda los permisos necesarios para que se ejecute su aplicación.

 Este procedimiento crea un rol de IAM que concede acceso de solo lectura a Amazon S3 como ejemplo. Muchas de las guías del AWS SDK incluyen tutoriales de introducción que se leen en Amazon S3.

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Roles** y después **Crear rol**.

1. Para **Seleccionar entidad de confianza**, en **Tipo de entidad de confianza**, elija **Servicio de AWS**.

1. **En Caso de uso**, selecciona **Amazon EC2** y, a continuación, selecciona **Siguiente**.

1. En **Añadir permisos**, seleccione la casilla de verificación **Acceso de solo lectura a Amazon S3** en la lista de políticas y, a continuación, seleccione **Siguiente**. 

1. Ingrese un nombre para el rol y, a continuación, seleccione **Crear rol**. *Recuerda este nombre porque lo necesitarás cuando crees tu EC2 instancia de Amazon.*

## Lanza una EC2 instancia de Amazon y especifica tu función de IAM
<a name="launchAndSpecify"></a>

Puedes crear y lanzar una EC2 instancia de Amazon con tu rol de IAM de la siguiente manera:
+ Siga [Lanzar rápidamente una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance) en la *Guía del EC2 usuario de Amazon*. Sin embargo, antes de realizar el paso final del envío, haga lo siguiente:
  + En **Detalles avanzados**, para el **perfil de instancia de IAM**, elija el rol que creó en el paso anterior.

 Con esta EC2 configuración de IAM y Amazon, puede implementar su aplicación en la EC2 instancia de Amazon y su aplicación tendrá acceso de lectura al servicio Amazon S3. 

## Conectarse a la EC2 instancia
<a name="net-dg-hosm-connect"></a>

Conéctate a la EC2 instancia de Amazon para poder transferirle la aplicación y, a continuación, ejecutarla. Necesitará el archivo que contiene la parte privada del par de claves que utilizó en **par de claves (inicio de sesión)** cuando creó la instancia, es decir, el archivo PEM.

Para ello, siga las instrucciones correspondientes a su tipo de instancia: [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) o [Conexión con la instancia de Windows](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html). Cuando se conecte, hágalo de forma que pueda transferir archivos desde el equipo de desarrollo a la instancia. 

**nota**  
En un terminal Linux o macOS, puede utilizar el comando secure copy para copiar la aplicación. Para usar `scp` con un par de claves, puede usar el siguiente comando: `scp -i path/to/key file/to/copy ec2-user@ec2-xx-xx-xxx-xxx.compute.amazonaws.com:~`.  
Para obtener más información sobre Windows, consulte [Transferir archivos a instancias de Windows](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instanceWindowsFileTransfer.html).

Si utilizas un AWS kit de herramientas, a menudo también puedes conectarte a la instancia mediante el kit de herramientas. Para más información, consulte la guía de usuario específica del kit de herramientas que utilice.

## Ejecuta la aplicación en la instancia EC2
<a name="net-dg-hosm-run-the-app"></a>

1. Copia los archivos de tu aplicación desde tu unidad local a tu EC2 instancia de Amazon.

1. Inicie la aplicación y compruebe que se ejecuta con los mismos resultados que en su máquina de desarrollo.

1. (Opcional) Compruebe que la aplicación utilice las credenciales proporcionadas por el rol de IAM.

   1. Inicia sesión en la EC2 consola de Amazon Consola de administración de AWS y ábrela en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Seleccione la instancia.

   1. Elija **Acciones**, **Seguridad** y luego, **Modificar rol de IAM**.

   1.  Para el **rol de IAM**, separe el rol de IAM seleccionando **Sin** función de IAM.

   1.  Elija **Actualizar rol de IAM**.

   1. Vuelva a ejecutar la aplicación y confirme que devuelve un error de autorización.

# Uso del complemento TIP para acceder Servicios de AWS
<a name="access-tip"></a>

 La propagación fiable de identidades (TIP) es una función AWS IAM Identity Center que permite Servicios de AWS a los administradores conceder permisos en función de los atributos de los usuarios, como las asociaciones de grupos. Con la propagación de identidades fiable, el contexto de identidad se añade a una función de IAM para identificar al usuario que solicita acceso a AWS los recursos. Este contexto se propaga a otros Servicios de AWS. 

 El contexto de identidad comprende la información que se Servicios de AWS utiliza para tomar decisiones de autorización cuando reciben solicitudes de acceso. Esta información incluye los metadatos que identifican al solicitante (por ejemplo, un usuario del Centro de Identidad de IAM), el lugar Servicio de AWS al que se solicita el acceso (por ejemplo, Amazon Redshift) y el ámbito del acceso (por ejemplo, el acceso de solo lectura). El destinatario Servicio de AWS utiliza este contexto y cualquier permiso asignado al usuario para autorizar el acceso a sus recursos. Para obtener más información, consulte la [descripción general de la propagación de identidades confiables](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html) de la Guía del AWS IAM Identity Center usuario. 

 El complemento TIP se puede utilizar con Servicios de AWS este soporte para la propagación de identidades confiable. Como caso de uso de referencia, consulte [Configuración de una aplicación de Amazon Q Business mediante AWS IAM Identity Center](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) en la *Guía del usuario de Amazon Q Business*. 

**nota**  
 Si utilizas Amazon Q Business, consulta [Configuración de una aplicación de Amazon Q Business mediante AWS IAM Identity Center](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) para obtener las instrucciones específicas del servicio. 

## Requisitos previos para utilizar el complemento de TIP
<a name="prereq-tip"></a>

Los recursos siguientes son necesarios para que el complemento funcione: 

1. Debe utilizar el AWS SDK para Java o el AWS SDK para JavaScript. 

1. Compruebe que el servicio que está utilizando es compatible con la propagación de identidades de confianza.

   Consulte la columna **Permite la propagación de identidades de confianza a través del IAM Identity Center** de la tabla de [aplicaciones administradas de AWS que se integran con el IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html) de la *Guía del usuario de AWS IAM Identity Center *. 

1. Puede habilitar IAM Identity Center y utilizarlo únicamente para la propagación de identidades de confianza.

   Consulte los [requisitos previos y las consideraciones de la TIP](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html) en la *Guía del usuario de AWS IAM Identity Center *. 

1. Debe tener una Identity-Center-integrated solicitud. 

   Consulte [las aplicaciones administradas de AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-quick-start-setting-up-identity-center-to-test-awsmanagedapps.html) o las [aplicaciones administradas por el cliente](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html) en la *Guía del usuario de AWS IAM Identity Center *. 

1. Debe configurar un emisor de token de confianza (TTI) y conectar su servicio al IAM Identity Center. 

   Consulte los [requisitos previos para emisores de tokens de confianza](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites) y las [tareas para configurar un emisor de token de confianza](https://docs.aws.amazon.com/singlesignon/latest/userguide/setuptrustedtokenissuer.html#setuptrustedtokenissuer-tasks) en la *Guía del usuario de AWS IAM Identity Center *.

## Para usar el complemento de TIP en su código
<a name="using-tip"></a>

1. Cree una instancia del complemento de propagación de identidades de confianza.

1. Cree una instancia de cliente de servicio para interactuar con su cliente de servicio Servicio de AWS y personalícelo añadiendo el complemento confiable de propagación de identidades. 

El complemento de TIP usa los siguientes parámetros:
+ **`webTokenProvider`**: una función que el cliente implementa para obtener un token OpenID de su proveedor de identidad externo. 
+ **`accessRoleArn`**: el ARN del rol de IAM que debe asumir el complemento con el contexto de identidad del usuario para obtener las credenciales de identidad mejorada. 
+ **`applicationArn`**: la cadena del identificador único del cliente o de la aplicación. Este valor es un ARN de aplicación que tiene las OAuth concesiones configuradas. 
+ **`ssoOidcClient`**: (Opcional) Un cliente OIDC de SSO, por ejemplo, [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html)para Java o for JavaScript, con configuraciones definidas [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/)por el cliente. Si no se proporciona, se creará una instancia y se utilizará un cliente OIDC que utilice `applicationRoleArn`. 
+  **`stsClient`**: (opcional) Un cliente de AWS STS con configuraciones definidas por el cliente, que se utiliza para asumir `accessRoleArn` con el contexto de identidad del usuario. Si no se proporciona, se creará una instancia y se utilizará un AWS STS cliente que `applicationRoleArn` lo utilice. 
+ **`applicationRoleArn`**: (Opcional) El ARN del rol de IAM que se va a asumir `AssumeRoleWithWebIdentity` para poder iniciar el OIDC AWS STS y los clientes.
  + Si no se proporciona, se deben proporcionar **ambos** parámetros `ssoOidcClient` y `stsClient`.
  + Si se proporciona, `applicationRoleArn` no puede tener el mismo valor que el parámetro `accessRoleArn`. `applicationRoleArn` se utiliza para crear el stsClient, que se utiliza para asumir accessRole. Si se usa el mismo rol para ambos `applicationRole``accessRole`, significaría usar un rol para asumir el rol (suposición del rol propio), lo cual no es aconsejable. AWS Consulte el [anuncio](https://aws.amazon.com/blogs/security/announcing-an-update-to-iam-role-trust-policy-behavior/) para obtener más detalles.

### Consideraciones para los parámetros `ssoOidcClient`, `stsClient` y `applicationRoleArn`
<a name="considerations-tip"></a>

Al configurar el complemento de TIP, tenga en cuenta los siguientes requisitos de permiso en función de los parámetros que proporcione:
+ Si proporciona `ssoOidcClient` y `stsClient`:
  + Las credenciales en `ssoOidcClient` deben tener permiso `oauth:CreateTokenWithIAM` para llamar al centro de identidad y obtener el contexto de usuario específico del centro de identidad.
  + Las credenciales en `stsClient` deben contar con `sts:AssumeRole` y permisos `sts:SetContext` en `accessRole`. `accessRole` también debe configurarse con una relación de confianza con las credenciales activadas en `stsClient`.
+ Si proporciona `applicationRoleArn`:
  + `applicationRole` debe tener los permisos `oauth:CreateTokenWithIAM`, `sts:AssumeRole` y `sts:SetContext` necesarios en los recursos requeridos (instancia deIdC, `accessRole`), ya que se utilizará para crear clientes OIDC y STS.
  + `applicationRole`debe tener una relación de confianza con el proveedor de identidad que se utilice para generar el`webToken`, ya que se `webToken` utilizará para asumir el ApplicationRole mediante la [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)llamada del complemento.

**Ejemplo de ApplicationRole configuración:**

Política de confianza con el proveedor de tokens web:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::ACCOUNT_ID:oidc-provider/IDENTITY_PROVIDER_URL"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "IDENTITY_PROVIDER_URL:aud": "CLIENT_ID_TO_BE_TRUSTED"
                }
            }
        }
    ]
}
```

Política de permisos:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ],
            "Resource": [
                "accessRoleArn"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sso-oauth:CreateTokenWithIAM"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Ejemplos de código que utilizan TIP
<a name="tip-code-example"></a>

Los siguientes ejemplos muestran cómo implementar el complemento TIP en su código mediante el AWS SDK para Java o el AWS SDK para JavaScript.

------
#### [ Java ]

Para usar el complemento TIP en su AWS SDK para Java proyecto, debe declararlo como una dependencia en el `pom.xml` archivo de su proyecto. 

```
<dependency>
<groupId>software.amazon.awsidentity.trustedIdentityPropagation</groupId>
<artifactId>aws-sdk-java-trustedIdentityPropagation-java-plugin</artifactId>
   <version>2.0.0</version>
</dependency>
```

En su código fuente, incluya la declaración de paquete requerida para `software.amazon.awssdk.trustedidentitypropagation`. 

Los siguientes ejemplos muestran dos formas de crear una instancia del complemento de propagación de identidades de confianza y agregarla a un cliente de servicio. Ambos ejemplos utilizan Amazon S3 como servicio y se utilizan `S3AccessGrantsPlugin` para administrar los permisos específicos del usuario, pero se pueden aplicar a cualquiera Servicio de AWS que admita la propagación de identidades confiables (TIP). 

**nota**  
Para estos ejemplos, debe configurar los permisos específicos de usuario de S3 Access Grants. Consulte la [documentación de concesiones de acceso de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para obtener más información.

**Opción 1: Cree y transfiera clientes OIDC y STS**

```
SsoOidcClient oidcClient = SsoOidcClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

StsClient stsClient = StsClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .ssoOidcClient(oidcClient)
        .stsClient(stsClient)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

**Opción 2: Transferir applicationRoleArn y aplazar la creación del cliente al complemento**

```
TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .applicationRoleArn(applicationRoleArn)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

Para obtener información y fuentes adicionales, consulte [ trusted-identity-propagation-java](https://github.com/aws-sdk-plugin/trusted-identity-propagation-java)en GitHub.

------
#### [ JavaScript ]

Ejecute el siguiente comando para instalar el paquete de complementos de autenticación TIP en su AWS SDK para JavaScript proyecto: 

```
$  npm i @aws-sdk-extension/trusted-identity-propagation
```

El `package.json` final debería incluir una dependencia similar a la siguiente: 

```
  "dependencies": {
"@aws-sdk-extension/trusted-identity-propagation": "^2.0.0"
  },
```

 En su código fuente, importe la dependencia de `TrustedIdentityPropagationExtension` requerida. 

 Los siguientes ejemplos muestran dos formas de crear una instancia del complemento de propagación de identidades de confianza y agregarla a un cliente de servicio. Ambos ejemplos utilizan Amazon S3 como servicio y Amazon S3 Access Grants para administrar los permisos específicos de los usuarios, pero se pueden aplicar a cualquiera Servicio de AWS que admita la propagación de identidades confiables (TIP). 

**nota**  
Para estos ejemplos, debe configurar los permisos específicos de usuario de concesiones de acceso a Amazon S3; consulte la [documentación de concesiones de acceso a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para obtener más información.

**Opción 1: Cree y transfiera clientes OIDC y STS**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            ssoOidcClient: customOidcClient,
            stsClient: customStsClient,
            accessRoleArn: accessRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  // Create a new S3 client with the temporary credentials
  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  // Use the temporary S3 client to perform the operation
  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  // Process the S3 object data
  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

**Opción 2: Transferir applicationRoleArn y aplazar la creación del cliente al complemento**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            accessRoleArn: accessRoleArn,
            applicationRoleArn: applicationRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

// Same S3 AccessGrants workflow as Option 1
const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

Para obtener información y fuentes adicionales, consulte [trusted-identity-propagation-js](https://github.com/aws-sdk-plugin/trusted-identity-propagation-js)en GitHub.

------