View a markdown version of this page

Inicio de sesión para el desarrollo local de AWS con credenciales de consola - AWS Command Line Interface

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.

Requisitos previos

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.

  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.

  2. 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:
  3. 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):.
  4. 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

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

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

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é

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/username region = us-east-1 [profile process] credential_process = aws configure export-credentials --profile signin --format process region = us-east-1

Recursos relacionados

Los recursos adicionales son los siguientes.