Configurar la autenticación de herramientas con AWS - 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.

Configurar la autenticación de herramientas con AWS

Debe establecer cómo se autentica el código con AWS cuando se desarrolla con Servicios de AWS. Existen diferentes formas de configurar el acceso programático a los recursos de AWS, en función del entorno y el acceso a AWS del que disponga.

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

En este tema se da por sentado que un nuevo usuario desarrolla su actividad a nivel local, que el empleador no le ha proporcionado un método de autenticación y que 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:

Habilitar y configurar el Centro de identidades de IAM

Para usar AWS IAM Identity Center, primero debe estar habilitado y configurado. Para obtener más información sobre cómo hacer esto para PowerShell, consulte el Paso 1 del tema para la autenticación del Centro de identidades de IAM en la Guía de referencia de herramientas y AWS SDK. En concreto, siga las instrucciones necesarias en No he establecido el acceso a través del Centro de identidades de IAM.

Configure las Herramientas para PowerShell para usar el Centro de identidades de IAM.

nota

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 este tema. 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. Para saber cómo hacerlo, consulte Cómo usar la AWS CLI para iniciar sesión en el portal.

El siguiente procedimiento actualiza el archivo config de AWS compartido con la información de SSO que las Herramientas para PowerShell utilizan para obtener credenciales temporales. Como resultado de este procedimiento, también se inicia una sesión en el portal de acceso a AWS. Si el archivo config compartido ya contiene información sobre SSO y solo quiere saber cómo iniciar una sesión en el portal de acceso mediante las Herramientas para PowerShell, consulte la siguiente sección de este tema: Iniciar una sesión en el portal de acceso a AWS.

  1. Si aún no lo ha hecho, abra PowerShell e instale Herramientas de AWS para PowerShell según corresponda para su sistema operativo y entorno, incluidos los cmdlets comunes. Para obtener información acerca de cómo hacerlo, consulte Instalación del Herramientas de AWS para PowerShell.

    Por ejemplo, si instala la versión modularizada de las Herramientas para PowerShell en 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 los valores de su configuración de IAM Identity Center. Para obtener información sobre estas propiedades y cómo encontrarlas, consulte la configuración del proveedor de credenciales de IAM Identity Center en la Guía de referencia de las herramientas y los SDK de AWS.

    $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 usar el cmdlet por sí solo, Initialize-AWSSSOConfiguration, y las Herramientas para PowerShell le solicitarán los valores de las propiedades.

    Consideraciones sobre determinados valores de propiedad:

    • Si simplemente ha seguido las instrucciones para habilitar y configurar IAM Identity Center, el valor de -RoleName podría ser PowerUserAccess. Sin embargo, si ha creado un conjunto de permisos de IAM Identity Center específico para el trabajo de PowerShell, utilícelo en su lugar.

    • Asegúrese de usar la misma Región de AWS en la que configuró IAM Identity Center.

  3. En este punto, el archivo config de AWS compartido contiene un perfil llamado my-sso-profile 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.

    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 propiedad y su orden difieran en su perfil real. La propiedad sso-session 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 acceso a AWS.

    [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 acceso a AWS, las Herramientas para PowerShell le informarán de que ya ha iniciado sesión.

    De lo contrario, las Herramientas para PowerShell intentarán abrir automáticamente la página de autorización de SSO en el navegador web predeterminado. Siga las instrucciones del navegador, que pueden incluir un código de autorización de SSO, un nombre de usuario y una contraseña, así como permisos para acceder a las cuentas de AWS IAM Identity Center y conjuntos de permisos.

    Las Herramientas para PowerShell le informan de que el inicio de sesión único (SSO) se ha iniciado correctamente.

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 PowerShell puedan utilizar la autenticación de IAM Identity Center para resolver las credenciales. Para iniciar sesión en el portal de acceso a AWS, ejecute el siguiente comando en PowerShell, en el que -ProfileName my-sso-profile es el nombre del perfil que se creó en el archivo config 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 acceso a AWS, las Herramientas para PowerShell le informarán de que ya ha iniciado sesión.

De lo contrario, las Herramientas para PowerShell intentarán abrir automáticamente la página de autorización de SSO en el navegador web predeterminado. Siga las instrucciones del navegador, que pueden incluir un código de autorización de SSO, un nombre de usuario y una contraseña, así como permisos para acceder a las cuentas de AWS IAM Identity Center y conjuntos de permisos.

Las Herramientas para PowerShell le informan de que el inicio de sesión único (SSO) se ha iniciado correctamente.

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

Get-STSCallerIdentity -ProfileName my-sso-profile

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

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 de SSO se encuentran en el perfil my-sso-profile, que se configuró anteriormente en este tema.

  • Al iniciar sesión mediante los cmdlets Initialize-AWSSSOConfiguration o Invoke-AWSSSOLogin, 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 módulo AWS.Tools.S3 según sea necesario y, a continuación, utilice el siguiente comando de PowerShell para mostrar una lista de los buckets de S3.

Get-S3Bucket -ProfileName my-sso-profile

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.