Autenticar el con Herramientas de AWS para PowerShellAWS - Herramientas de AWS para PowerShell (versión 5)

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

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el tema sobre migración.

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.

Autenticar el con Herramientas de AWS para PowerShellAWS

Debes establecer cómo se autentica tu código AWS al desarrollar con. Servicios de AWS Existen diferentes formas de configurar el acceso programático a AWS los recursos, según el entorno y el AWS acceso del que disponga.

Para ver los distintos métodos de autenticación de las Herramientas PowerShell, consulte Autenticación y acceso en la AWS SDKs Guía de referencia de las herramientas.

En este tema se presupone que un nuevo usuario se está desarrollando a nivel local, que su empleador no le ha proporcionado un método de autenticación y que lo utilizará AWS IAM Identity Center para obtener credenciales temporales. Si el entorno no se basa en estos supuestos, es posible que parte de la información de este tema no se aplique a su caso o que ya se le haya proporcionado parte de la información.

La configuración de este entorno requiere varios pasos, que se resumen de la siguiente manera:

Inicie sesión con las credenciales de la consola

Puede utilizar sus credenciales de inicio de sesión AWS de Management Console actuales para acceder mediante programación a. Servicios de AWS Tras un flujo de autenticación basado en un navegador, Herramientas de AWS para PowerShell genera credenciales temporales que funcionan en todas las herramientas de desarrollo locales, como, y. AWS SDKs Herramientas de AWS para PowerShell AWS CLI Esta función simplifica el proceso de configuración y administración de las credenciales de 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 de su proveedor de identidad, y Tools for administra PowerShell 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 Invoke-AWSLogin cmdlet, 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. Herramientas de AWS para PowerShell actualizará automáticamente estas credenciales durante un máximo de 12 horas.

Una vez configurada, la sesión se puede utilizar en Herramientas de AWS para PowerShell todas AWS SDKs las demás herramientas.

Inicie sesión AWS con el cmdlet Invoke- AWSLogin

Ejecute el Invoke-AWSLogin cmdlet para autenticarse con las credenciales de la consola de administración existentes. AWS 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. Asegúrese de haber importado el módulo correcto que ha instalado desde la guía de instalación.

    nota

    Tenemos tres módulos diferentes para PowerShell -AWS.Tools, AWSPowerShell.NetCore yAWSPowerShell. Para obtener más información, consulte ¿Qué son las Herramientas de AWS para PowerShell?.

    • En su PowerShell terminal, ejecute el cmdlet. Esto usará el perfil. default

      PS > Invoke-AWSLogin
    • Para iniciar sesión en un perfil con nombre o crear uno nuevo, utilice el -ProfileName parámetro.

      PS > Invoke-AWSLogin -ProfileName 'my-dev-profile'
    • Si se trata de un perfil nuevo o no se Región de AWS ha especificado ni configurado en ninguna de profiles/environment las variables anteriores, el cmdlet le pedirá que proporcione una región.

      Press Ctrl+C to cancel the following login prompts. Specify AWS Region 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 AWS Region:
  2. Herramientas de AWS para PowerShell Intenta abrir el navegador predeterminado para el proceso de inicio de sesión de tu cuenta. AWS

    Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • Si el dispositivo que utiliza Herramientas de AWS para PowerShell no tiene un navegador, puede usar el -Remote parámetro para proporcionar una URL para abrirla en un dispositivo con navegador.

      PS > Invoke-AWSLogin -Remote
    • Si ha utilizado el -Remote parámetro, se muestran las instrucciones para iniciar manualmente el proceso de inicio de sesión en función del tipo de autorización que utilice. La URL que se muestra es una URL única que comienza por: https://signin.us-east-1.amazonaws.com /authorize. Una vez que haya iniciado sesión en el navegador, tendrá que volver a copiar y pegar el código de autorización resultante en el terminal.

      Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> 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 a su 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, le Herramientas de AWS para PowerShell pedirá que confirme que va a cambiar la sesión que corresponde al perfil existente.

      WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
  4. Un mensaje final describe la configuración del perfil completada.

    Login completed successfully for profile 'my-dev-profile'.

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

Archivo de configuración generado

Estos pasos dan como resultado la creación del perfil predeterminado o especificado en el archivo de configuración, que tiene el siguiente aspecto:

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

