Exemplo: autenticar com a atualização automática do token do Centro de Identidade do IAM para uso com a CLI do AWS CDK. - AWS Kit de desenvolvimento em nuvem (AWS CDK) v2

Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: autenticar com a atualização automática do token do Centro de Identidade do IAM para uso com a CLI do AWS CDK.

Neste exemplo, configuramos a interface de linha de comandos (AWS CLI) da AWS para autenticar usuários com a configuração do provedor de token do Centro de Identidade do IAM da AWS. A configuração do provedor de token do SSO permite que a AWS CLI recupere automaticamente os tokens de autenticação atualizados para gerar credenciais de curto prazo que podemos usar com a interface de linha de comandos (CLI do CDK da AWS) do kit de desenvolvimento em nuvem da AWS (CDK da AWS).

Pré-requisitos

Este exemplo pressupõe que os seguintes pré-requisitos foram concluídos:

  • Pré-requisitos necessários para configurar com a AWS e instalar nossas ferramentas iniciais da CLI. Para obter mais informações, consulte Pré-requisitos.

  • O Centro de Identidade do IAM foi configurado por nossa organização como o método de gerenciamento de usuários.

  • Pelo menos um usuário foi criado no Centro de Identidade do IAM.

Etapa 1: configurar a CLI do AWS

Para instruções detalhadas sobre esta etapa, consulte Configuração da AWS CLI para usar as credenciais do provedor de tokens do Centro de Identidade do IAM com a atualização automática da autenticação no Guia do usuário da interface de linha de comandos da AWS.

Entramos no portal de acesso da AWS fornecido por nossa organização para coletar as informações do Centro de Identidade do IAM. Isso inclui o URL inicial do SSO e a região do SSO.

Em seguida, usamos o comando aws configure sso da AWS CLI para configurar um perfil do Centro de Identidade do IAM e sso-session em nossa 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>

A AWS CLI tenta abrir nosso navegador padrão para iniciar o processo de login para nossa conta do Centro de Identidade do IAM. Se a AWS CLI não conseguir abrir nosso navegador, serão fornecidas instruções para iniciar manualmente o processo de login. Esse processo associa a sessão do Centro de Identidade do IAM à nossa sessão atual da AWS CLI.

Depois de estabelecer nossa sessão, a AWS CLI exibirá as contas da AWS disponíveis para nós:

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

Usamos as teclas de seta para selecionar nossa DeveloperAccount.

Em seguida, a AWS CLI exibirá os perfis do IAM disponíveis para nós em nossa conta selecionada:

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

Usamos as teclas de seta para selecionar FullAccess.

Em seguida, a AWS CLI solicitará que concluamos a configuração especificando um formato de saída padrão, uma região da AWS padrão e um nome para nosso 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>

A AWS CLI exibirá uma mensagem final, mostrando como usar o perfil nomeado com a AWS CLI:

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

Depois de concluir esta etapa, nosso arquivo config vai ficar assim:

[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>

Agora podemos usar essa sso-session e o perfil nomeado para solicitar credenciais de segurança.

Etapa 2: uso da AWS CLI para a geração de credenciais de segurança

Para obter instruções detalhadas sobre esta etapa, consulte Uso de um perfil nomeado do Centro de Identidade do IAM no Guia do usuário da interface de linha de comandos da AWS.

Usamos o comando aws sso login da AWS CLI para solicitar credenciais de segurança para nosso perfil:

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

A AWS CLI tenta abrir nosso navegador padrão e verifica nosso login do IAM. Se não estivermos conectados ao Centro de Identidade do IAM, será solicitada a conclusão do processo de login. Se a AWS CLI não conseguir abrir nosso navegador, serão fornecidas instruções para iniciar manualmente o processo de autorização.

Depois de fazer o login com êxito, a AWS CLI armazena em cache nossas credenciais de sessão do Centro de Identidade do IAM. Essas credenciais incluem um carimbo de data e hora de expiração. Quando elas expirarem, a AWS CLI solicitará que façamos login novamente no Centro de Identidade do IAM.

Usando credenciais válidas do Centro de Identidade do IAM, a AWS CLI recupera as credenciais da AWS com segurança para o perfil do IAM especificado em nosso perfil. A partir daqui, podemos usar a CLI do AWS CDK com nossas credenciais.

Etapa 3: uso da CLI do CDK

Com qualquer comando da CLI do CDK, usamos a opção --profile para especificar o perfil nomeado para o qual geramos as credenciais. Se nossas credenciais forem válidas, a CLI do CDK executará o comando com êxito. Veja um exemplo a seguir:

$ 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

Quando nossas credenciais expirarem, uma mensagem de erro como esta será exibida:

$ 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 atualizar nossas credenciais, usamos o comando aws sso login da AWS CLI:

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