Ejemplo: autenticación mediante la actualización automática del token del IAM Identity Center para su uso con la CLI de AWS CDK - AWS Kit Cloud Development Kit (AWS CDK) v2

Esta es la guía para desarrolladores de AWS CDK v2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

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.

Ejemplo: autenticación mediante la actualización automática del token del IAM Identity Center para su uso con la CLI de AWS CDK

En este ejemplo, configuramos la interfaz de la línea de comandos de AWS (AWS CLI) para autenticar al usuario mediante la configuración del proveedor del token del IAM Identity Center de AWS. La configuración del proveedor del token del SSO permite a la AWS CLI recuperar automáticamente los token de autenticación actualizados para generar credenciales a corto plazo que podemos usar con la interfaz de línea de comandos de AWS Cloud Development Kit (AWS CDK) (CLI de AWS CDK).

Requisitos previos

En este ejemplo se supone que se completaron los siguientes requisitos previos:

  • Se requieren requisitos previos para poder configurar AWS e instalar nuestras herramientas iniciales de la CLI. Para más información, consulte Requisitos previos.

  • Nuestra organización estuvo a cargo de crear el IAM Identity Center como método de administración de usuarios.

  • Se creó al menos un usuario en IAM Identity Center.

Paso 1: Configurar la CLI de AWS

Para obtener instrucciones detalladas sobre este paso, consulte Configure la AWS CLI para usar las credenciales de proveedor del token de IAM Identity Center con la actualización de autenticación automática en la Guía del usuario de la interfaz de la línea de comandos de AWS.

Iniciamos sesión en el portal de acceso de AWS que nos proporcione nuestra organización para recopilar la información de nuestro IAM Identity Center. Esto incluye la URL de inicio del SSO y la región del SSO.

A continuación, utilizamos el comando aws configure sso de la AWS CLI para configurar un perfil del IAM Identity Center y la sso-session en nuestra máquina local:

$ 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 [sso:account:access]: <ENTER>

La AWS CLI intenta abrir su navegador predeterminado e iniciar el proceso de inicio de sesión de la cuenta de IAM Identity Center. Si la AWS CLI no puede abrir nuestro navegador, se proporcionan instrucciones para iniciar manualmente el proceso de inicio de sesión. Este proceso asocia la sesión del IAM Identity Center con nuestra sesión actual de la AWS CLI.

Luego de establecer nuestra sesión, la AWS CLI muestra las siguientes cuentas de AWS que están disponibles para nosotros:

There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (<123456789011>) ProductionAccount, production-account-admin@example.com (<123456789022>)

Usamos las teclas de flecha para seleccionar nuestra DeveloperAccount.

A continuación, la AWS CLI muestra los roles de IAM disponibles para nosotros en la cuenta seleccionada:

Using the account ID There are 2 roles available to you. > ReadOnly FullAccess

Usamos las teclas de flecha para seleccionar FullAccess.

A continuación, la AWS CLI nos pide que completemos la configuración especificando un formato de salida predeterminado, un valor predeterminado de la región de AWS y un nombre para nuestro perfil:

CLI default client Region [None]: <us-west-2> <ENTER> CLI default output format [None]: <json> <ENTER> CLI profile name [123456789011_FullAccess]: <my-dev-profile> <ENTER>

La AWS CLI muestra un mensaje final en el que se muestra cómo utilizar el perfil indicado con la AWS CLI:

To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile <my-dev-profile>

Después de completar este paso, nuestro archivo config tendrá el siguiente aspecto:

[profile <my-dev-profile>] sso_session = <my-sso> sso_account_id = <123456789011> sso_role_name = <fullAccess> 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>

Ahora podemos usar este sso-session y el perfil designado para solicitar credenciales de seguridad.

Paso 2: utilice la AWS CLI para generar credenciales de seguridad

Para obtener instrucciones detalladas sobre este paso, consulte Usar un perfil del IAM Identity Center con nombre designado en la Guía AWS del usuario de la interfaz de la línea de comandos.

Usamos el comando de la AWS CLI denominado aws sso login para solicitar las credenciales de seguridad para nuestro perfil:

$ aws sso login --profile <my-dev-profile>

La AWS CLI intenta abrir nuestro navegador predeterminado y verifica nuestro inicio de sesión en IAM. Si aún no hemos iniciado sesión en IAM Identity Center, se nos pedirá que completemos el proceso de inicio de sesión. Si la AWS CLI no puede abrir nuestro navegador, se proporcionan instrucciones para iniciar el proceso de autorización de forma manual.

Tras iniciar sesión correctamente, la AWS CLI almacena nuestras credenciales de sesión del IAM Identity Center en caché. Estas credenciales incluyen una marca de tiempo de vencimiento. Cuando vencen, la AWS CLI nos solicita que iniciemos sesión de nuevo en el IAM Identity Center.

Si usa credenciales válidas de IAM Identity Center, la AWS CLI las utiliza para recuperar de forma segura las credenciales de AWS del rol de IAM especificado en el perfil. Desde aquí, podemos utilizar la CLI de AWS CDK con nuestras credenciales.

Paso 3: use la CLI de CDK

Con cualquier comando de la CLI de CDK, utilizamos la opción --profile para especificar el perfil designado para el que generamos las credenciales. Si nuestras credenciales son válidas, la CLI del CDK ejecutará correctamente el comando. A continuación, se muestra un ejemplo:

$ cdk diff --profile <my-dev-profile> Stack CdkAppStack Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Resources [-] AWS::S3::Bucket amzn-s3-demo-bucket amzn-s3-demo-bucket5AF9C99B destroy Outputs [-] Output BucketRegion: {"Value":{"Ref":"AWS::Region"}} ✨ Number of stacks with differences: 1

Cuando nuestras credenciales hayan vencido, aparecerá un mensaje de error como el siguiente:

$ cdk diff --profile <my-dev-profile> Stack CdkAppStack Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environment

Para actualizar nuestras credenciales, utilizamos el comando de la AWS CLI denominado aws sso login:

$ aws sso login --profile <my-dev-profile>