Ejecuta un comando con tu perfil

Una vez que haya iniciado sesión, puede usar sus credenciales para invocar los PowerShell cmdlets de Tools for con el perfil asociado. En el siguiente ejemplo, se llama al Get-STSCallerIdentity cmdlet mediante el perfil predeterminado:

PS > Get-STSCallerIdentity

Para comprobar si hay una sesión específica, utilice el -ProfileName parámetro.

PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'

El token de credenciales temporal caducará en 15 minutos, pero lo SDKs actualizará automáticamente cuando lo necesites durante tus solicitudes. Herramientas de AWS para PowerShell La sesión general será válida durante un máximo de 12 horas, tras las cuales deberá volver a ejecutar el Invoke-AWSLogin cmdlet.

Cerrar sesión con el cmdlet Invoke-AWSLogout

Cuando termine la sesión, puede dejar que sus credenciales caduquen o ejecutar el Invoke-AWSLogout cmdlet para eliminar las credenciales almacenadas en caché. Si no se especifica ningún perfil en la CLI o en la variable de AWS_PROFILE entorno, el comando cierra la sesión del perfil predeterminado. En el siguiente ejemplo, se cierra la sesión del perfil predeterminado.

PS > Invoke-AWSLogout

Para cerrar sesión en una sesión de perfil específica, utilice el -ProfileName parámetro.

PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'

Para cerrar sesión en todas las sesiones de perfil en las que hayas iniciado sesión, usa el -All parámetro.

PS > Invoke-AWSLogout -All

Credenciales almacenadas en caché

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

Puede anular esta ubicación configurando la variable de AWS_LOGIN_CACHE_DIRECTORY entorno.

Habilitar y configurar el Centro de identidades de IAM

Para usarla AWS IAM Identity Center, primero debe estar habilitada y configurada. Para obtener más información sobre cómo hacerlo PowerShell, consulte el paso 1 del tema sobre la autenticación del Centro de Identidad de IAM en la Guía de referencia de herramientas AWS SDKs y herramientas. En concreto, siga las instrucciones necesarias en No he establecido el acceso a través del Centro de identidades de IAM.

Configure las herramientas PowerShell para utilizar el Centro de identidades de IAM.

nota

A partir de la versión 4.1.538 de Tools for PowerShell, el método recomendado para configurar las credenciales de SSO e iniciar una sesión en el portal de AWS acceso es utilizar los Invoke-AWSSSOLogincmdlets y, tal Initialize-AWSSSOConfigurationy como se describe en este tema. Si no tiene acceso a esa versión de Tools for PowerShell (o posterior) o no puede usar esos cmdlets, puede seguir realizando estas tareas mediante el. AWS CLI Para saber cómo hacerlo, consulte. Utilice el AWS CLI para iniciar sesión en el portal

