Configurar AWS CLI con la autenticación IAM de Identity Center - AWS Command Line Interface

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 AWS CLI con la autenticación IAM de Identity Center

En este tema se proporcionan instrucciones sobre cómo configurar el AWS CLI with AWS IAM Identity Center (IAMIdentity Center) para recuperar las credenciales y ejecutar AWS CLI comandos. Existen principalmente dos formas de autenticar a los usuarios con IAM Identity Center para obtener credenciales que les permitan ejecutar AWS CLI comandos en el config archivo:

  • Configuración de proveedor de SSO token (recomendada).

  • Configuración heredada no actualizable.

Para obtener información sobre el uso de la autenticación de portador, que no utiliza ningún identificador de cuenta ni rol, consulta Cómo configurar el uso de AWS CLI with CodeCatalyst en la Guía del CodeCatalyst usuario de Amazon.

nota

Para ver un proceso guiado sobre el uso de IAM Identity Center con AWS CLI comandos, consulte. Tutorial: Utilice IAM Identity Center para ejecutar comandos de Amazon S3

Temas

Requisitos previos

Siga las instrucciones en Introducción en la Guía del usuario de AWS IAM Identity Center . Este proceso activa IAM Identity Center, crea un usuario administrativo y agrega un conjunto de permisos de privilegios mínimos adecuado.

nota

Cree un conjunto de permisos que aplique los permisos con privilegios mínimos. Le recomendamos que utilice el conjunto de permisos predefinido PowerUserAccess, a menos que su empleador haya creado un conjunto de permisos personalizado para este fin.

Salga del portal y vuelva a iniciar sesión para ver sus Cuentas de AWS detalles de acceso programático y las opciones para o. Administrator PowerUserAccess Seleccione esta opción PowerUserAccess cuando trabaje con. SDK

Inicie sesión a AWS través del portal de su proveedor de identidad. Si el administrador de la nube te ha concedido permisos PowerUserAccess (de desarrollador), verás aquellos a los Cuentas de AWS que tienes acceso y tu conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos.

Las implementaciones personalizadas pueden dar lugar a experiencias diferentes, como distintos nombres de conjuntos de permisos. Si no está seguro de qué configuración de permisos debe utilizar, contacte con su equipo de TI para obtener ayuda.

Inicie sesión a AWS través de su portal de AWS acceso. Si el administrador de la nube te ha concedido permisos PowerUserAccess (de desarrollador), verás los permisos a los Cuentas de AWS que tienes acceso y tu conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos.

Contacte con su equipo de TI para obtener ayuda.

Después de acceder al Centro de IAM identidad, recopile la información de su centro de IAM identidad de la siguiente manera:

  1. En su portal de AWS acceso, seleccione el conjunto de permisos que utiliza para el desarrollo y, a continuación, seleccione el enlace Claves de acceso.

  2. En el cuadro de diálogo Obtener credenciales, elija la pestaña que corresponda a su sistema operativo.

  3. Elija el método de credenciales de IAM Identity Center para obtener los SSO Region valores SSO Start URL y valores que necesita para ejecutaraws configure sso. Para obtener información sobre el valor de los ámbitos que se deben registrar, consulte los ámbitos de acceso OAuth 2.0 en la Guía del usuario de IAM Identity Center.

Configurar el perfil con el asistente de aws configure sso

