Cómo usar la AWS CLI para iniciar sesión en el portal - Herramientas de AWS para PowerShell (versión 4)

¡Se Herramientas de AWS para PowerShell ha lanzado la versión 5 (V5) del!

Para empezar a utilizar la nueva versión de Tools para PowerShell, consulte la Guía del usuario de Herramientas de AWS para PowerShell (V5), especialmente el tema sobre la Migración a la V5.

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

Cómo usar la AWS CLI para iniciar sesión en el portal

A partir de la versión 4.1.538 de las Herramientas para PowerShell, el método recomendado para configurar las credenciales de SSO e iniciar una sesión en el portal de acceso a AWS es usar los cmdlets Initialize-AWSSSOConfiguration y Invoke-AWSSSOLogin, tal y como se describe en Configurar la autenticación de herramientas con AWS. Si no tiene acceso a esa versión de las Herramientas para PowerShell (o posterior) o no puede usar esos cmdlets, puede seguir llevando a cabo estas tareas mediante la AWS CLI.

Configure las Herramientas para PowerShell para usar IAM Identity Center mediante la AWS CLI.

Si aún no lo ha hecho, asegúrese de habilitar y configurar IAM Identity Center antes de continuar.

La información sobre cómo configurar las Herramientas para PowerShell para usar IAM Identity Center mediante la AWS CLI se encuentra en el Paso 2 del tema sobre la Autenticación de IAM Identity Center de la Guía de referencia de las herramientas y los SDK de AWS. Tras completar esta configuración, el sistema debe contener los siguientes elementos:

  • La AWS CLI, que se utiliza para iniciar una sesión en el portal de acceso a AWS antes de ejecutar la aplicación.

  • El archivo compartido config de AWS que contiene un perfil [default] con un conjunto de valores de configuración a los que se puede hacer referencia desde las Herramientas para PowerShell. Para encontrar la ubicación de este archivo, consulte Ubicación de los archivos compartidos en la Guía de referencia de herramientas y AWS SDK. Herramientas para PowerShell utiliza el proveedor de token de SSO del perfil para adquirir las credenciales antes de enviar las solicitudes a AWS. El valor sso_role_name, que es un rol de IAM conectado a un conjunto de permisos del Centro de identidades de IAM, debería permitir el acceso a los Servicios de AWS utilizados en la aplicación.

    El siguiente archivo config de ejemplo muestra la configuración de un perfil [default] con el proveedor de token de SSO. La configuración sso_session del perfil hace referencia a la sección sso-session nombrada. La sección sso-session contiene la configuración para iniciar una sesión en el portal de acceso a AWS.

    [default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://provided-domain.awsapps.com/start sso_registration_scopes = sso:account:access
importante

La sesión de PowerShell debe tener los siguientes módulos instalados e importados para que la resolución de SSO pueda funcionar:

  • AWS.Tools.SSO

  • AWS.Tools.SSOOIDC

Si usa una versión antigua de las Herramientas para PowerShell en la que estos módulos no están disponibles, aparecerá un error similar al siguiente: “Assembly AWSSDK.SSOOIDC could not be found...”.

Iniciar una sesión en el portal de acceso a AWS

Antes de ejecutar los comandos de acceso a Servicios de AWS, necesita una sesión activa en el portal de acceso a AWS para que las Herramientas para Windows PowerShell puedan utilizar la autenticación de IAM Identity Center para resolver las credenciales. En función de la duración de las sesiones configuradas, el acceso eventualmente caducará y las Herramientas para Windows PowerShell detectarán un error de autenticación. Para iniciar sesión en el portal de acceso a AWS, ejecute el siguiente comando en la AWS CLI.

aws sso login

Como está utilizando el perfil [default], no necesita llamar al comando con la opción --profile. Si la configuración del proveedor de token de SSO utiliza un perfil con nombre, el comando es aws sso login --profile named-profile en su lugar. Para obtener más información sobre los perfiles con nombre, consulte Perfiles en la Guía de referencia de las herramientas y los SDK de AWS.

Para comprobar si ya tiene una sesión activa, ejecute el siguiente comando de la AWS CLI (con la misma consideración para perfiles con nombre):

aws sts get-caller-identity

La respuesta a este comando debe indicar la cuenta y el conjunto de permisos del Centro de identidades de IAM configurados en el archivo compartido config.

nota

Si ya tiene una sesión activa en el portal de acceso a AWS y ejecuta aws sso login, no tendrá que proporcionar credenciales.

Es posible que el proceso de inicio de sesión le permita el acceso de la AWS CLI a los datos. Como la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre botocore.

Ejemplo

A continuación, se muestra un ejemplo de cómo utilizar el Centro de identidades de IAM con Herramientas para PowerShell. Asume lo siguiente:

  • Ha habilitado el Centro de identidades de IAM y lo ha configurado como se ha descrito anteriormente en este tema. Las propiedades del SSO se encuentran en el perfil [default].

  • Al iniciar sesión en la AWS CLI mediante el uso de aws sso login, ese usuario tiene al menos permisos de solo lectura para Amazon S3.

  • Algunos buckets de S3 están disponibles para que los vea ese usuario.

Use los siguientes comandos de PowerShell para mostrar una lista de los buckets de S3:

Install-Module AWS.Tools.Installer Install-AWSToolsModule S3 # And if using an older version of the AWS Tools for PowerShell: Install-AWSToolsModule SSO, SSOOIDC # In older versions of the AWS Tools for PowerShell, we're not invoking a cmdlet from these modules directly, # so we must import them explicitly: Import-Module AWS.Tools.SSO Import-Module AWS.Tools.SSOOIDC # Older versions of the AWS Tools for PowerShell don't support the SSO login flow, so login with the CLI aws sso login # Now we can invoke cmdlets using the SSO profile Get-S3Bucket

Como se ha mencionado anteriormente, dado que utiliza el perfil [default], no necesita llamar al cmdlet Get-S3Bucket con la opción -ProfileName. Si la configuración del proveedor de token de SSO utiliza un perfil con nombre, el comando es Get-S3Bucket -ProfileName named-profile. Para obtener más información sobre los perfiles con nombre, consulte Perfiles en la Guía de referencia de las herramientas y los SDK de AWS.

Información adicional

  • Para obtener más opciones de autenticación para las Herramientas para PowerShell, como el uso de perfiles y variables de entorno, consulte el capítulo de configuración de la Guía de referencia de herramientas y AWS SDK.

  • Algunos comandos requieren que se especifique una región de AWS. Hay varias formas de hacerlo, como por ejemplo mediante la opción del cmdlet -Region, el perfil [default] y la variable de entorno AWS_REGION. Para obtener más información, consulte Especificar regiones de AWS en esta guía y Región de AWS en la Guía de referencia de las herramientas y los SDK de AWS.

  • Para obtener más información sobre las prácticas recomendadas, consulte Prácticas recomendadas de seguridad en IAM en la Guía del usuario de IAM.

  • Para crear credenciales de AWS de corta duración, consulte Credenciales de seguridad temporales en la Guía del usuario de IAM.

  • Para obtener más información sobre otros proveedores de credenciales, consulte los proveedores de credenciales estandarizados en la Guía de referencia de herramientas y AWS SDK.