

# Credenciales de autenticación y acceso para la AWS CLI
<a name="cli-chap-authentication"></a>

Debe establecer cómo AWS CLI se autentica con AWS cuando desarrolla con los servicios de AWS. Para configurar las credenciales de acceso programático para la AWS CLI, elija una de las siguientes opciones. Las opciones están en orden de recomendación.


****  

| Tipo de autenticación | Finalidad | Instrucciones | 
| --- | --- | --- | 
|  Credenciales de la consola de administración de AWS  | **(Recomendado)** Use credenciales de corto plazo iniciando sesión en la AWS CLI con las credenciales de la consola. Se recomienda utilizar usuarios raíz, usuarios de IAM o federación con IAM para el acceso a la cuenta de AWS | [Inicio de sesión para el desarrollo local de AWS con credenciales de consola](cli-configure-sign-in.md) | 
|  Credenciales a corto plazo de los usuarios del personal de IAM Identity Center  | Use credenciales a corto plazo para un usuario del personal de IAM Identity Center.La práctica recomendada de seguridad es utilizar AWS Organizations con IAM Identity Center. Aquí se combinan las credenciales de corta duración con un directorio de usuarios, como el directorio integrado de IAM Identity Center o Active Directory. | [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md) | 
| Credenciales a corto plazo de usuarios de IAM | Utilice las credenciales a corto plazo de los usuarios de IAM, que son más seguras que las credenciales a largo plazo. Si sus credenciales están comprometidas, tiene un tiempo limitado para usarlas antes de que caduquen. | [Autenticación con credenciales a corto plazo para la AWS CLI](cli-authentication-short-term.md) | 
| Los usuarios de IAM o IAM Identity Center en una instancia de Amazon EC2  | Usar metadatos de la instancia de Amazon EC2 para consultar credenciales temporales mediante el rol asignado a la instancia de Amazon EC2. | [Uso de metadatos de instancias de Amazon EC2 como credenciales en la AWS CLI](cli-configure-metadata.md) | 
| Asumir roles para los permisos | Emparejar otro método de credenciales y asumir un rol para el acceso temporal a los Servicios de AWS a los que su usuario podría no tener acceso. | [Uso de un rol de IAM de la AWS CLI](cli-configure-role.md) | 
| Credenciales a largo plazo de usuarios de IAM | (No recomendado) Usar credenciales a largo plazo, que no tienen fecha de caducidad. | [Autenticación con credenciales de usuario de IAM para la AWS CLI](cli-authentication-user.md) | 
| Almacenamiento externo de los usuarios del personal de IAM o IAM Identity Center  | (No recomendado) Emparejar otro método de credenciales pero almacenar los valores de credenciales en una ubicación fuera de la AWS CLI. Este método es tan seguro como la ubicación externa en la que se almacenan las credenciales. | [Obtención de credenciales con un proceso externo en la AWS CLI](cli-configure-sourcing-external.md) | 

## Prioridad de configuración y credenciales
<a name="cli-chap-authentication-precedence"></a>

Las credenciales y las opciones de configuración se encuentran en varios lugares, como las variables de entorno del sistema o del usuario, los archivos de configuración de AWS locales o declarados explícitamente en la línea de comandos como un parámetro. Determinadas autenticaciones tienen prioridad sobre otras. La configuración de autenticación de la AWS CLI tiene prioridad y sigue este orden:

1. **[Opciones de línea de comandos](cli-configure-options.md)**: anula la configuración en cualquier otra ubicación, como los parámetros `--region`, `--output` y `--profile`.

1. **[Variables de entorno:](cli-configure-envvars.md)** puede almacenar valores en las variables de entorno de su sistema.

1. **[Asumir rol](cli-configure-role.md)**: asuma los permisos de un rol de IAM mediante la configuración o el comando [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html).

1. **[Asumir rol con identidad web](cli-configure-role.md)**: asuma los permisos de un rol de IAM con identidad web mediante la configuración o el comando [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html).

1. **[AWS IAM Identity Center](cli-configure-files.md)**: los ajustes de configuración de IAM Identity Center guardados en el archivo `config` se actualizan al ejecutar el comando `aws configure sso`. A continuación, las credenciales se autentican al ejecutar el comando `aws sso login`. El archivo `config` se encuentra en `~/.aws/config` en Linux o macOS, o en `C:\Users\USERNAME\.aws\config` en Windows. 

1. **[Archivo de credenciales](cli-configure-files.md)**: los archivos `credentials` y `config` se actualizan al ejecutar el comando `aws configure`. El archivo `credentials` se encuentra en `~/.aws/credentials` en Linux o macOS, o en `C:\Users\USERNAME\.aws\credentials` en Windows.

1. **[Proceso personalizado](cli-configure-sourcing-external.md)**: obtenga sus credenciales de un origen externo.

1. **[Archivo de configuración](cli-configure-files.md)**: los archivos `credentials` y `config` se actualizan al ejecutar el comando `aws configure`. El archivo `config` se encuentra en `~/.aws/config` en Linux o macOS, o en `C:\Users\USERNAME\.aws\config` en Windows.