Para configurar un perfil de IAM Identity Center para su: AWS CLI
  1. En el terminal que prefiera, ejecute el aws configure sso comando.

    IAM Identity Center

    Cree un nombre de sesión, indique el inicio del Centro de IAM IdentidadURL, el Región de AWS que aloja el directorio del Centro de IAM Identidad y el alcance del registro.

    $ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access
    Legacy IAM Identity Center

    Omita el nombre de la sesión e indique el inicio del Centro de IAM Identidad URL y la AWS región que aloja el directorio del Centro de Identidad.

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. Los AWS CLI intentos de abrir su navegador predeterminado para iniciar sesión en su cuenta de IAM Identity Center. Es posible que este proceso le pida que permita el AWS CLI acceso a sus datos. Dado que AWS CLI está construido sobre el SDK de Python, los mensajes de permiso pueden contener variaciones del botocore nombre.

    • Si AWS CLI no puede abrir el navegador, se muestran las instrucciones para iniciar manualmente el proceso de inicio de sesión.

      If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451
  3. Seleccione la AWS cuenta que desee utilizar en la lista que se muestra. Si está autorizado a usar solo una cuenta, selecciona AWS CLI automáticamente esa cuenta y omite la solicitud.

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)
  4. Seleccione el IAM rol que desee usar en la lista que se muestra. Si solo hay un rol disponible, selecciona AWS CLI automáticamente ese rol y omite la solicitud.

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. Especifique el formato de salida predeterminado, el formato predeterminado Región de AWS al que se enviarán los comandos y un nombre para el perfil. Si lo especifica default como nombre de perfil, este perfil se convierte en el perfil utilizado por defecto. En el ejemplo siguiente, el usuario introduce una región predeterminada, un formato de salida predeterminado y el nombre del perfil.

    CLI default client Region [None]: us-west-2<ENTER> CLI default output format [None]: json<ENTER> CLI profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
  6. Un mensaje final describe la configuración del perfil completada. Ahora puede usar este perfil para solicitar credenciales. Utilice el comando aws sso login para solicitar y recuperar realmente las credenciales necesarias para ejecutar comandos. Para ver instrucciones, consulte Inicie sesión en una sesión de IAM Identity Center.

Estos pasos dan como resultado la creación de la sso-session sección y el perfil nombrado en el config archivo con el siguiente aspecto:

IAM Identity Center
[profile my-dev-profile] sso_session = my-sso sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

Configurar solo la sección sso-session con el asistente de aws configure sso-session

nota

Esta configuración no es compatible con el IAM Identity Center anterior.

El aws configure sso-session comando actualiza las sso-session secciones del ~/.aws/config archivo. Ejecute el aws configure sso-session comando e indique el inicio del Centro de IAM Identidad URL y la AWS región que aloja el directorio del Centro de IAM Identidad.

$ aws configure sso-session SSO session name: my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

Configuración manual mediante el archivo config

IAMLa información de configuración de Identity Center se almacena en el config archivo y se puede editar con un editor de texto. Para añadir manualmente la compatibilidad con IAM Identity Center a un perfil con nombre, debe añadir claves y valores al config archivo.

La sso-session sección del config archivo se usa para agrupar las variables de configuración para adquirir los tokens de SSO acceso, que luego se pueden usar para adquirir AWS credenciales. Se utilizan las siguientes configuraciones:

Defina una sso-session sección y la asocie a un perfil. Los sso_start_url ajustes sso_region y se deben establecer dentro de la sso-session sección. Normalmente, sso_account_id y sso_role_name debe configurarse en la profile sección para que SDK pueda solicitar SSO las credenciales.

El siguiente ejemplo configura la SDK solicitud de SSO credenciales y admite la actualización automática de los tokens:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

Esto también permite reutilizar las configuraciones de sso-session en varios perfiles:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

Sin embargo, sso_account_id sso_role_name no son necesarios para todos los escenarios de configuración de los SSO tokens. Si su aplicación solo usa AWS servicios que admiten la autenticación de portadores, no se necesitan AWS las credenciales tradicionales. La autenticación de portador es un esquema de HTTP autenticación que utiliza fichas de seguridad denominadas fichas de portador. En este escenario, no se necesitan sso_account_id ni sso_role_name. Consulte la guía individual de su AWS servicio para determinar si admite la autorización de tokens de portador.

