Esta es la guía para AWS CDK desarrolladores de la versión 2. La CDK versión anterior entró en mantenimiento el 1 de junio de 2022 y finalizó el soporte 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 AWS CDK CLI
En este ejemplo, configuramos la AWS Command Line Interface (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) (AWS CDK CLI).
Temas
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 obtener 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 AWS CLI
Para obtener instrucciones detalladas sobre este paso, consulte Configurar la AWS CLI para usar las credenciales de proveedor del token del IAM Identity Center con actualización automática de la autenticación en la Guía del usuario de AWS Command Line Interface.
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 de la AWS CLI aws configure sso
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
123456789011
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 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:
[profilemy-dev-profile
] sso_session =my-sso
sso_account_id =123456789011
sso_role_name =fullAccess
region =us-west-2
output =json
[sso-sessionmy-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 del usuario de AWS Command Line Interface.
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 AWS CDK CLI con nuestras credenciales.
Paso 3: use la CLI del CDK
Con cualquier comando de la CLI del 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
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: 1my-dev-profile
Cuando nuestras credenciales hayan vencido, aparecerá un mensaje de error como el siguiente:
$
cdk diff --profile
Stack CdkAppStack Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environmentmy-dev-profile
Para actualizar nuestras credenciales, utilizamos el comando de la AWS CLI denominado aws sso login
:
$
aws sso login --profile
my-dev-profile