Definição da autenticação do Centro de Identidade do IAM com a AWS CLI - AWS Command Line Interface

Definição da autenticação do Centro de Identidade do IAM com a AWS CLI

Este tópico fornece instruções sobre como configurar a AWS CLI com o AWS IAM Identity Center (Centro de Identidade do IAM) e recuperar credenciais para executar os comandos da AWS CLI. Há basicamente duas maneiras de autenticar usuários com o Centro de Identidade do IAM e receber credenciais para executar comandos da AWS CLI do arquivo config:

  • (Recomendado) Configuração do provedor de token do SSO.

  • Configuração herdada não atualizável.

Para obter informações sobre como usar o bearer auth, que não usa ID de conta e perfil, consulte Configuração para usar a AWS CLI com o CodeCatalyst no Guia do usuário do Amazon CodeCatalyst.

nota

Para um processo guiado de uso do Centro de Identidade do IAM com comandos da AWS CLI, consulte Tutorial: como usar o Centro de Identidade do IAM para executar comandos do Amazon S3 na AWS CLI.

Tópicos

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

Criar um conjunto de permissões que aplica permissões de privilégio mínimo. 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 faça login novamente para ver as Contas da AWS, detalhes de acesso programático e as opções para Administrator ou PowerUserAccess. Selecione PowerUserAccess ao trabalhar com o SDK.

Faça login na AWS por meio do portal do seu provedor de identidade. Se o seu administrador de nuvem concedeu permissões PowerUserAccess (de desenvolvedor) a você, serão exibidas as Contas da AWS às quais 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 na AWS pelo seu portal de acesso da AWS. Se o seu administrador de nuvem concedeu permissões PowerUserAccess (de desenvolvedor) a você, serão exibidas as Contas da AWS às quais 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.

Após obter acesso ao Centro de Identidade do IAM, reúna as informações do Centro de Identidade do IAM fazendo o seguinte:

  1. Reúna seus valores de SSO Start URL e SSO Region necessários para executar aws configure sso

    1. Em seu portal de acesso da AWS, selecione o conjunto de permissões utilizado para desenvolvimento e escolha 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 de SSO Start URL e SSO Region.

  2. Como alternativa, a partir da versão 2.22.0, é possível usar o URL do emissor em vez do URL inicial. O URL do emissor está localizado no console do AWS IAM Identity Center em um dos seguintes locais:

    • Na página Painel, o URL do emissor está no resumo das configurações.

    • Na página Configurações, o URL do emissor está nas configurações da Fonte de identidade.

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

Configurar seu perfil com o assistente aws configure sso

Para configurar um perfil do Centro de Identidade do IAM para a AWS CLI:
  1. No terminal de sua preferência, execute o comando aws configure sso.

    (Recommended) IAM Identity Center

    Crie um nome para a sessão, forneça o URL do emissor ou o URL inicial do Centro de Identidade do IAM, a Região da AWS que hospeda o diretório do Centro de Identidade do IAM e o escopo de registro.

    $ 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

    A autorização Proof Key for Code Exchange (PKCE) é usada por padrão para a AWS CLI a partir da versão 2.22.0 e deve ser usada em dispositivos com um navegador. Para continuar usando a autorização de dispositivo, acrescente a opção --use-device-code.

    $ aws configure sso --use-device-code
    Legacy IAM Identity Center

    Ignore o nome da sessão e forneça o URL de início do Centro de Identidade do IAM e a região da AWS que hospeda o diretório do Centro de Identidade.

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. A AWS CLI tenta abrir seu navegador padrão para o processo de login em sua conta do Centro de Identidade do IAM. Este processo pode solicitar que você permita que a AWS CLI acesse seus dados. Como a AWS CLI é criada sobre o SDK para Python, as mensagens de permissão podem conter variações do nome botocore.

    • Se a AWS CLI não conseguir abrir o navegador, as instruções para iniciar manualmente o processo de login serão exibidas com base no tipo de autorização que você está usando.

      PKCE authorization

      A autorização Proof Key for Code Exchange (PKCE) é usada por padrão para a AWS CLI a partir da versão 2.22.0. O URL exibido é exclusivo e começa com https://oidc.us-east-1.amazonaws.com/authorize.

      Os URLs de autorização do PKCE devem ser abertos no mesmo dispositivo em que você está fazendo login e devem ser usados em um dispositivo com um navegador.

      Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
      Device authorization

      A autorização de dispositivo OAuth 2.0 é usada pela AWS CLI para versões anteriores à 2.22.0. É possível habilitar esse método em versões mais recentes usando a opção --use-device-code.

      Os URLs de autorização de dispositivo não precisam ser abertos no mesmo dispositivo em que você está fazendo login e podem ser usados em um dispositivo com ou sem um navegador.

      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
  3. Selecione a conta da AWS a ser usada na lista exibida. Se você estiver autorizado a usar apenas uma conta, a AWS CLI selecionará essa conta automaticamente e ignorará o prompt.

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)
  4. Selecione o perfil do IAM a ser usado na lista exibida. Se houver apenas uma função disponível, a AWS CLI selecionará essa função automaticamente e ignorará o prompt.

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. Especifique o formato de saída padrão, a Região da AWS padrão para o qual enviar comandos e um nome para o perfil. Se você especificar default como nome do perfil, esse perfil se tornará o perfil padrão usado. 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.

    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>
  6. Uma mensagem final descreve a configuração do perfil concluída. Agora você pode usar esse perfil para solicitar credenciais. É necessário usar o comando aws sso login para solicitar e recuperar as credenciais necessárias para executar comandos. Para obter instruções, consulte Iniciar uma sessão no Centro de Identidade do IAM.