El siguiente procedimiento actualiza el AWS config archivo compartido con la información de SSO que la herramienta PowerShell utiliza para obtener credenciales temporales. Como consecuencia de este procedimiento, también se inicia una sesión en el portal de AWS acceso. Si el config archivo compartido ya contiene información de inicio de sesión único y solo quiere saber cómo iniciar una sesión en el portal de acceso mediante las Herramientas PowerShell, consulte la siguiente sección de este tema. Inicie una sesión en el portal de AWS acceso

  1. Si aún no lo ha hecho, ábralo PowerShell e instálelo según Herramientas de AWS para PowerShell corresponda a su sistema operativo y entorno, incluidos los cmdlets más comunes. Para obtener información acerca de cómo hacerlo, consulte Comience con el Herramientas de AWS para PowerShell.

    Por ejemplo, si instala la versión modularizada de las Herramientas para PowerShell Windows, lo más probable es que ejecute comandos similares a los siguientes:

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. Ejecute el siguiente comando. Sustituya los valores de propiedad del ejemplo por valores de la configuración del Centro de identidades de IAM. Para obtener información sobre estas propiedades y cómo encontrarlas, consulte la configuración del proveedor de credenciales del IAM Identity Center en la Guía de referencia de herramientas AWS SDKs y herramientas.

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    Como alternativa, puede utilizar el cmdlet por sí solo y las herramientas PowerShell le solicitarán los valores de las propiedades. Initialize-AWSSSOConfiguration

    Consideraciones sobre determinados valores de propiedad:

    • Si simplemente ha seguido las instrucciones para activar y configurar IAM Identity Center, el valor de -RoleName podría serPowerUserAccess. Sin embargo, si ha creado un conjunto de permisos del Centro de Identidad de IAM específicamente para PowerShell trabajar, utilícelo en su lugar.

    • Asegúrese de usar el Región de AWS lugar donde configuró el Centro de identidades de IAM.

  3. En este punto, el AWS config archivo compartido contiene un perfil llamado my-sso-profile con un conjunto de valores de configuración a los que se puede hacer referencia en 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 AWS SDKs y herramientas.

    The Tools for PowerShell utiliza el proveedor del token de inicio de sesión único del perfil para adquirir las credenciales antes de enviar las solicitudes a AWS. El sso_role_name valor, que es un rol de IAM conectado a un conjunto de permisos del Centro de Identidad de IAM, debería permitir el acceso a los Servicios de AWS utilizados en la aplicación.

    En el siguiente ejemplo, se muestra el perfil que se creó mediante el comando que se muestra arriba. Es posible que algunos de los valores de las propiedades y su orden difieran en su perfil real. La sso-session propiedad del perfil hace referencia a la sección denominadamy-sso-session, que contiene la configuración para iniciar una sesión en el portal de AWS acceso.

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. Si ya tiene una sesión activa en el portal de AWS acceso, las Herramientas PowerShell le informarán de que ya ha iniciado sesión.

    Si ese no es el caso, la herramienta de herramientas PowerShell intentará abrir automáticamente la página de autorización del SSO en el navegador web predeterminado. Sigue las instrucciones del navegador, que pueden incluir un código de autorización del SSO, un nombre de usuario y una contraseña, y permiso para acceder a AWS IAM Identity Center las cuentas y conjuntos de permisos.

    Las herramientas de PowerShell le informan de que el inicio de sesión único se ha realizado correctamente.

Inicie una sesión en el portal de AWS acceso

Antes de ejecutar los comandos de acceso Servicios de AWS, necesita una sesión activa en el portal de AWS acceso para que las herramientas PowerShell puedan utilizar la autenticación del IAM Identity Center para resolver las credenciales. Para iniciar sesión en el portal de AWS acceso, ejecute el siguiente comando PowerShell, donde -ProfileName my-sso-profile aparece el nombre del perfil que se creó en el config archivo compartido al seguir el procedimiento de la sección anterior de este tema.

Invoke-AWSSSOLogin -ProfileName my-sso-profile

Si ya tiene una sesión activa en el portal de AWS acceso, las Herramientas de PowerShell le informarán de que ya ha iniciado sesión.

Si ese no es el caso, la herramienta de herramientas PowerShell intentará abrir automáticamente la página de autorización del SSO en el navegador web predeterminado. Sigue las instrucciones del navegador, que pueden incluir un código de autorización del SSO, un nombre de usuario y una contraseña, y permiso para acceder a AWS IAM Identity Center las cuentas y conjuntos de permisos.

Las herramientas de PowerShell le informan de que el inicio de sesión único se ha realizado correctamente.

Para comprobar si ya tiene una sesión activa, ejecute el siguiente comando después de instalar o importar el AWS.Tools.SecurityToken módulo, según sea necesario.

Get-STSCallerIdentity -ProfileName my-sso-profile

La respuesta al Get-STSCallerIdentity cmdlet indica la cuenta y el conjunto de permisos del IAM Identity Center configurados en el archivo compartido. config

Ejemplo

A continuación se muestra un ejemplo de cómo utilizar el Centro de identidades de IAM con las 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 my-sso-profile perfil, que se configuró anteriormente en este tema.

  • Al iniciar sesión a través de los Invoke-AWSSSOLogin cmdlets Initialize-AWSSSOConfiguration o, el usuario tiene al menos permisos de solo lectura para Amazon S3.

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

Instale o importe el AWS.Tools.S3 módulo según sea necesario y, a continuación, utilice el siguiente PowerShell comando para mostrar una lista de los buckets de S3.

Get-S3Bucket -ProfileName my-sso-profile

Información adicional