Configure o AWS CLI para usar as credenciais do provedor de token do IAM Identity Center com atualização automática de autenticação - AWS Command Line Interface

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á.

Configure o AWS CLI para usar as credenciais do provedor de token do IAM Identity Center com atualização automática de autenticação

Este tópico descreve como configurar o para AWS CLI autenticar usuários com a configuração do provedor de token AWS IAM Identity Center (IAM Identity Center). Usando a configuração do provedor de token do SSO, o AWS SDK ou a ferramenta podem recuperar automaticamente tokens de autenticação atualizados.

Ao usar o IAM Identity Center, é possível fazer login no Active Directory, um diretório integrado do IAM Identity Center, ou em outro IdP conectado ao IAM Identity Center. Você pode mapear essas credenciais para uma função AWS Identity and Access Management (IAM) para executar AWS CLI comandos.

Independentemente do IdP que você usa, o IAM Identity Center abstrai essas distinções. Por exemplo, é possível conectar o Microsoft Azure AD conforme descrito no artigo de blog The Next Evolution in IAM Identity Center (O que há de mais novo no IAM Identity Center).

nota

Para obter informações sobre como usar a autenticação do portador, que não usa ID de conta e função, consulte Configuração para usar o AWS CLI with CodeCatalyst no Guia CodeCatalyst do usuário da Amazon.

Você pode usar a configuração do provedor de token SSO para atualizar automaticamente os tokens de autenticação conforme necessário para seu aplicativo e usar opções de duração de sessão estendida. É possível configurar isso das seguintes maneiras:

  • Automaticamente, usando os comandos aws configure sso e aws configure sso-session. Os comandos a seguir são assistentes que orientam você na configuração do perfil e as informações de sso-session são as seguintes:

  • Manualmente, editando o arquivo config que armazena os perfis nomeados.

Pré-requisitos

Siga as instruções em Conceitos básicos no Guia do usuário do AWS IAM Identity Center . Esse processo ativa o Centro de Identidade do IAM, cria um usuário administrativo e adiciona um conjunto de permissões apropriado com privilégio mínimo.

nota

Crie um conjunto de permissões que aplique permissões com privilégios mínimos. Recomendamos usar o conjunto de permissões predefinido PowerUserAccess, a menos que seu empregador tenha criado um conjunto de permissões personalizado para essa finalidade.

Saia do portal e entre novamente para ver suas opções Contas da AWS e para Administrator ouPowerUserAccess. Selecione PowerUserAccess ao trabalhar com o SDK. Isso também ajuda você a encontrar detalhes sobre o acesso programático.

Faça login AWS por meio do portal do seu provedor de identidade. Se o seu administrador de nuvem concedeu permissões a você PowerUserAccess (desenvolvedor), você vê o Contas da AWS que você tem acesso e seu conjunto de permissões. Ao lado do nome do seu conjunto de permissões, você vê opções para acessar as contas manual ou programaticamente usando esse conjunto de permissões.

Implementações personalizadas podem resultar em experiências diferentes, como nomes de conjuntos de permissões diferentes. Se não tiver certeza sobre qual conjunto de permissões usar, entre em contato com a equipe de TI para obter ajuda.

Faça login AWS por meio do portal de AWS acesso. Se o seu administrador de nuvem concedeu permissões a você PowerUserAccess (desenvolvedor), você vê o Contas da AWS que você tem acesso e seu conjunto de permissões. Ao lado do nome do seu conjunto de permissões, você vê opções para acessar as contas manual ou programaticamente usando esse conjunto de permissões.

Entre em contato com a equipe de TI para obter ajuda.

Configurar seu perfil com o assistente aws configure sso