Además, los ámbitos de registro pueden configurarse como parte de sso-session. Scope es un mecanismo de la OAuth versión 2.0 para limitar el acceso de una aplicación a la cuenta de un usuario. Una solicitud puede pedir uno o varios ámbitos y el token de acceso emitido a la solicitud se limitará a los ámbitos concedidos. Estos ámbitos definen los permisos que se solicitan para autorizar el OIDC cliente registrado y los tokens de acceso recuperados por el cliente. El siguiente ejemplo establece sso_registration_scopes para proporcionar acceso para enumerar cuentas/roles:

[sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

El token de autenticación se almacena en caché en el disco en el directorio sso/cache con un nombre de archivo basado en el nombre de la sesión.

nota

La actualización automática de tokens no se admite con la configuración no actualizable heredada. Se recomienda utilizar la configuración de SSO token.

Para añadir manualmente la compatibilidad con IAM Identity Center a un perfil con nombre, debe añadir las siguientes claves y valores a la definición del perfil del config archivo.

Puede incluir cualquier otra clave y valor que sea válido en el .aws/config archivo. El siguiente ejemplo es un perfil de IAM Identity Center:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole region = us-west-2 output = json

Para ejecutar comandos, primero debe Inicie sesión en una sesión de IAM Identity Center solicitar y recuperar sus credenciales temporales.

Para obtener más información sobre los archivos de config y ‎credentials, consulte ‎Opciones de los archivos de configuración y credenciales.

Inicie sesión en una sesión de IAM Identity Center

nota

Es posible que el proceso de inicio de sesión le pida que permita el AWS CLI acceso a sus datos. Dado que AWS CLI está construido sobre el SDK de Python, los mensajes de permiso pueden contener variaciones del botocore nombre.

Para recuperar y almacenar en caché un conjunto de credenciales de IAM Identity Center, ejecute el siguiente comando AWS CLI para abrir el navegador predeterminado y comprobar que ha iniciado sesión en IAM Identity Center.

$ aws sso login --profile my-dev-profile SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

Las credenciales de sesión de IAM Identity Center se almacenan en caché y las AWS CLI utiliza para recuperar de forma segura AWS las credenciales del IAM rol especificado en el perfil.

Si no AWS CLI puedes abrir tu navegador, te pedirá que lo abras tú mismo e introduzcas el código especificado.

$ aws sso login --profile my-dev-profile Using a browser, open the following URL: https://device.sso.us-west-2.amazonaws.com/ and enter the following code: QCFK-N451

También puede especificar qué perfil de sso-session utilizar al iniciar la sesión utilizando el parámetro --sso-session del comando aws sso login. La sso-session opción no está disponible para la versión antigua de IAM Identity Center.

$ aws sso login --sso-session my-dev-session

El token de autenticación se almacena en caché en el disco del ~/.aws/sso/cache directorio con un nombre de archivo basado en. sso_start_url

Ejecute un comando con su perfil de IAM Identity Center

Una vez que haya iniciado sesión, puede usar sus credenciales para invocar AWS CLI comandos con el perfil designado asociado. En el siguiente ejemplo, se muestra un comando que utiliza un perfil:

$ aws sts get-caller-identity --profile my-dev-profile

Siempre que haya iniciado sesión en IAM Identity Center y las credenciales almacenadas en caché no hayan caducado, las AWS CLI renovará automáticamente cuando sea AWS necesario. Sin embargo, si sus credenciales de IAM Identity Center caducan, debe renovarlas de forma explícita iniciando sesión de nuevo en su cuenta de IAM Identity Center.

Cierre sesión en sus sesiones de IAM Identity Center

Cuando termine de usar su perfil de IAM Identity Center, puede dejar que sus credenciales caduquen o ejecutar el siguiente comando para eliminar las credenciales almacenadas en caché.

$ aws sso logout Successfully signed out of all SSO profiles.

Resolución de problemas

Si tiene problemas al utilizar el AWS CLI, consulte los pasos de solución Solucionar errores AWS CLI de problemas.

Recursos relacionados

Los recursos adicionales son los siguientes.