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
-
Instale o AWS CLI. Para ter mais informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI.
-
É necessário primeiro ter acesso à autenticação do SSO no IAM Identity Center. Escolha um dos métodos a seguir para acessar as credenciais da AWS.
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:
-
Reúna seus valores de
SSO Start URL
eSSO Region
necessários para executaraws configure sso
-
Em seu portal de acesso da AWS, selecione o conjunto de permissões utilizado para desenvolvimento e escolha o link Chaves de acesso.
-
Na caixa de diálogo Obter credenciais, escolha a guia que corresponde ao seu sistema operacional.
-
Selecione o método Credenciais do Centro de Identidade do IAM para obter os valores de
SSO Start URL
eSSO Region
.
-
-
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.
-
-
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:
-
No terminal de sua preferência, execute o comando
aws configure sso
. -
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.
-
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
) -
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 -
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> -
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:
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:
-
(Obrigatório)
sso_start_url
-
(Obrigatório)
sso_region
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-sessionmy-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
[profileprod
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole2
[sso-sessionmy-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.
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.
-
Tutorial: como usar o Centro de Identidade do IAM para executar comandos do Amazon S3 na AWS CLI
-
Configurações do arquivo de configuração e credenciais na AWS CLI
-
aws configure sso
na Referência da AWS CLI versão 2 -
aws configure sso-session
na Referência da AWS CLI versão 2 -
aws sso login
na Referência da AWS CLI versão 2 -
aws sso logout
na Referência da AWS CLI versão 2 -
Configuração para usar a AWS CLI com o CodeCatalyst no Guia do usuário do Amazon CodeCatalyst
-
Escopos de acesso do OAuth 2.0 no Guia do usuário do Centro de Identidade do IAM
-
Tutoriais de conceitos básicos no Guia do usuário do Centro de Identidade do IAM