Inicio de sesión para el desarrollo local de AWS con credenciales de consola
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.
Temas
Requisitos previos
-
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. 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 en su lugar.
-
Asegúrese de que la identidad de IAM tiene los permisos adecuados. Adjunte la política administrada SignInLocalDevelopmentAccess 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.
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.
-
En el terminal que prefiera, ejecute el comando
aws login.$ aws loginPara 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
--remotepara proporcionar una URL para abrirla en un dispositivo con navegador.$ aws login --remote
-
-
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:
-
-
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/Admininstead? (y/n):.
-
-
Un mensaje final describe la configuración del perfil completada. Ahora puede utilizar este perfil para solicitar credenciales. Utilice el comando
aws loginpara 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/cachecon un nombre de archivo basado en el perfil resuelto.
Archivo de configuración generado
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/usernameregion = us-east-1
Ejecución de un comando con el perfil
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 --profilemy-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
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 --profilemy-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é
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
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_process.
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_process, 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/usernameregion = us-east-1 [profile process] credential_process = aws configure export-credentials --profile signin --format process region = us-east-1
Solución de problemas
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.
Errores ExpiredToken o AccessDeniedException después de usar “Inicio de sesión de AWS”
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”
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
Los recursos adicionales son los siguientes.