Exemplo: Autenticar com a atualização automática do token do Centro de Identidade do IAM para uso com o AWS CDK CLI - AWS Cloud Development Kit (AWS CDK) v2

Este é o Guia do Desenvolvedor AWS CDK v2. A CDK v1 mais antiga 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 o AWS CDK CLI

Neste exemplo, configuramos a AWS Command Line Interface (AWS CLI) 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 do AWS Cloud Development Kit (AWS CDK) (AWS CDK CLI).

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 ter 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: Configure o AWS CLI

Para instruções detalhadas sobre essa etapa, consulte Configurar a AWS CLI para usar as credenciais do provedor de token do Centro de Identidade do IAM com a atualização automática da autenticação no Guia do usuário da AWS Command Line Interface.

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 CLI aws configure sso 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 exibe 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 exibe os perfis do IAM disponíveis para nós em nossa conta selecionada:

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

Usamos as teclas de seta para selecionar FullAccess.

Em seguida, a AWS CLI solicita 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 exibe 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: usar a AWS CLI para gerar credenciais de segurança

Para instruções detalhadas sobre essa etapa, consulte Usar um perfil nomeado do Centro de Identidade do IAM no Guia do usuário da AWS Command Line Interface.

Usamos o comando AWS CLI aws sso login 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 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 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 o AWS CDK CLI com nossas credenciais.

Etapa 3: usar o CDK CLI

Com qualquer comando do CDK CLI, usamos a opção --profile para especificar o perfil nomeado para o qual geramos as credenciais. Se nossas credenciais forem válidas, o CDK CLI 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 CLI aws sso login:

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