Essas etapas resultam na criação da seção sso-session e do perfil nomeado no arquivo config com a seguinte aparência:

IAM Identity Center
[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
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

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

nota

Essa configuração não é compatível com o Centro de Identidade do IAM legado.

O comando aws configure sso-session atualiza as seções sso-session no arquivo ~/.aws/config. Execute o comando aws configure sso-session e forneça o URL de emissor ou o URL inicial do Centro de Identidade do IAM e a região da AWS que hospeda o diretório do Centro de Identidade do IAM.

$ 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

Configuração manual usando o arquivo config

As informações de configuração do Centro de Identidade do IAM são armazenadas no arquivo config e podem ser editadas usando um editor de texto. Para adicionar manualmente o suporte ao Centro de Identidade do IAM a um perfil nomeado, você deve adicionar chaves e valores ao arquivo config.

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

Você define uma seção sso-session e a associa a um perfil. O sso_start_url e as configurações de sso_region e devem ser definidas 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 a aplicação usa apenas serviços da AWS compatíveis com a autenticação do portador, as credenciais tradicionais da AWS 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 sso/cache com um nome de arquivo baseado no nome da sessão.

nota

A atualização automática de tokens não é compatível usando a configuração herdada não atualizável. Recomendamos usar a configuração do token do SSO.

Para adicionar suporte do Centro de Identidade do IAM manualmente a um perfil nomeado, você deve adicionar as chaves e os valores a seguir à definição de perfil no arquivo config.

É possível incluir outras chaves e valores válidos no arquivo .aws/config. O exemplo a seguir é de um perfil do Centro de Identidade do IAM:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole region = us-west-2 output = json

Para executar comandos, é necessário primeiro usar o Iniciar uma sessão no Centro de Identidade do IAM para solicitar e recuperar suas credenciais temporárias.

Para obter mais informações sobre os arquivos config e credentials, consulte Configurações do arquivo de configuração e credenciais na AWS CLI.

Iniciar uma sessão no Centro de Identidade do IAM

nota

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

Para recuperar e armazenar em cache um conjunto de credenciais do Centro de Identidade do IAM, execute o comando a seguir para a AWS CLI para abrir seu navegador padrão e verificar seu login no Centro de Identidade do IAM.

$ aws sso login --profile my-dev-profile SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

Suas credenciais de sessão do Centro de Identidade do IAM são armazenadas em cache e a AWS CLI as usará a fim de recuperar com segurança as credenciais da AWS para o perfil do IAM especificado no perfil.

Se a AWS CLI não conseguir abrir o navegador automaticamente, as instruções para iniciar manualmente o processo de login serão exibidas com base no tipo de autorização que você está usando.

PKCE authorization

A autorização Proof Key for Code Exchange (PKCE) é usada por padrão para a AWS CLI a partir da versão 2.22.0. O URL exibido é exclusivo e começa com https://oidc.us-east-1.amazonaws.com/authorize.

Os URLs de autorização do PKCE devem ser abertos no mesmo dispositivo em que você está fazendo login e devem ser usados em um dispositivo com um navegador.

Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
Device authorization

A autorização de dispositivo OAuth 2.0 é usada pela AWS CLI para versões anteriores à 2.22.0. É possível habilitar esse método em versões mais recentes usando a opção --use-device-code.

Os URLs de autorização de dispositivo não precisam ser abertos no mesmo dispositivo em que você está fazendo login e podem ser usados em um dispositivo com ou sem um navegador.

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

Também é possível especificar qual perfil de sso-session usar ao registrar usando o --sso-session parâmetro do comando aws sso login. A opção sso-session não está disponível para o Centro de Identidade do IAM legado.

$ aws sso login --sso-session my-dev-session

A partir da versão 2.22.0, a autorização PKCE é o padrão. Para usar a autorização de dispositivo para fazer login, adicione a opção --use-device-code.

$ aws sso login --profile my-dev-profile --use-device-code

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

Executar um comando com seu o perfil do Centro de Identidade do IAM

Depois de fazer login, você pode usar suas credenciais para invocar comandos da AWS CLI com o perfil nomeado associado. O exemplo a seguir mostra um comando usando um perfil:

$ aws sts get-caller-identity --profile my-dev-profile

Contanto que você faça login no Centro de Identidade do IAM e essas credenciais armazenadas em cache não estejam expiradas, a AWS CLI renovará automaticamente as credenciais expiradas da AWS, quando necessário. No entanto, se suas credenciais do IAM Identity Center expirarem, você deverá renová-las explicitamente fazendo login em sua conta do IAM Identity Center novamente.

Encerrar sessões do Centro de Identidade do IAM

Quando terminar de usar o perfil do Centro de Identidade do IAM, você poderá deixar suas credenciais expirarem ou executar o comando a seguir para excluir suas credenciais armazenadas em cache.

$ aws sso logout Successfully signed out of all SSO profiles.

Solução de problemas

Se você encontrar problemas a usar a AWS CLI, consulte Solução de problemas da AWS CLI para obter as etapas de solução de problemas.

Recursos relacionados

Os recursos adicionais são os seguintes.