1. **[Credenciales contenedor](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)**: puede asociar un rol de IAM con cada una de las definiciones de tareas de Amazon Elastic Container Service (Amazon ECS). Las credenciales temporales de ese rol estarán disponibles para los contenedores de esa tarea. Para obtener más información, consulte [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. **[Credenciales de perfil de instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)**: puede asociar un rol de IAM con cada una de las instancias de Amazon Elastic Compute Cloud (Amazon EC2). Las credenciales temporales de ese rol estarán disponibles para el código que se ejecute en la instancia. Las credenciales se entregan a través del servicio de metadatos de Amazon EC2. Para obtener más información, consulte [Roles de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) en la *Guía del usuario de Amazon EC2* y [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) en la *Guía del usuario de IAM*.

## Temas adicionales en esta sección
<a name="cli-chap-authentication-topics"></a>
+ [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md)
+ [Autenticación con credenciales a corto plazo para la AWS CLI](cli-authentication-short-term.md)
+ [Uso de un rol de IAM de la AWS CLI](cli-configure-role.md)
+ [Autenticación con credenciales de usuario de IAM para la AWS CLI](cli-authentication-user.md)
+ [Uso de metadatos de instancias de Amazon EC2 como credenciales en la AWS CLI](cli-configure-metadata.md)
+ [Obtención de credenciales con un proceso externo en la AWS CLI](cli-configure-sourcing-external.md)

# Inicio de sesión para el desarrollo local de AWS con credenciales de consola
<a name="cli-configure-sign-in"></a>

Puede usar sus credenciales de inicio de sesión de consola de administración de AWS actuales para el acceso mediante programación a servicios de AWS. 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, AWS Tools para PowerShell y los AWS SDK. Esta característica 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 las credenciales raíz creadas durante la configuración inicial de la cuenta, un usuario de IAM o una identidad federada del proveedor de identidad, y la AWS CLI administra automáticamente las credenciales temporales por usted. Este enfoque mejora la seguridad al eliminar la necesidad de almacenar localmente las credenciales a largo plazo.

Al ejecutar el comando `aws login`, puede seleccionar una de las sesiones de consola activas o iniciar sesión mediante el flujo de autenticación basado en el navegador, lo que generará credenciales temporales automáticamente. La CLI actualizará automáticamente estas credenciales durante un máximo de 12 horas.

Una vez configurada, la sesión se puede utilizar en la AWS CLI y en otros AWS SDK y herramientas.

**Topics**
+ [

## Requisitos previos
](#cli-configure-sign-in-prerequisites)
+ [

## Inicie sesión en la AWS CLI con el comando `aws login`.
](#cli-configure-sign-in-login-command)
+ [

## Ejecución de un comando con el perfil
](#cli-configure-sign-in-with-profile)
+ [

## Cierre de sesión con el comando de cierre de sesión de AWS
](#cli-configure-sign-in-sign-out)
+ [

## Solución de problemas
](#cli-configure-sign-in-troubleshooting)
+ [

## Recursos relacionados
](#cli-configure-sign-in-resources)

## Requisitos previos
<a name="cli-configure-sign-in-prerequisites"></a>
+ Instale la CLI de AWS. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md). Se requiere una versión mínima de 2.32.0 para usar el comando `aws login`.
+ Acceda para iniciar sesión en la consola de administración de AWS como usuario raíz, usuario de IAM o mediante federación con IAM. Si utiliza IAM Identity Center, vaya a [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md) en su lugar.
+ Asegúrese de que la identidad de IAM tiene los permisos adecuados. Adjunte la política administrada [SignInLocalDevelopmentAccess](https://docs.aws.amazon.com/signin/latest/userguide/security-iam-awsmanpol.html) al usuario de IAM, rol o grupo. Si inicia sesión como usuario raíz, no se requieren permisos adicionales.

## Inicie sesión en la AWS CLI con el comando `aws login`.
<a name="cli-configure-sign-in-login-command"></a>

Ejecute el comando `aws login` para autenticarse con las credenciales de la consola de administración de AWS existentes. Si no ha configurado un perfil anteriormente, se le solicitará información adicional. Para iniciar sesión o configurar un perfil siga los pasos que se indican a continuación.

1. En el terminal que prefiera, ejecute el comando `aws login`.

   ```
   $ aws login
   ```

   Para iniciar sesión en un perfil con nombre o crear uno nuevo, use la opción `--profile`.

   ```
   $ aws login --profile my-dev-profile
   ```
   + Si se trata de un perfil nuevo o no se ha especificado ninguna región de AWS, la AWS CLI le solicitará que proporcione una región.

     ```
     No AWS region has been configured. The AWS region is the geographic location of 
     your AWS resources. 
     
     If you've used AWS before and already have resources in your account, tell us 
     which region they were created in. If you haven't created resources in your account 
     before, you can pick the region closest to you: 
     https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. 
     You are able to change the region in the CLI at any time with the command 
     `aws configure set region NEW_REGION`.
     
     AWS Region [us-east-1]:
     ```
   + Si el dispositivo que usa la AWS CLI no tiene un navegador, puede usar la opción `--remote` para proporcionar una URL para abrirla en un dispositivo con navegador.

     ```
     $ aws login --remote
     ```
**nota**  
Puede controlar el acceso a la autenticación en el mismo dispositivo (`aws login`) y en varios dispositivos (`aws login --remote`). Utilice los siguientes ARN de recursos en cualquier política de IAM pertinente.  
`arn:aws:signin:region:account-id:oauth2/public-client/localhost`: utilice este ARN para la autenticación en el mismo dispositivo con `aws login`.
`arn:aws:signin:region:account-id:oauth2/public-client/remote`: utilice este ARN para la autenticación entre dispositivos con `aws login --remote`.

1. La AWS CLI intenta abrir el navegador predeterminado para el proceso de inicio de sesión de la cuenta de AWS.

   ```
   Attempting to open the login page for `us-east-1` in your default browser. 
   If the browser does not open, use the following URL to complete your login:
   https://signin.us-east-1.amazonaws.com/authorize?<abbreviated>
   
   If you cannot connect to this URL, make sure that you have specified a valid region.
   ```
   + Si usó la opción `--remote`, se muestran las instrucciones para iniciar el proceso de inicio de sesión de forma manual en función del tipo de autorización que está usando. La URL que se muestra es una URL única que comienza por https://us-east-1.signin.amazonaws.com/authorize. Una vez que complete el inicio de sesión en el navegador, tendrá que copiar y pegar el código de autorización resultante en la CLI.

     ```
     Browser will not be automatically opened.
     Please visit the following URL:
     https://region.signin.amazonaws.com/authorize?<abbreviated>
     
     Please enter the authorization code displayed in the browser:
     ```

1. En el navegador, seleccione las credenciales que desee utilizar en la lista que se muestra y, a continuación, vuelva al terminal.
   + Si el perfil que está configurando tiene una sesión de inicio de sesión previamente configurada que no coincide con la nueva sesión, la AWS CLI le pide que confirme que está cambiando la sesión que corresponde al perfil existente.

     ```
     Profile signin is already configured to use session arn:aws:iam::0123456789012:user/ReadOnly. 
     Do you want to overwrite it to use arn:aws:iam::0123456789012:user/Admin instead? (y/n):.
     ```

1. Un mensaje final describe la configuración del perfil completada. Ahora puede utilizar este perfil para solicitar credenciales. Utilice el comando `aws login` para solicitar y recuperar realmente las credenciales necesarias para ejecutar comandos.

   El token de autenticación se almacena en caché en el disco en el directorio `.aws/login/cache` con un nombre de archivo basado en el perfil resuelto.

### Archivo de configuración generado
<a name="cli-configure-sign-in-generated-config"></a>

Estos pasos dan como resultado la creación del perfil `default` en el archivo `config` similar al siguiente:

```
[default]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1
```

## Ejecución de un comando con el perfil
<a name="cli-configure-sign-in-with-profile"></a>

Una vez que haya iniciado sesión, puede utilizar sus credenciales para invocar comandos de la AWS CLI con el perfil asociado. En el ejemplo siguiente, se llama al comando `get-caller-identity` que usa el perfil `default`:

```
$ aws sts get-caller-identity
```

Para iniciar sesión en una sesión específica, utilice la opción `--profile`.

```
$ aws sts get-caller-identity --profile my-dev-profile
```

La AWS CLI y los SDK actualizarán automáticamente las credenciales almacenadas en caché cada 15 minutos, según sea necesario. La sesión general será válida hasta la duración de sesión establecida para la entidad principal de IAM (máximo de 12 horas), tras lo cual deberá volver a ejecutar `aws login`.

## Cierre de sesión con el comando de cierre de sesión de AWS
<a name="cli-configure-sign-in-sign-out"></a>

Cuando haya terminado de utilizar la sesión, puede dejar que las credenciales caduquen o ejecutar el comando `aws logout` para eliminar las credenciales almacenadas en caché. Si no se especifica ningún perfil en la línea de comandos o en la variable de entorno `AWS_PROFILE`, el comando cierra la sesión del perfil predeterminado. En el ejemplo siguiente, se cierra la sesión del perfil predeterminado.

```
$ aws logout
```

Para cerrar sesión de una sesión específica, utilice la opción `--profile`.

```
$ aws logout --profile my-dev-profile
```

Para cerrar sesión en todos los perfiles que usan credenciales de inicio de sesión, use la opción `--all`.

```
$ aws logout --all
```

### Credenciales almacenadas en caché
<a name="cli-configure-sign-in-sharing-login-creds"></a>

Las credenciales temporales en caché, así como los metadatos necesarios para actualizarlas, se almacenan de forma predeterminada en `~/.aws/login/cache` en Linux y macOS o `%USERPROFILE%\.aws\login\cache` en Windows.

Para almacenar la caché de credenciales de corta duración en una ubicación alternativa, establezca la variable de entorno `AWS_LOGIN_CACHE_DIRECTORY`.

#### Uso compartido de las credenciales de inicio de sesión como credenciales de proceso
<a name="cli-configure-sign-in-cached-credentials"></a>

Es posible que las versiones anteriores de los AWS SDK u otras herramientas de desarrollo aún no admitan las credenciales de consola. Como solución alternativa, puede configurar la AWS CLI para que sirva como proveedor de credenciales de procesos. La CLI seguirá actualizando las credenciales según sea necesario y, al mismo tiempo, las compartirá con las herramientas configuradas para usar el perfil credential\$1process.

En este ejemplo, utilice la AWS CLI para iniciar sesión primero para el inicio de sesión del perfil:

```
$ aws login --profile signin
```

A continuación, configure manualmente un perfil con la opción credential\$1process, que apunta al perfil de inicio de sesión. Ahora puede configurar los SDK o las herramientas para que usen el perfil de proceso, que invocará la CLI para compartir las credenciales del perfil de inicio de sesión.

```
[profile signin]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1

[profile process] 
credential_process = aws configure export-credentials --profile signin --format process
region = us-east-1
```

## Solución de problemas
<a name="cli-configure-sign-in-troubleshooting"></a>

Esta página contiene recomendaciones para solucionar problemas relacionados con el inicio de sesión para el desarrollo local de AWS mediante las credenciales de consola de la AWS CLI.

**nota**  
Para solucionar otros problemas que puedan surgir al utilizar la AWS CLI, consulte [Solución de errores para la AWS CLI](cli-chap-troubleshooting.md).

### Errores ExpiredToken o AccessDeniedException después de usar “Inicio de sesión de AWS”
<a name="expired-token-login-troubleshooting"></a>

Al ejecutar un comando de AWS CLI después de ejecutar `aws login` para un perfil determinado, es posible que se produzca un error de credenciales caducadas o no válidas.

```
$ aws s3 ls

An error occurred (ExpiredToken) when calling the ListBuckets operation: The provided token has expired.
```

**Causa posible:** tiene una combinación de credenciales existentes y las nuevas credenciales de inicio de sesión en ese perfil

Ejecute `aws configure list` o `aws configure list --profile <profile name>` para imprimir el lugar desde el que la CLI resuelve las credenciales para el perfil predeterminado o para el perfil dado.

Si la columna TYPE no es de inicio de sesión, significa que todavía hay un tipo diferente de credenciales establecido en el perfil de destino.

En este ejemplo, las credenciales se resuelven desde el archivo de credenciales compartido del directorio principal, que tiene prioridad sobre las credenciales de inicio de sesión.

```
$  aws configure list
NAME       : VALUE                    : TYPE             : LOCATION
profile    : <not set>                : None             : None
access_key : ****************MPLE     : shared-credentials-file :
secret_key : ****************EKEY     : shared-credentials-file :
region     : us-east-1                : config-file      : ~/.aws/config
```

Para solucionar este problema, elimine manualmente las credenciales existentes del archivo de configuración y credenciales del perfil de destino. Una vez que lo haga, debería ver las credenciales de inicio de sesión cuando se vuelva a ejecutar `aws configure list`.

```
$  aws configure list
NAME       : VALUE                    : TYPE             : LOCATION
profile    : <not set>                : None             : None
access_key : ****************MPLE     : login            :
secret_key : ****************EKEY     : login            :
region     : us-east-1                : config-file      : ~/.aws/config
```

Como opción alternativa, el uso de la opción `--debug` mostrará el lugar desde el que la CLI resuelve las credenciales.

### El firewall bloquea el acceso de red cuando se ejecuta “Inicio de sesión de AWS”
<a name="firewall-blocking-login-troubleshooting"></a>

Cuando se ejecuta `aws login`, es posible que aparezca una ventana emergente o un mensaje del software de firewall que impida que la AWS CLI acceda a la red

**Causa posible:** el firewall o el software de seguridad impiden que la AWS CLI abra el puerto utilizado para gestionar la devolución de llamada de OAuth.

Para evitar este problema, utilice la opción `--remote` en su lugar. Esto pedirá que se copie y pegue el código de autorización en lugar de utilizar la devolución de llamada de OAuth.

```
$ aws login --remote
```

## Recursos relacionados
<a name="cli-configure-sign-in-resources"></a>

Los recursos adicionales son los siguientes.
+ [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md)
+ [`aws login` en la referencia de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/reference/)
+ [`aws logout` en la referencia de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/reference/)

# Configuración de la autenticación de IAM Identity Center con la AWS CLI
<a name="cli-configure-sso"></a>

En este tema se proporcionan instrucciones sobre cómo configurar laAWS CLI con AWS IAM Identity Center (IAM Identity Center) para recuperar las credenciales que permiten ejecutar comandos de la AWS CLI. Existen principalmente dos formas de autenticar a los usuarios con IAM Identity Center para que obtengan las credenciales que permiten ejecutar los comandos de AWS CLI a través del archivo `config`: 
+ **(Recomendada)** Configuración del proveedor de token de SSO.
+ Configuración heredada no actualizable.

Para obtener información sobre el uso de autenticación de portador, que no utiliza ID de cuenta ni rol, consulte [Configuración para utilizar la AWS CLI con CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) en la *Guía del usuario de Amazon CodeCatalyst*.

**nota**  
Para ver un proceso guiado sobre el uso de IAM Identity Center con los comandos de la AWS CLI, consulte [Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI](cli-configure-sso-tutorial.md).

**Temas**
+ [Requisitos previos](#cli-configure-sso-prereqs)
+ [Configurar el perfil con el asistente de `aws configure sso`](#cli-configure-sso-configure)
+ [Configurar solo la sección `sso-session` con el asistente de `aws configure sso-session`](#cli-configure-sso-session)
+ [Configuración manual mediante el archivo `config`](#cli-configure-sso-manual)
+ [Inicio de sesión en IAM Identity Center](#cli-configure-sso-login)
+ [Ejecución de un comando con el perfil de IAM Identity Center](#cli-configure-sso-use)
+ [Cierre de sesiones de IAM Identity Center](#cli-configure-sso-logout)
+ [Solución de problemas](#cli-configure-sso-tshoot)
+ [Recursos relacionados](#cli-configure-sso-resources)

## Requisitos previos
<a name="cli-configure-sso-prereqs"></a>
+ Instala la AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md).
+ Primero debe tener acceso a la autenticación de SSO en el Centro de identidades de IAM. Elija uno de los siguientes métodos para acceder a las credenciales de AWS.

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

Siga las instrucciones en [Introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del usuario de AWS IAM Identity Center*. Este proceso activa IAM Identity Center, crea un usuario administrativo y agrega un conjunto apropiado de permisos de privilegio mínimo.

**nota**  
Cree un conjunto de permisos que aplique los permisos de privilegio mínimo. 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. 

Salga del portal e inicie sesión de nuevo para ver las Cuentas de AWS, los detalles sobre el acceso programático y las opciones para `Administrator` o `PowerUserAccess`. Seleccione `PowerUserAccess` cuando trabaje con el SDK.

### Ya tengo acceso a AWS a través de un proveedor de identidades federado administrado por mi empleador (como Azure AD u Okta)
<a name="federated-access"></a>

Inicie sesión en AWS a través del portal de su proveedor de identidades. 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. 

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 AWS a través del portal de acceso de AWS administrado por mi empleador
<a name="accessportal-access"></a>

Inicie sesión en AWS a través del portal de acceso de AWS. 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 a través de un proveedor de identidades federado administrado por mi empleador
<a name="customfederated-access"></a>

Contacte con su equipo de TI para obtener ayuda.

Tras acceder a IAM Identity Center, recopile la información de IAM Identity Center realizando lo siguiente:

1. Recopilación de los valores `SSO Start URL` y `SSO Region` que necesita para ejecutar `aws configure sso`

   1. En el portal de acceso de AWS, seleccione el conjunto de permisos que utiliza para el desarrollo y seleccione el enlace **Claves de acceso**.

   1. En el cuadro de diálogo **Obtener credenciales**, elija la pestaña que coincida con su sistema operativo. 

   1. Elija el método de **credenciales de IAM Identity Center** para obtener los valores `SSO Start URL` y `SSO Region`.

1. Como alternativa, a partir de la versión 2.22.0, puede utilizar la URL del emisor en lugar de la URL de inicio. La URL del emisor se ubica en la consola de AWS IAM Identity Center en una de las siguientes ubicaciones:
   + En la página del **panel**, la URL del emisor aparece en el resumen de la configuración.
   + En la página de **configuración**, la URL del emisor se encuentra en los ajustes del **origen de identidad**. 

1. Para obtener información sobre qué ámbitos se deben registrar, consulte [Ámbitos de acceso de OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*.

## Configurar el perfil con el asistente de `aws configure sso`
<a name="cli-configure-sso-configure"></a>

**Para configurar un perfil de IAM Identity Center en la AWS CLI:**

1. En el terminal que prefiera, ejecute el comando `aws configure sso`.

------
#### [ (Recommended) IAM Identity Center ]

   Cree un nombre de sesión, proporcione la URL de inicio de IAM Identity Center o la URL del emisor, la Región de AWS que aloja el directorio de IAM Identity Center y el ámbito del registro.

   ```
   $ aws configure sso
   SSO session name (Recommended): my-sso
   SSO start URL [None]: https://my-sso-portal.awsapps.com/start
   SSO region [None]: us-east-1
   SSO registration scopes [None]: sso:account:access
   ```

   Para la compatibilidad de doble pila, use la URL de inicio del SSO de doble pila:

   ```
   $ aws configure sso
   SSO session name (Recommended): my-sso
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   SSO region [None]: us-east-1
   SSO registration scopes [None]: sso:account:access
   ```

   La autorización de la clave de prueba para el intercambio de códigos (PKCE) se utiliza de forma predeterminada para la AWS CLI a partir de la versión **2.22.0** y se debe utilizar en dispositivos con navegador. Para seguir utilizando la autorización de dispositivos, agregue la opción `--use-device-code`.

   ```
   $ aws configure sso --use-device-code
   ```

------
#### [ Legacy IAM Identity Center ]

   Sáltese el nombre de sesión y proporcione su URL de inicio de IAM Identity Center y la región de AWS que aloja el directorio del Identity Center. 

   ```
   $ aws configure sso
   SSO session name (Recommended):
   SSO start URL [None]: https://my-sso-portal.awsapps.com/start
   SSO region [None]:us-east-1
   ```

   Para compatibilidad de doble pila:

   ```
   $ aws configure sso
   SSO session name (Recommended):
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   SSO region [None]:us-east-1
   ```

------

1. La AWS CLI intenta abrir su navegador predeterminado para el proceso de inicio de sesión de su cuenta de IAM Identity Center. El proceso puede pedirle que permita que la AWS CLI acceda a los datos. Dado que la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre `botocore`.
   + **Si la AWS CLI no puede abrir el navegador**, se muestran las instrucciones para iniciar el proceso de inicio de sesión de forma manual en función del tipo de autorización que está usando. 

------
#### [ PKCE authorization ]

     La autorización de la clave de prueba para el intercambio de códigos (PKCE) se utiliza de forma predeterminada para la AWS CLI a partir de la versión 2.22.0. La URL que se muestra es una URL única que comienza por:
     + IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
     + Doble pila: *https://oidc.us-east-1.api.aws/authorize*

     Las URL de autorización de la PKCE se deben abrir en el mismo dispositivo en el que está iniciando sesión y se deben usar en un dispositivo con navegador.

     ```
     Attempting to automatically open the SSO authorization page in your 
     default browser.
     If the browser does not open or you wish to use a different device to 
     authorize the request, open the following URL:
     
     https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
     ```

------
#### [ Device authorization ]

     En las versiones anteriores a 2.22.0, la AWS CLI utiliza la autorización de dispositivos OAuth 2.0. Puede habilitar este método en las versiones más recientes mediante la opción `--use-device-code`.

     Las URL de autorización de dispositivo no se tienen que abrir en el mismo dispositivo en el que está iniciando sesión y se pueden usar en un dispositivo con o sin navegador. El formato del punto de conexión depende de la configuración:
     + IPv4: *https://device.sso.us-west-2.amazonaws.com/*
     + Doble pila: *https://device.sso.us-west-2.api.aws/*

     ```
     If the browser does not open or you wish to use a different device to 
     authorize this request, open the following URL:
     https://device.sso.us-west-2.amazonaws.com/
     
     Then enter the code:
     QCFK-N451
     ```

------

1. Seleccione la cuenta de AWS que desee utilizar de la lista que aparece. Si solo tiene autorización para usar una única cuenta, la AWS CLI selecciona esa cuenta automáticamente y omite la petición.

   ```
   There are 2 AWS accounts available to you.
   > DeveloperAccount, developer-account-admin@example.com (123456789011) 
     ProductionAccount, production-account-admin@example.com (123456789022)
   ```

1. Seleccione el rol de IAM que desee utilizar en la lista que aparece. Si solo hay un rol disponible, la AWS CLI selecciona automáticamente ese rol y omite la petición.

   ```
   Using the account ID 123456789011
   There are 2 roles available to you.
   > ReadOnly
     FullAccess
   ```

1. Especifique el [formato de salida predeterminado](cli-configure-files.md#cli-config-output), la [Región de AWS](cli-configure-files.md#cli-config-region) predeterminada a la que se enviarán los comandos y un [nombre para el perfil](cli-configure-files.md). Si especifica `default` como nombre de perfil, este perfil pasa a ser el perfil predeterminado. En el ejemplo siguiente, el usuario introduce una región predeterminada, un formato de salida predeterminado y el nombre del perfil.

   ```
   Default client Region [None]: us-west-2<ENTER>
   CLI default output format (json if not specified) [None]: json<ENTER>
   Profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
   ```

1. Un mensaje final describe la configuración del perfil completada. Ahora puede utilizar este perfil para solicitar credenciales. Utilice el comando `aws sso login` para solicitar y recuperar realmente las credenciales necesarias para ejecutar comandos. Para obtener instrucciones, consulte [Inicio de sesión en IAM Identity Center](#cli-configure-sso-login).

### Archivo de configuración generado
<a name="cli-configure-sso-generated"></a>

Estos pasos dan como resultado la creación de una sección `sso-session` y un perfil con un nombre en el archivo `config` similar al siguiente:

------
#### [ IAM Identity Center ]

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

Para compatibilidad de doble pila:

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

------
#### [ Legacy IAM Identity Center ]

```
[profile my-dev-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
```

Para compatibilidad de doble pila:

```
[profile my-dev-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
```

------

## Configurar solo la sección `sso-session` con el asistente de `aws configure sso-session`
<a name="cli-configure-sso-session"></a>

**nota**  
Esta configuración no es compatible con IAM Identity Center heredado.

El comando `aws configure sso-session` solo actualiza las secciones `sso-session` del archivo `~/.aws/config`. Ejecute el comando `aws configure sso-session` y proporcione la URL de inicio de IAM Identity Center o la URL del emisor y la región de AWS que aloja el directorio del IAM Identity Center. 

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

Para la compatibilidad de doble pila, use la URL de inicio del SSO de doble pila:

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

## Configuración manual mediante el archivo `config`
<a name="cli-configure-sso-manual"></a>

La información de configuración de IAM Identity Center se almacena en el archivo `config` y se puede editar con un editor de texto. Para añadir manualmente compatibilidad con IAM Identity Center a un perfil con nombre, debe añadir claves y valores al archivo `config`. 

### Configuración del archivo de IAM Identity Center
<a name="cli-configure-sso-manual-config"></a>

La sección `sso-session` del archivo `config` se usa para agrupar las variables de configuración para adquirir los tokens de acceso SSO, que luego se pueden usar para adquirir credenciales de AWS. Se utilizan las siguientes configuraciones:
+ **(Obligatorio)** `sso\$1start\$1url`
+ **(Obligatorio)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

Defina una sección `sso-session` y asóciela a un perfil. Los ajustes de `sso_start_url` y `sso_region` se deben definir dentro de la sección `sso-session`. Normalmente, `sso_account_id` y `sso_role_name` deben establecerse en la sección `profile` para que el SDK pueda solicitar las credenciales de SSO. 

En el siguiente ejemplo se configura el SDK para que solicite credenciales de SSO y admita la actualización automática de tokens: 

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

Para la compatibilidad de doble pila, use el formato de URL de inicio del SSO de doble pila:

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

Esto también permite reutilizar las configuraciones de `sso-session` en varios perfiles: 

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

Para la compatibilidad de doble pila, use el formato de URL de inicio del SSO de doble pila:

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

No obstante, `sso_account_id` y `sso_role_name` no son necesarios para todos los escenarios de configuración de token de SSO. Si su aplicación solo utiliza servicios de AWS que admiten la autenticación de portador, no son necesarias las credenciales de AWS tradicionales. La autenticación de portador es un esquema de autenticación HTTP que utiliza tokens de seguridad denominados tokens de portador. En este escenario, no se necesitan `sso_account_id` ni `sso_role_name`. Consulte la guía individual de su servicio de AWS para determinar si admite la autorización de token de portador.

Además, los ámbitos de registro pueden configurarse como parte de `sso-session`. El alcance es un mecanismo de OAuth 2.0 para limitar el acceso de una aplicación a la cuenta de un usuario. Una solicitud puede pedir uno o varios ámbitos y el token de acceso emitido a la solicitud se limitará a los ámbitos concedidos. Estos ámbitos definen los permisos cuya autorización se solicita para el cliente OIDC registrado y los tokens de acceso recuperados por el cliente. El siguiente ejemplo establece `sso_registration_scopes` para proporcionar acceso para enumerar cuentas/roles: 

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

Para compatibilidad de doble pila:

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

El token de autenticación se almacena en caché en el disco en el directorio `sso/cache` con un nombre de archivo basado en el nombre de la sesión. 

### Archivo de configuración de IAM Identity Center heredado
<a name="cli-configure-sso-manual-legacy"></a>

**nota**  
La actualización automática de tokens no se admite con la configuración no actualizable heredada. Le recomendamos que utilice la configuración del token de SSO.

Para agregar manualmente compatibilidad con IAM Identity Center a un perfil con nombre, debe agregar las siguientes claves y valores a la definición del perfil en el archivo `config`.
+ `sso\$1start\$1url`
+ `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`

Puede incluir otras claves y valores válidos en el archivo `.aws/config`. A continuación, se muestra un ejemplo de perfil de IAM Identity Center:

```
[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 111122223333
sso_role_name = SSOReadOnlyRole
region = us-west-2
output = json
```

Para compatibilidad de doble pila:

```
[profile my-sso-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_region = us-west-2
sso_account_id = 111122223333
sso_role_name = SSOReadOnlyRole
region = us-west-2
output = json
```

Para ejecutar comandos, primero debe utilizar [Inicio de sesión en IAM Identity Center](#cli-configure-sso-login) para solicitar y recuperar las credenciales temporales.

Para obtener más información sobre los archivos de `config` y ‎`credentials`, consulte ‎[Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md).

## Inicio de sesión en IAM Identity Center
<a name="cli-configure-sso-login"></a>

**nota**  
El proceso de inicio de sesión puede pedirle que permita que la AWS CLI acceda a sus datos. Dado que la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre `botocore`.

Para recuperar y almacenar en caché un conjunto de credenciales de IAM Identity Center, ejecute el siguiente comando de la AWS CLI para abrir su navegador predeterminado y comprobar que ha iniciado sesión en IAM Identity Center. 

```
$ aws sso login --profile my-dev-profile
SSO authorization page has automatically been opened in your default browser. 
Follow the instructions in the browser to complete this authorization request.
Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start
```

Sus credenciales de IAM Identity Center se guardan en la caché y la AWS CLI las utiliza para recuperar de forma segura las credenciales de AWS del rol de IAM especificado en el perfil. 

### Si la AWS CLI no puede abrir su navegador
<a name="cli-configure-sso-login-browser"></a>

Si la AWS CLI no puede abrir el navegador de forma automática, se muestran las instrucciones para iniciar el proceso de inicio de sesión de forma manual en función del tipo de autorización que está usando. 

------
#### [ PKCE authorization ]

La autorización de la clave de prueba para el intercambio de códigos (PKCE) se utiliza de forma predeterminada para la AWS CLI a partir de la versión 2.22.0. La URL que se muestra es una URL única que comienza por:
+ IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
+ Doble pila: *https://oidc.us-east-1.api.aws/authorize*

Las URL de autorización de la PKCE se deben abrir en el mismo dispositivo en el que está iniciando sesión y se deben usar en un dispositivo con navegador.

```
Attempting to automatically open the SSO authorization page in your 
default browser.
If the browser does not open or you wish to use a different device to 
authorize the request, open the following URL:

https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
```

------
#### [ Device authorization ]

En las versiones anteriores a 2.22.0, la AWS CLI utiliza la autorización de dispositivos OAuth 2.0. Puede habilitar este método en las versiones más recientes mediante la opción `--use-device-code`.

Las URL de autorización de dispositivo no se tienen que abrir en el mismo dispositivo en el que está iniciando sesión y se pueden usar en un dispositivo con o sin navegador.

```
If the browser does not open or you wish to use a different device to 
authorize this request, open the following URL:
https://device.sso.us-west-2.amazonaws.com/

Then enter the code:
QCFK-N451
```

------

También puede especificar qué perfil de `sso-session` utilizar al iniciar la sesión utilizando el parámetro `--sso-session` del comando `aws sso login`. La opción `sso-session` no está disponible para IAM Identity Center heredado.

```
$ aws sso login --sso-session my-dev-session
```

A partir de la versión 2.22.0, la autorización de la PKCE es la predeterminada. Para usar la autorización del dispositivo para iniciar sesión, agregue la opción `--use-device-code`.

```
$ aws sso login --profile my-dev-profile --use-device-code
```

El token de autenticación se almacena en caché en el disco en el directorio `~/.aws/sso/cache` con un nombre de archivo basado en la `sso_start_url`. 

## Ejecución de un comando con el perfil de IAM Identity Center
<a name="cli-configure-sso-use"></a>

Una vez que haya iniciado sesión, puede utilizar estas credenciales para invocar comandos de la AWS CLI con el perfil con nombre asociado. En el ejemplo siguiente se muestra un comando que usa un perfil:

```
$ aws sts get-caller-identity --profile my-dev-profile
```

Mientras haya iniciado sesión en IAM Identity Center y esas credenciales almacenadas en caché no hayan caducado, la AWS CLI renovará automáticamente las credenciales de AWS caducadas cuando sea necesario. Sin embargo, si sus credenciales de IAM Identity Center caducan, debe renovarlas explícitamente iniciando sesión de nuevo en la cuenta de IAM Identity Center.

## Cierre de sesiones de IAM Identity Center
<a name="cli-configure-sso-logout"></a>

Cuando haya terminado de utilizar su perfil de IAM Identity Center, puede dejar que las credenciales caduquen o ejecutar el siguiente comando para eliminar las credenciales almacenadas en caché.

```
$ aws sso logout
Successfully signed out of all SSO profiles.
```

## Solución de problemas
<a name="cli-configure-sso-tshoot"></a>

Si tiene problemas con la AWS CLI, consulte [Solución de errores para la AWS CLI](cli-chap-troubleshooting.md) para ver los pasos de solución de problemas.

## Recursos relacionados
<a name="cli-configure-sso-resources"></a>

Los recursos adicionales son los siguientes.
+ [Conceptos de AWS IAM Identity Center para la AWS CLI](cli-configure-sso-concepts.md)
+ [Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI](cli-configure-sso-tutorial.md)
+ [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md)
+ [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) en la *AWS CLI version 2 Reference*
+ [Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) en la *Guía del usuario de Amazon CodeCatalyst*
+ [Ámbitos de acceso de OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*
+ [Tutoriales de introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) en la *Guía del usuario del IAM Identity Center*

# Conceptos de AWS IAM Identity Center para la AWS CLI
<a name="cli-configure-sso-concepts"></a>

En este tema se describen los conceptos clave de AWS IAM Identity Center (IAM Identity Center). IAM Identity Center es un servicio de IAM basado en la nube que simplifica la administración del acceso de los usuarios a múltiples Cuentas de AWS, aplicaciones, SDK y herramientas mediante la integración con los proveedores de identidad (IdP) existentes. Permite un inicio de sesión único seguro, la administración de permisos y la auditoría a través de un portal de usuarios centralizado, lo que agiliza el control de identidades y accesos para las organizaciones.

**Topics**
+ [

## Qué es IAM Identity Center
](#cli-configure-sso-concepts-what)
+ [

## Términos
](#cli-configure-sso-terms)
+ [

## Cómo funciona IAM Identity Center
](#cli-configure-sso-concepts-process)
+ [

## Recursos adicionales
](#cli-configure-sso-concepts-resources)

## Qué es IAM Identity Center
<a name="cli-configure-sso-concepts-what"></a>

IAM Identity Center es un servicio de administración de identidades y accesos (IAM) basado en la nube que le permite administrar de forma centralizada el acceso a múltiples Cuentas de AWS y aplicaciones empresariales.

Proporciona un portal de usuarios en el que los usuarios autorizados pueden acceder a las Cuentas de AWS y las aplicaciones para las que se les haya concedido permiso utilizando sus credenciales corporativas actuales. Esto permite a las organizaciones aplicar políticas de seguridad coherentes, así como agilizar la administración del acceso de los usuarios.

Independientemente del IdP que utilice, el Centro de identidades de IAM abstrae esas distinciones. Por ejemplo, puede conectar Microsoft Azure AD como se describe en el artículo del blog [The Next Evolution in IAM Identity Center](https://aws.amazon.com/blogs/aws/the-next-evolution-in-aws-single-sign-on/) (La próxima evolución en el Centro de identidades de IAM).

**nota**  
Para obtener información sobre el uso de autenticación de portador, que no utiliza ID de cuenta ni rol, consulte [Configuración para utilizar la AWS CLI con CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) en la *Guía del usuario de Amazon CodeCatalyst*.

## Términos
<a name="cli-configure-sso-terms"></a>

Los términos más comunes en el uso de IAM Identity Center son los siguientes:

**Proveedor de identidad (IdP)**  
Un sistema de administración de identidades como IAM Identity Center, Microsoft Azure AD, Okta o su propio servicio de directorio corporativo.

**AWS IAM Identity Center**  
IAM Identity Center es el servicio de proveedor de identidades propiedad de AWS. Antes se le conocía como AWS Single Sign-On y los SDK y las herramientas conservan los espacios de nombres de las API de `sso` para garantizar la compatibilidad con versiones anteriores. Para más información, consulte [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) en la *Guía del usuario de AWS IAM Identity Center*.

**URL de Portal de acceso a AWS, URL de inicio del SSO, URL de inicio**  
La URL exclusiva de IAM Identity Center de la organización para acceder a las Cuentas de AWS, los servicios y los recursos autorizados.

**URL del emisor**  
La URL del emisor exclusiva de IAM Identity Center de la organización para el acceso programático a las Cuentas de AWS, los servicios y los recursos autorizados. A partir de la versión 2.22.0 de la AWS CLI, la URL del emisor se puede utilizar indistintamente con la URL de inicio.

**Federación**  
Se trata del proceso que permite establecer la confianza entre IAM Identity Center y un proveedor de identidades a la hora de habilitar el inicio de sesión único (SSO).

**Cuentas de AWS**  
Las Cuentas de AWS para las que se proporciona acceso a los usuarios a través de AWS IAM Identity Center.

**Conjuntos de permisos, credenciales de AWS, credenciales de sigv4**  
Conjuntos predefinidos de permisos que se pueden asignar a usuarios o grupos para concederles acceso a los Servicios de AWS.

**Ámbitos de registro, ámbitos de acceso, ámbitos**  
Los ámbitos son un mecanismo de OAuth 2.0 para limitar el acceso de una aplicación a la cuenta de un usuario. Una solicitud puede pedir uno o varios ámbitos y el token de acceso emitido a la solicitud se limita a los ámbitos concedidos. Para obtener información sobre los ámbitos, consulte [Ámbitos de acceso](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*.

**Tokens, token de actualización, token de acceso**  
Los tokens son credenciales de seguridad temporales que se emiten en la autenticación. Estos tokens contienen información sobre su identidad y los permisos que se le han concedido.  
Cuando accede a una aplicación o recurso de AWS a través del portal de IAM Identity Center, se presenta tu token a AWS para la autenticación y autorización. Esto permite a AWS verificar su identidad y asegurarse de que cuenta con los permisos necesarios para realizar las acciones solicitadas.   
El token de autenticación se almacena en caché en el disco en el directorio `~/.aws/sso/cache` con un nombre de archivo JSON basado en el nombre de la sesión.

**Sesión**  
Una sesión en IAM Identity Center hace referencia al período durante el cual un usuario está autenticado y autorizado a acceder a las aplicaciones o recursos de AWS. Cuando un usuario inicia sesión en el portal de IAM Identity Center, se establece una sesión y el token del usuario es válido durante un período específico. Para obtener más información sobre la duración de la sesión, consulte [Set session duration](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) en la *Guía del usuario de AWS IAM Identity Center*.  
Durante la sesión, puede navegar entre diferentes aplicaciones y cuentas de AWS sin tener que volver a autenticarse, siempre y cuando la sesión permanezca activa. Cuando la sesión caduque, deberá volver a iniciar sesión para renovar el acceso.  
Las sesiones de IAM Identity Center ayudan a proporcionar una experiencia de usuario fluida y, al mismo tiempo, aplican las prácticas recomendadas de seguridad mediante la limitación de la validez de las credenciales de acceso de los usuarios.

**Concesión de códigos de autorización con clave de prueba para el intercambio de códigos (PKCE)**  
A partir de la versión 2.22.0, la clave de prueba para el intercambio de códigos (PKCE) es un flujo de concesión de autenticación de OAuth 2.0 para dispositivos con navegador. La PKCE es una forma sencilla y segura de autenticarse y obtener el consentimiento para acceder a los recursos de AWS desde ordenadores de sobremesa y dispositivos móviles con navegadores web. Este es el comportamiento de autorización predeterminado. Para obtener más información sobre la PKCE, consulte [Authorization Code Grant with PKCE](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#auth-code-grant-pkce) en la *Guía del usuario de AWS IAM Identity Center*.

**Concesión de autorización de dispositivo**  
Un flujo de concesión de autenticación de OAuth 2.0 para dispositivos con o sin navegador web. Para obtener más información sobre cómo configurar la duración de las sesiones, consulte [Device Authorization Grant](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#device-auth-grant) en la *Guía del usuario de AWS IAM Identity Center*.

## Cómo funciona IAM Identity Center
<a name="cli-configure-sso-concepts-process"></a>

IAM Identity Center se integra con el proveedor de identidades de su organización, por ejemplo, IAM Identity Center, Microsoft Azure AD u Okta. Los usuarios se autentican con este proveedor de identidades y, a continuación, IAM Identity Center asigna dichas identidades a los permisos y accesos adecuados de su entorno de AWS.

En el siguiente flujo de trabajo de IAM Identity Center, se da por hecho que ya ha configurado la AWS CLI para utilizar IAM Identity Center:

1. Ejecute el comando `aws sso login` en el terminal que desee.

1. Inicie sesión en su Portal de acceso a AWS para comenzar una nueva sesión. 
   + Al iniciar una nueva sesión, recibirá un token de actualización y un token de acceso que se almacena en la caché.
   + Si ya tiene una sesión activa, se reutiliza la sesión existente y caducará cuando lo haga la sesión existente.

1. En función del perfil que haya configurado en su archivo `config`, IAM Identity Center asume los conjuntos de permisos adecuados y le concede acceso a las Cuentas de AWS y aplicaciones correspondientes. 

1. Las AWS CLI, los SDK y las herramientas utilizan su rol de IAM asumido para realizar llamadas a los Servicios de AWS, por ejemplo, para crear buckets de Amazon S3 hasta que caduque la sesión.

1. El token de acceso obtenido de IAM Identity Center se comprueba cada hora y se actualiza automáticamente mediante el token de actualización.
   + Si el token de acceso ha caducado, el SDK utiliza el token de actualización para obtener un nuevo token de acceso. A continuación, se comparan las duraciones de las sesiones de estos tokens y, si el token de actualización no ha caducado, IAM Identity Center proporciona un nuevo token de acceso.
   + Si el token de actualización ha caducado, no se proporcionan nuevos tokens de acceso y la sesión habrá finalizado.

1. Las sesiones finalizan cuando los tokens de actualización caducan o cuando cierra la sesión manualmente mediante el comando `aws sso logout`. Se eliminan las credenciales almacenadas en caché. Para seguir accediendo a los servicios mediante IAM Identity Center, debe iniciar una nueva sesión con el comando `aws sso login`.

## Recursos adicionales
<a name="cli-configure-sso-concepts-resources"></a>

Los recursos adicionales son los siguientes.
+ [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md)
+ [Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI](cli-configure-sso-tutorial.md)
+ [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md)
+ [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) en la *AWS CLI version 2 Reference*
+ [Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) en la *Guía del usuario de Amazon CodeCatalyst*
+ [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) en la * Guía del usuario de AWS IAM Identity Center*
+ [Ámbitos de acceso de OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*
+ [Set session duration](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) en la * Guía del usuario de AWS IAM Identity Center*
+ [Tutoriales de introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) en la *Guía del usuario del IAM Identity Center*

# Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI
<a name="cli-configure-sso-tutorial"></a>

En este tema se describe cómo configurar la AWS CLI para autenticar a los usuarios con AWS IAM Identity Center (IAM Identity Center) actual, de manera que se recuperen las credenciales para ejecutar comandos de la AWS Command Line Interface (AWS CLI) para Amazon Simple Storage Service (Amazon S3). 

**Topics**
+ [

## Paso 1: autenticación en IAM Identity Center
](#cli-configure-sso-tutorial-authentication)
+ [

## Paso 2: recopilación de la información de IAM Identity Center
](#cli-configure-sso-tutorial-gather)
+ [

## Paso 3: creación de buckets de Amazon S3
](#cli-configure-sso-tutorial-buckets)
+ [

## Paso 4: Instalar la AWS CLI
](#cli-configure-sso-tutorial-install)
+ [

## Paso 5: configuración del perfil de la AWS CLI
](#cli-configure-sso-tutorial-configure)
+ [

## Paso 6: inicio de sesión en IAM Identity Center
](#cli-configure-sso-tutorial-login.title)
+ [

## Paso 7: ejecución de comandos de Amazon S3
](#cli-configure-sso-tutorial-commands)
+ [

## Paso 8: cierre de sesión en IAM Identity Center
](#cli-configure-sso-tutorial-logout)
+ [

## Paso 9: eliminación de recursos
](#cli-configure-sso-tutorial-cleanup)
+ [

## Solución de problemas
](#cli-configure-sso-tutorial-tshoot)
+ [

## Recursos adicionales
](#cli-configure-sso-tutorial-resources.title)

## Paso 1: autenticación en IAM Identity Center
<a name="cli-configure-sso-tutorial-authentication"></a>

Obtenga acceso a la autenticación de SSO en IAM Identity Center. Elija uno de los siguientes métodos para acceder a las credenciales de AWS.

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

Siga las instrucciones en [Introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del usuario de AWS IAM Identity Center*. Este proceso activa IAM Identity Center, crea un usuario administrativo y agrega un conjunto apropiado de permisos de privilegio mínimo.

**nota**  
Cree un conjunto de permisos que aplique los permisos de privilegio mínimo. 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. 

Salga del portal e inicie sesión de nuevo para ver las Cuentas de AWS, los detalles sobre el acceso programático y las opciones para `Administrator` o `PowerUserAccess`. Seleccione `PowerUserAccess` cuando trabaje con el SDK.

### Ya tengo acceso a AWS a través de un proveedor de identidades federado administrado por mi empleador (como Azure AD u Okta)
<a name="federated-access"></a>

Inicie sesión en AWS a través del portal de su proveedor de identidades. 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. 

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 AWS a través del portal de acceso de AWS administrado por mi empleador
<a name="accessportal-access"></a>

Inicie sesión en AWS a través del portal de acceso de AWS. 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 a través de un proveedor de identidades federado administrado por mi empleador
<a name="customfederated-access"></a>

Contacte con su equipo de TI para obtener ayuda.

## Paso 2: recopilación de la información de IAM Identity Center
<a name="cli-configure-sso-tutorial-gather"></a>

Tras acceder a AWS, recopile la información que este contiene realizando lo siguiente:

1. Recopilación de los valores `SSO Start URL` y `SSO Region` que necesita para ejecutar `aws configure sso`

   1. En el portal de acceso de AWS, seleccione el conjunto de permisos que utiliza para el desarrollo y seleccione el enlace **Claves de acceso**.

   1. En el cuadro de diálogo **Obtener credenciales**, elija la pestaña que coincida con su sistema operativo. 

   1. Elija el método de **credenciales de IAM Identity Center** para obtener los valores `SSO Start URL` y `SSO Region`.

1. Como alternativa, a partir de la versión 2.22.0, puede utilizar la nueva URL del emisor en lugar de la URL de inicio. La URL del emisor se ubica en la consola de AWS IAM Identity Center en una de las siguientes ubicaciones:
   + En la página del **panel**, la URL del emisor aparece en el resumen de la configuración.
   + En la página de **configuración**, la URL del emisor se encuentra en los ajustes del **origen de identidad**. 

1. Para obtener información sobre qué ámbitos se deben registrar, consulte [Ámbitos de acceso de OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*.

## Paso 3: creación de buckets de Amazon S3
<a name="cli-configure-sso-tutorial-buckets"></a>

Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

Para este tutorial, cree algunos buckets que pueda recuperar más tarde en una lista.

## Paso 4: Instalar la AWS CLI
<a name="cli-configure-sso-tutorial-install"></a>

Para instalar la AWS CLI, siga las instrucciones de su sistema operativo. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md).

Una vez instalada, puede verificar la instalación abriendo el terminal que prefiera y ejecutando el siguiente comando. Debería aparecer la versión instalada de la AWS CLI. 

```
$ aws --version
```

## Paso 5: configuración del perfil de la AWS CLI
<a name="cli-configure-sso-tutorial-configure"></a>

Configure su perfil con uno de los siguientes métodos.

### Configurar el perfil con el asistente de `aws configure sso`
<a name="li-configure-sso-tutorial-configure-wizard"></a>

La sección `sso-session` del archivo `config` se usa para agrupar las variables de configuración para adquirir los tokens de acceso SSO, que luego se pueden usar para adquirir credenciales de AWS. Se utilizan las siguientes configuraciones:
+ **(Obligatorio)** `sso\$1start\$1url`
+ **(Obligatorio)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

Defina una sección `sso-session` y asóciela a un perfil. Los ajustes de `sso_start_url` y `sso_region` se deben definir dentro de la sección `sso-session`. Normalmente, `sso_account_id` y `sso_role_name` deben establecerse en la sección `profile` para que el SDK pueda solicitar las credenciales de SSO. 

En el siguiente ejemplo se configura el SDK para que solicite credenciales de SSO y admita la actualización automática de tokens: 

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

Para la compatibilidad de doble pila, puede usar el formato de URL de inicio del SSO de doble pila:

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

La autorización de la clave de prueba para el intercambio de códigos (PKCE) se utiliza de forma predeterminada para la AWS CLI a partir de la versión 2.22.0 y se debe utilizar en dispositivos con navegador. Para seguir utilizando la autorización de dispositivos, agregue la opción `--use-device-code`.

```
$ aws configure sso --use-device-code
```

### Configuración manual mediante el archivo `config`
<a name="cli-configure-sso-tutorial-configure-manual"></a>

La sección `sso-session` del archivo `config` se usa para agrupar las variables de configuración para adquirir los tokens de acceso SSO, que luego se pueden usar para adquirir credenciales de AWS. Se utilizan las siguientes configuraciones:
+ **(Obligatorio)** `sso\$1start\$1url`
+ **(Obligatorio)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

Defina una sección `sso-session` y asóciela a un perfil. `sso_region` y`sso_start_url` deben establecerse en la sección `sso-session`. Normalmente, `sso_account_id` y `sso_role_name` deben establecerse en la sección `profile` para que el SDK pueda solicitar las credenciales de SSO. 

En el siguiente ejemplo se configura el SDK para que solicite credenciales de SSO y admita la actualización automática de tokens: 

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

Para la compatibilidad de doble pila, use el formato de URL de inicio del SSO de doble pila:

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

El token de autenticación se almacena en caché en el disco en el directorio `~/.aws/sso/cache` con un nombre de archivo basado en el nombre de la sesión. 

## Paso 6: inicio de sesión en IAM Identity Center
<a name="cli-configure-sso-tutorial-login.title"></a>

**nota**  
El proceso de inicio de sesión puede pedirle que permita que la AWS CLI acceda a sus datos. Dado que la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre `botocore`.

Para recuperar y almacenar en caché las credenciales de IAM Identity Center, ejecute el siguiente comando de la AWS CLI para abrir su navegador predeterminado y compruebe que ha iniciado sesión en IAM Identity Center.

```
$ aws sso login --profile my-dev-profile
```

A partir de la versión 2.22.0, la autorización de la PKCE es la predeterminada. Para usar la autorización del dispositivo para iniciar sesión, agregue la opción `--use-device-code`.

```
$ aws sso login --profile my-dev-profile --use-device-code
```

## Paso 7: ejecución de comandos de Amazon S3
<a name="cli-configure-sso-tutorial-commands"></a>

Para generar una lista de los buckets que creó anteriormente, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). En el siguiente ejemplo se enumeran todos los buckets de Amazon S3.

```
$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2
```

## Paso 8: cierre de sesión en IAM Identity Center
<a name="cli-configure-sso-tutorial-logout"></a>

Cuando haya terminado de utilizar su perfil de IAM Identity Center, ejecute el siguiente comando para eliminar las credenciales almacenadas en caché.

```
$ aws sso logout
Successfully signed out of all SSO profiles.
```

## Paso 9: eliminación de recursos
<a name="cli-configure-sso-tutorial-cleanup"></a>

Cuando termine este tutorial, elimine todos los recursos que haya creado durante el tutorial y que ya no necesite, incluidos los buckets de Amazon S3.

## Solución de problemas
<a name="cli-configure-sso-tutorial-tshoot"></a>

Si tiene problemas con la AWS CLI, consulte [Solución de errores para la AWS CLI](cli-chap-troubleshooting.md) para ver los pasos comunes de solución de problemas.

## Recursos adicionales
<a name="cli-configure-sso-tutorial-resources.title"></a>

Los recursos adicionales son los siguientes.
+ [Conceptos de AWS IAM Identity Center para la AWS CLI](cli-configure-sso-concepts.md)
+ [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md)
+ [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md)
+ [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) en la *AWS CLI version 2 Reference*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) en la *AWS CLI version 2 Reference*
+ [Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) en la *Guía del usuario de Amazon CodeCatalyst*
+ [Ámbitos de acceso de OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) en la *Guía del usuario del IAM Identity Center*
+ [Tutoriales de introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) en la *Guía del usuario del IAM Identity Center*

# Autenticación con credenciales a corto plazo para la AWS CLI
<a name="cli-authentication-short-term"></a>

Recomendamos configurar el SDK o la herramienta para utilizar la [autenticación del Centro de identidades de IAM](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) con opciones de duración de sesión ampliada. Sin embargo, puede copiar y utilizar las credenciales temporales que están disponibles en el portal de acceso de AWS. 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.

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

1. Siga [estas instrucciones](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) para copiar las credenciales del rol de IAM desde el portal de acceso de AWS.

   1. Para el paso 2 de las instrucciones vinculadas, elija la cuenta de AWS y el nombre del rol de IAM que le concede acceso para sus necesidades de desarrollo. Este rol suele tener un nombre como **PowerUserAccess** o **Developer**. 

   1. Para el paso 4, seleccione la opción **Agregar un perfil al archivo de credenciales de AWS** y copie el contenido. 

1. Cree o abra el archivo `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 [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md). 

1. Agregue el siguiente texto al archivo `credentials` compartido. Reemplace los valores de ejemplo por las credenciales que ha copiado. 

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

1. Agregue la región y el formato predeterminados que prefiera al archivo compartido `config`. 

   ```
   [default]
   region=us-west-2
   output=json
   
   [profile user1]
   region=us-east-1
   output=text
   ```

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 2a 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.

Repita estos pasos cada vez que caduquen las credenciales.

# Uso de un rol de IAM de la AWS CLI
<a name="cli-configure-role"></a>

Un [rol de AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) es una herramienta de autorización que permite a un usuario conseguir permisos adicionales o distintos, u obtener permisos para realizar acciones en otra cuenta de AWS. 

**Topics**
+ [

## Requisitos previos
](#cli-role-prereqs)
+ [

## Información general del uso de roles de IAM
](#cli-role-overview)
+ [

## Configuración y uso de un rol
](#cli-role-prepare)
+ [

## Uso de la autenticación multifactor
](#cli-configure-role-mfa)
+ [

## Roles entre cuentas e ID externo
](#cli-configure-role-xaccount)
+ [

## Especificación de un nombre de sesión de rol para simplificar las auditorías
](#cli-configure-role-session-name)
+ [

## Adopción de un rol con una identidad web
](#cli-configure-role-oidc)
+ [

## Borrado de las credenciales almacenadas en memoria caché
](#cli-configure-role-cache)

## Requisitos previos
<a name="cli-role-prereqs"></a>

Para utilizar los comandos de `iam`, debe instalar y configurar AWS CLI. Esto incluye la configuración de un perfil definido, como asumir que un rol está combinado con otro método de credenciales. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md). 

## Información general del uso de roles de IAM
<a name="cli-role-overview"></a>

Puede configurar la AWS Command Line Interface (AWS CLI) para utilizar un rol de IAM definiendo un perfil para dicho rol en el archivo `~/.aws/config`. 

En el siguiente ejemplo se muestra un perfil de rol llamado `marketingadmin`. Si ejecuta comandos con `--profile marketingadmin` (o lo especifica con la variable de entorno [AWS\$1DEFAULT\$1PROFILE](cli-configure-envvars.md)), la AWS CLI utiliza las credenciales definidas en un perfil separado de `user1` para adoptar el rol con el nombre de recurso de Amazon (ARN) `arn:aws:iam::123456789012:role/marketingadminrole`. Puede ejecutar cualquier operación permitida por los permisos asignados a ese rol.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
```

Debe especificar un `source_profile` que apunte a un perfil con nombre independiente que contenga credenciales de usuario con permiso para utilizar el rol. En el ejemplo anterior, el perfil `marketingadmin` utiliza las credenciales en el perfil `user1`. Al especificar que un comando de la AWS CLI debe utilizar el perfil `marketingadmin`, la AWS CLI busca automáticamente las credenciales del perfil `user1` vinculado y las utiliza para solicitar credenciales temporales para el rol de IAM especificado. La CLI usa la operación [sts:AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) en segundo plano para llevar esto a cabo. Estas credenciales temporales se utilizan para ejecutar el comando de la AWS CLI solicitado. El rol especificado debe tener políticas de permisos de IAM asociadas que permitan que el comando de la AWS CLI solicitado se ejecute.

Para ejecutar un comando AWS CLI desde una instancia Amazon Elastic Compute Cloud (Amazon EC2) o un contenedor de Amazon Elastic Container Service (Amazon ECS), puede utilizar un rol de IAM asociado al perfil de instancia o al contenedor. Si no especifica ningún perfil o no establece ninguna variable de entorno, ese rol se utiliza directamente. De este modo, puede evitar el almacenamiento de las claves de acceso de larga duración en las instancias. También puede utilizar esos roles de instancia o contenedor solo para obtener credenciales para otro rol. Para ello, utilice `credential_source` (en lugar de `source_profile`) para especificar cómo encontrar las credenciales. El atributo `credential_source` es compatible con los siguientes valores:
+ `Environment`: recupera las credenciales fuente de las variables de entorno.
+ `Ec2InstanceMetadata`: utiliza el rol de IAM asociado al perfil de instancia de Amazon EC2.
+ `EcsContainer`: utiliza el rol de IAM adjunto al contenedor de Amazon ECS.

En el siguiente ejemplo, se muestra el mismo rol `marketingadminrole` que se utilizó al hacer referencia a un perfil de instancia de Amazon EC2:

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
```

Cuando invoca un rol, tiene otras opciones que puede exigir; por ejemplo, el uso de la autenticación multifactor y de un ID externo (que compañías de terceros utilizan para acceder a los recursos de sus clientes). También puede especificar nombres de sesión de roles únicos que puedan auditarse más fácilmente en registros AWS CloudTrail.

## Configuración y uso de un rol
<a name="cli-role-prepare"></a>

Cuando se ejecutan comandos utilizando un perfil que especifica un rol de IAM, la AWS CLI emplea las credenciales del perfil fuente para llamar a AWS Security Token Service (AWS STS) y solicitar credenciales temporales para el rol especificado. El usuario del perfil fuente debe tener permiso para llamar a `sts:assume-role` en el rol del perfil especificado. El rol debe tener una relación de confianza que permita al usuario del perfil de origen utilizarlo. El proceso de recuperación y posterior uso de credenciales temporales en un rol a menudo se denomina *asumir el rol*.

Puede crear un rol en IAM con los permisos que quiera que adopten los usuarios siguiendo el procedimiento de [Creación de un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) de la *Guía del usuario de AWS Identity and Access Management*. Si el rol y el usuario de del perfil de origen se encuentran en la misma cuenta, puede introducir su propio ID de cuenta al configurar la relación de confianza del rol.

Después de crear el rol, modifique la relación de confianza para permitir que el usuario de lo asuma. 

En el siguiente ejemplo se muestra una política de confianza que puede asociarse a un rol. Esta política permite asumir el rol a cualquier usuario de la cuenta 123456789012, ***si*** el administrador de dicha cuenta le concede de forma explícita el permiso `sts:AssumeRole`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

La política de confianza no concede permisos. El administrador de la cuenta debe delegar el permiso para asumir el rol a usuarios individuales asociando una política a los permisos adecuados. En el siguiente ejemplo, se muestra una política que puede asociarse a un usuario y que le permite asumir únicamente el rol `marketingadminrole`. Para obtener más información acerca de cómo conceder permisos de acceso a los usuarios para asumir un rol, consulte [Conceción de permisos de usuario para cambiar de rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) en la *Guía del usuario de IAM*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
    }
  ]
}
```

------

El usuario no necesita permisos adicionales para ejecutar los comandos de la AWS CLI con el perfil del rol. En cambio, los permisos para ejecutar el comando proceden de los asociados al *rol*. Puede asociar políticas de permisos al rol para especificar qué acciones pueden realizarse en relación con qué recursos de AWS. Para obtener más información acerca de cómo asociar permisos a un rol (que funciona exactamente igual que para un usuario), consulte [Cambio de permisos de un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) en la *Guía del usuario de IAM*.

Ahora que ya tiene el perfil del rol, los permisos del rol, la relación de confianza del rol y los permisos de usuario configurados correctamente, puede utilizar el rol en la línea de comandos invocando la opción `--profile`. Por ejemplo, el siguiente comando llama al comando Amazon S3 de `ls` utilizando los permisos adjuntos al rol `marketingadmin` que se definieron en el ejemplo que se incluye al principio de este tema.

```
$ aws s3 ls --profile marketingadmin
```

Si desea utilizar el rol para varias llamadas, puede configurar la variable de entorno `AWS_PROFILE` para la sesión actual desde la línea de comandos. Siempre que esa variable de entorno se haya definido, no será necesario especificar la opción `--profile` en cada comando. 

**Linux o macOS**

```
$ export AWS_PROFILE=marketingadmin
```

**Windows**

```
C:\> setx AWS_PROFILE marketingadmin
```

Para obtener información acerca de la configuración de los usuarios y los roles, consulte [Identidades de IAM (usuarios, grupos y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) y [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-roles.html) en la *Guía del usuario de IAM*.

## Uso de la autenticación multifactor
<a name="cli-configure-role-mfa"></a>

Para mayor seguridad, puede pedir a los usuarios que proporcionen una clave única generada a partir de un dispositivo de autenticación multifactor (MFA), un dispositivo U2F o una aplicación móvil cuando realicen una llamada utilizando el perfil del rol.

En primer lugar, puede elegir modificar la relación de confianza del rol de IAM para el que se requiere MFA. Esto impide que una persona utilice el rol sin autenticarse primero mediante MFA. A modo de ejemplo, vea la línea `Condition` en el siguiente ejemplo. Esta política permite a un usuario llamado `anika` adoptar el rol asociado a la política, pero solo si se autentica mediante MFA. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
      "Action": "sts:AssumeRole",
      "Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
    }
  ]
}
```

------

A continuación, agregue una línea al perfil del rol que especifique el ARN del dispositivo MFA del usuario. El siguiente archivo `config` de ejemplo muestra dos perfiles de rol que utilizan las claves de acceso del usuario `anika` para solicitar credenciales temporales para el rol `cli-role`. El usuario `anika` tiene permisos para asumir el rol, concedidos por la política de confianza del rol.

```
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile cli-user]
region = us-west-2
output = json
```

El valor `mfa_serial` puede ser un ARN, tal como se muestra, o el número de serie de un token de MFA de hardware.

El primer perfil, `role-without-mfa`, no requiere MFA. Sin embargo, como la política de confianza asociada al rol del ejemplo anterior requiere MFA, cualquier intento de ejecutar un comando con este perfil produce un error.

```
$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
```

La segunda entrada del perfil, `role-with-mfa`, identifica el dispositivo MFA que se va a utilizar. Cuando el usuario intenta ejecutar un comando de la AWS CLI con este perfil, la AWS CLI le pide al usuario que introduzca la contraseña de un solo uso (OTP) proporcionada a través del dispositivo MFA. Si la autenticación MFA se realiza correctamente, el comando realiza la operación solicitada. La OTP no se muestra en la pantalla.

```
$ aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user:
{
    "Users": [
        {
            ...
```

## Roles entre cuentas e ID externo
<a name="cli-configure-role-xaccount"></a>

Puede permitir que los usuarios de utilicen roles que pertenezcan a diferentes cuentas si configura el rol como un rol entre cuentas. Al crear un rol, establezca el tipo de rol en **Another AWS account (Otra cuenta de )**, tal como se describe en [Creating a Role to Delegate Permissions to an IAM user (Creación de un rol para delegar permisos a un usuario de IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Si lo desea, seleccione **Require MFA (Requerir MFA)**. La opción **Require MFA (Requerir NFA)** configura la condición apropiada en la relación de confianza, tal y como se describe en [Uso de la autenticación multifactor](#cli-configure-role-mfa).

Si utiliza un [ID externo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) para ofrecer mayor control sobre quién puede utilizar un rol entre cuentas, también debe añadir el parámetro `external_id` al perfil del rol. Esto se utiliza normalmente solo cuando la otra cuenta la controla alguien ajeno a su empresa u organización.

```
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```

## Especificación de un nombre de sesión de rol para simplificar las auditorías
<a name="cli-configure-role-session-name"></a>

Cuando muchas personas comparten un rol, la auditoría se convierte en un desafío más. Deseará asociar cada operación invocada con la persona que invocó la acción. Sin embargo, cuando la persona utiliza un rol, la asunción del rol por parte de la persona es una acción independiente de la invocación de una operación y debe relacionar manualmente las dos.

Puede simplificar este proceso especificando nombres de sesión de rol únicos cuando los usuarios asumen un rol. Para ello, añada un parámetro `role_session_name` a cada perfil con nombre en el archivo `config` que especifica un rol. El valor `role_session_name` se pasa a la operación `AssumeRole` y pasa a formar parte del ARN de la sesión de rol. También se incluye en los registros de AWS CloudTrail de todas las operaciones registradas.

Por ejemplo, podría crear un perfil basado en roles de la siguiente manera. 

```
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
```

De este modo, la sesión del rol tendría el siguiente ARN.

```
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
```

Además, todos los registros de AWS CloudTrail incluyen el nombre de la sesión del rol en la información obtenida para cada operación.

## Adopción de un rol con una identidad web
<a name="cli-configure-role-oidc"></a>

Puede configurar un perfil para indicar que la AWS CLI debe asumir un rol mediante la [identidad federada web y Open ID Connect (OIDC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). Al especificar esto en un perfil, la AWS CLI realiza automáticamente la llamada a AWS STS de `AssumeRoleWithWebIdentity` correspondiente.

**nota**  
Cuando especifica un perfil que utiliza un rol de IAM, la AWS CLI realiza las llamadas correspondientes para recuperar las credenciales temporales. Estas credenciales se guardan en `~/.aws/cli/cache`. Los comandos de la AWS CLI posteriores que especifican el mismo perfil utilizan las credenciales temporales almacenadas en caché hasta que caducan. En ese momento, la AWS CLI actualiza automáticamente las credenciales.

Para recuperar y utilizar credenciales temporales utilizando identidades federadas web, puede especificar los siguientes valores de configuración en un perfil compartido:

[role\$1arn](#cli-configure-role)  
Especifica el ARN del rol que se va a adoptar.

web\$1identity\$1token\$1file  
Especifica la ruta a un archivo que contiene un token de acceso de OAuth 2.0 o un ID de token de OpenID Connect proporcionado por el proveedor de identidad. La AWS CLI carga este archivo y pasa su contenido como el argumento `WebIdentityToken` de la operación `AssumeRoleWithWebIdentity`.

[role\$1session\$1name](#cli-configure-role-session-name)  
Especifica un nombre opcional que se aplica a esta sesión de asunción de rol.

A continuación, se muestra un ejemplo de la configuración mínima necesaria para configurar un rol de adopción con un perfil de identidad web:

```
# In ~/.aws/config

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

También puede establecer esta configuración utilizando [variables de entorno](cli-configure-envvars.md):

AWS\$1ROLE\$1ARN  
ARN del rol que se va a adoptar.

AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE  
La ruta al archivo de token de identidad web.

AWS\$1ROLE\$1SESSION\$1NAME  
El nombre aplicado a esta sesión de asunción de rol.

**nota**  
Actualmente, estas variables de entorno solo se aplican al rol que se va a adoptar con un proveedor de identidades web. No se aplican a la configuración general del proveedor de roles de adopción.

## Borrado de las credenciales almacenadas en memoria caché
<a name="cli-configure-role-cache"></a>

Al utilizar un rol, la AWS CLI almacena en caché localmente las credenciales temporales hasta que caducan. La próxima vez que intente utilizarlas, la AWS CLI intentará renovarlas en su nombre. 

Si las credenciales temporales del rol se [revocan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html), no se renuevan automáticamente y se producirá un error al intentar utilizarlas. Sin embargo, puede eliminar la caché para obligar a la AWS CLI a que recupere nuevas credenciales.

**Linux o macOS**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

# Autenticación con credenciales de usuario de IAM para la AWS CLI
<a name="cli-authentication-user"></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).

En esta sección se explica cómo configurar las opciones básicas con un usuario de IAM. Entre ellas se incluyen sus credenciales de seguridad con los archivos `config` y `credentials`. En su lugar, consulte las instrucciones de configuración para AWS IAM Identity Center, consulte [Configuración de la autenticación de IAM Identity Center con la AWS CLI](cli-configure-sso.md).

**Contents**
+ [

## Paso 1: Crear el usuario de IAM
](#cli-authentication-user-create)
+ [

## Paso 2: Obtener las claves de acceso
](#cli-authentication-user-get)
+ [

## Paso 3: Configurar el AWS CLI
](#cli-authentication-user-configure.title)
  + [

### Uso de `aws configure`
](#cli-authentication-user-configure-wizard)
  + [

### Importación de claves de acceso mediante un archivo .CSV
](#cli-authentication-user-configure-csv)
  + [

### Edición directa de los archivos `config` y `credentials`
](#cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file)
+ [

## (Opcional) Uso de autenticación multifactor con las credenciales de usuario de IAM
](#cli-authentication-user-configure-csv.titlecli-authentication-user-mfa)

## Paso 1: Crear el usuario de IAM
<a name="cli-authentication-user-create"></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*. 
+ Para **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.

## Paso 2: Obtener las claves de acceso
<a name="cli-authentication-user-get"></a>

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

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.  En el **paso 1 de Crear clave de acceso**, elija **Interfaz de línea de comandos (CLI)**.

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.

1. Seleccione Done (Listo).

## Paso 3: Configurar el AWS CLI
<a name="cli-authentication-user-configure.title"></a>

Para el uso general, AWS CLI necesita la siguiente información:
+ ID de clave de acceso
+ Clave de acceso secreta
+ Región de AWS
+ Formato de salida

La AWS CLI almacena esta información en un *perfil* (una colección de opciones) con el nombre `default` en el archivo `credentials`. De forma predeterminada, la información de este perfil se utiliza cuando se ejecuta un comando de la AWS CLI que no especifica explícitamente un perfil que se va a utilizar. Para obtener más información sobre el archivo `credentials`, consulte [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md).

Utilice uno de los siguientes procedimientos para configurar la AWS CLI.

**Topics**
+ [

### Uso de `aws configure`
](#cli-authentication-user-configure-wizard)
+ [

### Importación de claves de acceso mediante un archivo .CSV
](#cli-authentication-user-configure-csv)
+ [

### Edición directa de los archivos `config` y `credentials`
](#cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file)

### Uso de `aws configure`
<a name="cli-authentication-user-configure-wizard"></a>

Para el uso general, el comando `aws configure` es la forma más rápida de configurar la instalación de la AWS CLI. Este asistente de configuración le solicitará cada uno de los datos que necesita para empezar. A menos que se especifique lo contrario mediante el uso de la opción `--profile`, la AWS CLI almacena esta información en el perfil `default`.

En el siguiente ejemplo, se configura un perfil `default` con valores de ejemplo. Remplácelos con sus propios valores, tal y como se describe en las siguientes secciones.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

En el siguiente ejemplo, se configura un perfil denominado `userprod` con valores de ejemplo. Remplácelos con sus propios valores, tal y como se describe en las siguientes secciones.

```
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

### Importación de claves de acceso mediante un archivo .CSV
<a name="cli-authentication-user-configure-csv"></a>

En lugar de utilizar `aws configure` para ingresar las claves de acceso, puede importar el archivo `.csv` de texto sin formato que descargó después de crear sus claves de acceso. 

El ‎archivo `.csv` debe contener los siguientes encabezados.
+ Nombre de usuario: esta columna debe añadirse a su `.csv`. Se usa para crear el nombre del perfil utilizado en los archivos `config` y `credentials` al importar.
+ ID de clave de acceso
+ Clave de acceso secreta

**nota**  
Durante la creación de las claves de acceso iniciales, una vez que cierre el cuadro de diálogo **Descargar archivo .csv)**, no puede acceder a la clave de acceso secreta después de cerrar el cuadro de diálogo. Si necesita un archivo `.csv`, tendrá que crearlo con los encabezados necesarios y la información de sus claves de acceso almacenadas. Si no tiene acceso a la información sobre sus claves de acceso, deberá crear nuevas claves de acceso.

Para importar el archivo `.csv`, utilice el comando `aws configure import` con la opción `--csv` de la siguiente manera:

```
$ aws configure import --csv file://credentials.csv
```

Para obtener más información, consulte `aws\$1configure\$1import`.

### Edición directa de los archivos `config` y `credentials`
<a name="cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file"></a>

Para editar directamente los archivos `config` y `credentials`, realice lo siguiente.

1. Cree o abra el archivo `credentials` de AWS compartido. Este archivo es `~/.aws/credentials` en sistemas Linux y macOS y `%USERPROFILE%\.aws\credentials` en Windows. Para obtener más información, consulte [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md). 

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

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

## (Opcional) Uso de autenticación multifactor con las credenciales de usuario de IAM
<a name="cli-authentication-user-configure-csv.titlecli-authentication-user-mfa"></a>

Para mayor seguridad, puede usar una clave única generada a partir de un dispositivo de autenticación multifactor (MFA), un dispositivo U2F o una aplicación móvil cuando intente realizar una llamada.

Con el usuario de IAM habilitado para MFA, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/configure/mfa-login.html](https://docs.aws.amazon.com/cli/latest/reference/configure/mfa-login.html) para configurar un nuevo perfil para usarlo con la autenticación multifactor (MFA) para el perfil especificado. Si no se especifica ningún perfil, la MFA se basa en el perfil `default`. Si no hay ningún perfil predeterminado configurado, el comando `mfa-login` le solicitará las credenciales de AWS antes de solicitar su información de MFA. En el ejemplo de comando siguiente, se usa la configuración predeterminada y se crea un perfil de MFA.

```
$ aws configure mfa-login
MFA serial number or ARN: arn:aws:iam::123456789012:mfa/MFADeviceName
MFA token code: 123456
Profile to update [session-MFADeviceName]:
Temporary credentials written to profile 'session-MFADeviceName'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile session-MFADeviceName when running AWS CLI commands
```

Para actualizar un perfil existente, utilice el parámetro `--update-profile`.

```
$ aws configure mfa-login --profile myprofile --update-profile mfaprofile
MFA token code: 123456
Temporary credentials written to profile 'mfaprofile'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile mfaprofile when running AWS CLI commands
```

Este comando actualmente solo admite hardware o software basado en autenticadores de contraseña de un solo uso (OTP). Actualmente, este comando no admite claves de acceso ni dispositivos U2F.

Para usar el perfil de MFA, use la opción `--profile` con los comandos.

```
$ aws s3 ls --profile mfaprofile
```

Para obtener más información sobre el uso de MFA con IAM, incluido cómo asignar MFA a un usuario de IAM, consulte [Autenticación multifactor de AWS en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) en la *Guía del usuario de AWS Identity and Access Management*.

# Uso de metadatos de instancias de Amazon EC2 como credenciales en la AWS CLI
<a name="cli-configure-metadata"></a>

Cuando ejecuta la AWS CLI desde la instancia de Amazon Elastic Compute Cloud (Amazon EC2), puede simplificar el suministro de credenciales a sus comandos. Cada instancia de Amazon EC2 contiene metadatos que la AWS CLI puede consultar directamente para comprobar la existencia de credenciales temporales. Cuando se asocia un rol de IAM a la instancia, la AWS CLI recupera automáticamente y de forma segura las credenciales de los metadatos de la instancia. 

Para deshabilitar este servicio, utilice la variable de entorno [AWS\$1EC2\$1METADATA\$1DISABLED](cli-configure-envvars.md#envvars-list-AWS_EC2_METADATA_DISABLED).

**Topics**
+ [

## Requisitos previos
](#cli-configure-metadata-prereqs)
+ [

## Configuración de un perfil para metadatos de Amazon EC2
](#cli-configure-metadata-configure)

## Requisitos previos
<a name="cli-configure-metadata-prereqs"></a>

Para usar credenciales de Amazon EC2 con la AWS CLI, debe completar lo siguiente:
+ Instalar y configurar la AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md) y [Credenciales de autenticación y acceso para la AWS CLI](cli-chap-authentication.md).
+ Comprende los archivos de configuración y los perfiles con nombre. Para obtener más información, consulte [Opciones de los archivos de configuración y credenciales en la AWS CLI](cli-configure-files.md). 
+ Ha creado un rol AWS Identity and Access Management (IAM) que tiene acceso a los recursos necesarios y ha asociado ese rol a la instancia de Amazon EC2 al lanzarla. Para obtener más información, consulte [Políticas de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) en la *Guía del usuario de Amazon EC2* y [Concesión de acceso a aplicaciones que ejecutan instancias Amazon EC2 a los Recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html) en la *Guía del usuario de IAM*.

## Configuración de un perfil para metadatos de Amazon EC2
<a name="cli-configure-metadata-configure"></a>

Para especificar que desea utilizar las credenciales disponibles en el perfil de instancia de Amazon EC2 de alojamiento, utilice la sintaxis siguiente en el perfil con nombre del archivo de configuración. Para obtener instrucciones adicionales, consulte estos pasos a continuación. 

```
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
```

1. Cree un perfil en su archivo de configuración.

   ```
   [profile profilename]
   ```

1. Agregue su rol arn de IAM que tenga acceso a los recursos necesarios.

   ```
   role_arn = arn:aws:iam::123456789012:role/rolename
   ```

1. Especifique `Ec2InstanceMetadata` como fuente de credenciales.

   ```
   credential_source = Ec2InstanceMetadata
   ```

1. Establezca su región.

   ```
   region = region
   ```

**Ejemplo**

El siguiente ejemplo presupone el rol *`marketingadminrole`* y utiliza la región `us-west-2` en un perfil de instancia de Amazon EC2 denominado `marketingadmin`.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
```

# Obtención de credenciales con un proceso externo en la AWS CLI
<a name="cli-configure-sourcing-external"></a>

**aviso**  
En el siguiente tema, se explica cómo se obtienen credenciales desde un proceso externo. Esto puede suponer un riesgo para la seguridad si el comando que genera las credenciales llega a estar accesible para usuarios o procesos no aprobados. Se recomienda utilizar las alternativas seguras y compatibles ofrecidas por la AWS CLI y AWS para reducir el riesgo de que las credenciales se vean comprometidas. Asegúrese de proteger el archivo `config` y todos los archivos auxiliares y herramientas para evitar su divulgación.  
Asegúrese de que la herramienta de credenciales personalizada no escriba ninguna información secreta en `StdErr`, ya que los SDK y la AWS CLI pueden capturar y registrar dicha información y podrían mostrarla a usuarios no autorizados.

Si tiene un método para generar o buscar credenciales que no sea directamente compatible con la AWS CLI, puede configurar la AWS CLI para usarla configurando el ajuste de `credential_process` en el archivo `config`. 

Por ejemplo, puede incluir una entrada similar a la siguiente en el archivo `config`:

```
[profile developer]
credential_process = /opt/bin/awscreds-custom --username helen
```

**Sintaxis**  
Para crear esta cadena de forma que sea compatible con cualquier sistema operativo, siga estas reglas:
+ Si la ruta de acceso o el nombre del archivo contienen un espacio, rodee la ruta completa y el nombre del archivo con comillas dobles (" "). La ruta y el nombre de archivo solo pueden constar de los caracteres: A-Z a-z 0-9 - \$1 . espacio
+ Si un nombre de parámetro o un valor de parámetro contienen un espacio, rodee ese elemento con comillas dobles (" "). Incluya solo el nombre o el valor, no el par.
+ No incluya ninguna variable de entorno en las cadenas. Por ejemplo, no puede incluir `$HOME` ni `%USERPROFILE%`.
+ No especifique la carpeta de inicio como `~`. Debe especificar la ruta completa.

**Ejemplo para Windows**

```
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
```

**Ejemplo para Linux o macOS**

```
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
```

**Salida prevista del programa Credentials**

La AWS CLI ejecuta el comando tal y como se especifica en el perfil y, a continuación, lee datos de `STDOUT`. El comando que especifique debe generar una salida JSON en `STDOUT` que se ajuste a la siguiente sintaxis.

```
{
  "Version": 1,
  "AccessKeyId": "an AWS access key",
  "SecretAccessKey": "your AWS secret access key",
  "SessionToken": "the AWS session token for temporary credentials", 
  "Expiration": "ISO8601 timestamp when the credentials expire"
}
```

**nota**  
En la fecha de publicación del presente documento, la clave `Version` debe establecerse en `1`. Puede aumentar con el paso del tiempo a medida que la estructura evolucione.

La clave `Expiration` es una marca temporal con formato [ISO8601](https://en.wikipedia.org/wiki/ISO_8601). Si la clave `Expiration` no está presente en la salida de la herramienta, la CLI da por hecho que las credenciales son credenciales a largo plazo que no se actualizan. De otro modo, las credenciales se consideran credenciales temporales y se actualizan automáticamente volviendo a ejecutar el comando `credential_process` antes de que caduquen.

**nota**  
La AWS CLI ***no*** almacena en caché credenciales de procesos externos de la forma que lo hace con las credenciales de asunción de rol. Si se requiere el almacenamiento en caché, debe implementarlo en el proceso externo.

El proceso externo puede devolver un código de devolución distinto de cero para indicar que se ha producido un error al intentar recuperar las credenciales.