Para configurar um perfil do Centro de Identidade do IAM e sso-session para a AWS CLI
  1. Reúna as informações do Centro de Identidade do IAM fazendo o seguinte:

    1. No seu portal de AWS acesso, selecione o conjunto de permissões que você usa para desenvolvimento e selecione o link Chaves de acesso.

    2. Na caixa de diálogo Obter credenciais, escolha a guia que corresponde ao seu sistema operacional.

    3. Selecione o método Credenciais do Centro de Identidade do IAM para obter os valores SSO Start URL e SSO Region necessários para executar aws configure sso.

    4. Para obter informações sobre qual valor de escopo registrar, consulte Escopos de acesso do OAuth 2.0 no Guia do usuário do Centro de Identidade do IAM.

  2. No terminal de sua preferência, execute o aws configure sso comando e forneça o URL inicial do IAM Identity Center e a AWS região que hospeda o diretório do Identity Center.

    $ 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
  3. As AWS CLI tentativas de abrir seu navegador padrão e iniciar o processo de login da sua conta do IAM Identity Center.

    Attempting to automatically open the SSO authorization page in your default browser.

    Se AWS CLI não conseguir abrir o navegador, a mensagem a seguir será exibida com instruções sobre como iniciar manualmente o processo de login.

    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

    O IAM Identity Center usa o código para associar a sessão do IAM Identity Center à sessão atual da AWS CLI . A página do navegador do IAM Identity Center solicita que você faça login com suas credenciais do IAM Identity Center. Isso dá permissão para que o AWS CLI recupere e exiba as AWS contas e funções que você está autorizado a usar com o IAM Identity Center.

    nota

    O processo de login pode solicitar que você permita o AWS CLI acesso aos seus dados. Como o AWS CLI é construído sobre o SDK para Python, as mensagens de permissão podem conter variações do botocore nome.

  4. AWS CLI Exibe as AWS contas disponíveis para você usar. Se você estiver autorizado a usar somente uma conta, ele AWS CLI selecionará essa conta para você automaticamente e ignorará a solicitação. As AWS contas que estão disponíveis para você usar são determinadas pela configuração do usuário no IAM Identity Center.

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

    Use as teclas de seta para selecionar a conta que você deseja usar. O caractere ">" à esquerda aponta para a escolha atual. Pressione ENTER para fazer sua seleção.

  5. O AWS CLI confirma sua escolha de conta e exibe as funções do IAM que estão disponíveis para você na conta selecionada. Se a conta selecionada listar somente uma função, ela AWS CLI selecionará essa função para você automaticamente e ignorará a solicitação. Os perfis que estão disponíveis para uso são determinados pela configuração do usuário no IAM Identity Center.

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

    Use as teclas de seta para selecionar o perfil do IAM que deseja usar e pressione <ENTER>.

  6. Especifique o formato de saída padrão, a Região da AWS padrão para enviar comandos e forneça um nome para o perfil para poder fazer referência a ele entre todos os definidos no computador local. No exemplo a seguir, o usuário insere uma região padrão, um formato de saída padrão e o nome do perfil. Como alternativa, se você tiver uma configuração prévia, poderá pressionar <ENTER> para selecionar os valores padrão mostrados entre colchetes. O nome do perfil sugerido é o número de ID da conta seguido de um sublinhado e pelo nome da função.

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

    Se você especificar default como nome do perfil, esse perfil se tornará o usado sempre que você executa um AWS CLI comando e não especifica um nome de perfil.

  7. Uma mensagem final descreve a configuração do perfil concluída.

    To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile my-dev-profile
  8. Isso resulta na criação da seção do sso-session e do perfil nomeado no ~/.aws/config com a seguinte aparência:

    [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

    Agora você pode usar essa sso-session e o perfil para solicitar credenciais atualizadas. É necessário usar o comando aws sso login para solicitar e recuperar as credenciais necessárias para executar comandos. Para obter instruções, consulte Usar um perfil nomeado do Centro de Identidade do IAM .

Configurar somente sua seção de sso-session com o assistente aws configure sso-session

O comando aws configure sso-session atualiza somente as seções do sso-session no arquivo ~/.aws/config. Esse comando pode ser usado para criar ou atualizar suas sessões. Isso é útil se você já tiver configurações existentes e quiser criar uma ou editar a configuração de sso-session existente.

Execute o aws configure sso-session comando e forneça o URL inicial do IAM Identity Center e a AWS região que hospeda o diretório do Identity Center.

$ 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

Depois de inserir suas informações, uma mensagem descreve a configuração completa do perfil.

Completed configuring SSO session: my-sso Run the following to login and refresh access token for this session: aws sso login --sso-session my-sso
nota

Se você estiver conectado à sso-session que está atualizando, atualize seu token executando o comando aws sso login.

Configuração manual usando o arquivo config

A sso-session seção do config arquivo é usada para agrupar variáveis de configuração para adquirir tokens de acesso SSO, que podem então ser usados para adquirir AWS credenciais. As seguintes configurações são usadas:

Defina uma seção de sso-session e associe-a a um perfil. sso_region e sso_start_url devem ser definidos na seção sso-session. Normalmente, sso_account_id e sso_role_name devem ser definidos na seção profile para que o SDK possa solicitar credenciais do SSO.

O exemplo a seguir configura o SDK para solicitar credenciais do SSO e é compatível com a atualização automática de 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

Isso também permite que as configurações de sso-session sejam reutilizadas em vários perfis:

[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

No entanto, sso_account_id e sso_role_name não são necessários para todos os cenários de configuração do token do SSO. Se seu aplicativo usa apenas AWS serviços que oferecem suporte à autenticação do portador, AWS as credenciais tradicionais não são necessárias. A autenticação do portador é um esquema de autenticação HTTP que usa tokens de segurança chamados tokens de portador. Nesse cenário, sso_account_id e sso_role_name não são obrigatórios. Consulte o guia individual do serviço da AWS para determinar se ele é compatível com a autorização do token do portador.

Além disso, os escopos de registro podem ser configurados como parte de uma sso-session. O escopo é um mecanismo no OAuth 2.0 para limitar o acesso de uma aplicação à conta de um usuário. Uma aplicação pode solicitar um ou mais escopos, e o token de acesso emitido para a aplicação será limitado aos escopos concedidos. Esses escopos definem as permissões solicitadas para serem autorizadas para o cliente OIDC registrado e os tokens de acesso recuperados pelo cliente. O exemplo a seguir define sso_registration_scopes para fornecer acesso a fim de listar contas/perfis:

[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

O token de autenticação é armazenado em cache no disco sob o diretório ~/.aws/sso/cache com um nome de arquivo baseado no nome da sessão.