

# Autenticação e credenciais de acesso para a AWS CLI
<a name="cli-chap-authentication"></a>

É necessário estabelecer como a AWS CLI faz a autenticação com a AWS quando você desenvolve com serviços da AWS. Para configurar credenciais para acesso programático para a AWS CLI, escolha uma das opções a seguir. As opções estão em ordem de recomendação.


****  

| Tipo de autenticação | Finalidade | Instruções | 
| --- | --- | --- | 
|  Credenciais do Console de Gerenciamento da AWS  | **(Recomendado)** Use credenciais de curto prazo fazendo login na AWS CLI com as credenciais do console. Recomendado se você usa usuário-raiz, usuários do IAM ou federação com o IAM para acesso à conta da AWS. | [Login para desenvolvimento local da AWS usando credenciais do console](cli-configure-sign-in.md) | 
|  Credenciais de curto prazo dos usuários da força de trabalho do Centro de Identidade do IAM  | Use credenciais de curto prazo para um usuário da força de trabalho do Centro de Identidade do IAM.A melhor prática de segurança é usar o AWS Organizations com o Centro de Identidade do IAM. Ele combina credenciais de curto prazo com um diretório de usuários, como o diretório integrado do Centro de Identidade do IAM ou o Active Directory. | [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md) | 
| Credenciais de curto prazo para usuários do IAM | Use as credenciais de curto prazo para usuários do IAM, que são mais seguras do que as credenciais de longo prazo. Se suas credenciais estiverem comprometidas, há um tempo limitado para usá-las antes de expirarem. | [Autenticação de credenciais de curto prazo para a AWS CLI](cli-authentication-short-term.md) | 
| Usuários do IAM ou do Centro de Identidade do IAM em uma instância do Amazon EC2.  | Use os metadados da instância do Amazon EC2 para consultar credenciais temporárias usando a função atribuída à instância do Amazon EC2. | [Uso de metadados da instância do Amazon EC2 como credenciais na AWS CLI](cli-configure-metadata.md) | 
| Assumir funções para obter permissões | Combine outro método de credencial e assuma um perfil para acesso temporário aos Serviços da AWS ao qual seu usuário talvez não tenha acesso. | [Uso de funções do IAM na AWS CLI](cli-configure-role.md) | 
| Credenciais de longo prazo para usuários do IAM | (Não recomendado) Use credenciais de longo prazo, que não têm prazo de expiração. | [Autenticação usando credenciais de usuário do IAM para a AWS CLI](cli-authentication-user.md) | 
| Armazenamento externo de usuários da força de trabalho do IAM ou do Centro de Identidade do IAM  | (Não recomendado) Combine outro método de credencial, mas armazene valores de credencial em um local fora da AWS CLI. Esse método é tão seguro quanto o local externo em que as credenciais são armazenadas. | [Credenciais de fornecimento com um processo externo na AWS CLI](cli-configure-sourcing-external.md) | 

## Precedência de credenciais e configurações
<a name="cli-chap-authentication-precedence"></a>

As credenciais e as configurações estão localizadas em vários locais, como variáveis de ambiente do sistema ou do usuário, arquivos de configuração local da AWS, ou explicitamente declaradas na linha de comando como um parâmetro. Certas autenticações têm precedência sobre outras. As definições de configuração da AWS CLI têm precedência na seguinte ordem:

1. **[Opções da linha de comando](cli-configure-options.md)**: substituem as configurações em qualquer outro local, como nos parâmetros `--region`, `--output` e `--profile`.

1. **[Variáveis de ambiente](cli-configure-envvars.md)**: você pode armazenar valores nas variáveis de ambiente do sistema.

1. **[Assumir perfil](cli-configure-role.md)**: assuma as permissões de um perfil do IAM por meio da configuração ou do comando [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html).

1. **[Assumir perfil com identidade da web](cli-configure-role.md)**: assuma as permissões de um perfil do IAM usando uma identidade da web por meio da configuração ou do comando [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html).

1. **[Centro de Identidade do AWS IAM](cli-configure-files.md)**: as configurações do Centro de Identidade do IAM armazenadas no arquivo `config` são atualizadas ao executar o comando `aws configure sso`. Em seguida, as credenciais são autenticadas quando você executa o comando `aws sso login`. O arquivo `config` está localizado em `~/.aws/config` no Linux ou MacOS ou em `C:\Users\USERNAME\.aws\config` no Windows. 

1. **[Arquivo de credenciais](cli-configure-files.md)**: os arquivos `credentials` e `config` são atualizados quando você executa o comando `aws configure`. O arquivo `credentials` está localizado em `~/.aws/credentials` no Linux ou MacOS ou em `C:\Users\USERNAME\.aws\credentials` no Windows.

1. **[Processo personalizado](cli-configure-sourcing-external.md)**: obtenha suas credenciais de uma fonte externa.

1. **[Arquivo de configuração](cli-configure-files.md)**: os arquivos `credentials` e `config` são atualizados quando você executa o comando `aws configure`. O arquivo `config` está localizado em `~/.aws/config` no Linux ou MacOS ou em `C:\Users\USERNAME\.aws\config` no Windows.

1. **[Credenciais de container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)**: você pode associar uma função do IAM a cada uma das suas definições de tarefa do Amazon Elastic Container Service (Amazon ECS). As credenciais temporárias para essa função estão disponíveis para os contêineres dessa tarefa. Para mais informações, consulte [Funções do IAM para Tarefas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) no *Guia de Desenvolvedor Amazon Elastic Container Service*.

1. **[Credenciais de perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)**: você pode associar um perfil do IAM a cada uma das suas instâncias do Amazon Elastic Compute Cloud (Amazon EC2). As credenciais temporárias para essa função estão disponíveis para o código em execução na instância. As credenciais são fornecidas por meio do serviço de metadados do Amazon EC2. Para obter mais informações, consulte [Perfis do IAM para o Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) no *Guia do usuário do Amazon EC2* e [Uso de perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) no *Guia do usuário do IAM*.

## Tópicos adicionais nesta seção
<a name="cli-chap-authentication-topics"></a>
+ [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md)
+ [Autenticação de credenciais de curto prazo para a AWS CLI](cli-authentication-short-term.md)
+ [Uso de funções do IAM na AWS CLI](cli-configure-role.md)
+ [Autenticação usando credenciais de usuário do IAM para a AWS CLI](cli-authentication-user.md)
+ [Uso de metadados da instância do Amazon EC2 como credenciais na AWS CLI](cli-configure-metadata.md)
+ [Credenciais de fornecimento com um processo externo na AWS CLI](cli-configure-sourcing-external.md)

# Login para desenvolvimento local da AWS usando credenciais do console
<a name="cli-configure-sign-in"></a>

Você pode usar suas credenciais de login existentes do Console de Gerenciamento da AWS para ter acesso programático aos serviços da AWS. Depois de um fluxo de autenticação baseado em navegador, a gera credenciais temporárias que funcionam em ferramentas de desenvolvimento locais, como AWS CLI, ferramentas da AWS para PowerShell e SDKs da AWS. Esse recurso simplifica o processo de configuração e gerenciamento de credenciais da AWS CLI, especialmente se você preferir usar a autenticação interativa a gerenciar chaves de acesso de longo prazo.

Com esse processo, você pode se autenticar usando credenciais raiz criadas durante a configuração inicial da conta, um usuário do IAM ou uma identidade federada do seu provedor de identidades, e a AWS CLI gerencia automaticamente as credenciais temporárias para você. Essa abordagem aprimora a segurança ao eliminar a necessidade de armazenar credenciais de longo prazo localmente.

Ao executar o comando `aws login`, você pode selecionar entre suas sessões ativas do console ou fazer login por meio do fluxo de autenticação baseado em navegador para que sejam geradas credenciais temporárias automaticamente. A CLI atualizará automaticamente essas credenciais em até 12 horas.

Depois de configurada, sua sessão pode ser usada na AWS CLI e em outros SDKs e ferramentas da AWS.

**Topics**
+ [

## Pré-requisitos
](#cli-configure-sign-in-prerequisites)
+ [

## Faça login na AWS CLI com o comando `aws login`.
](#cli-configure-sign-in-login-command)
+ [

## Executar um comando com seu perfil
](#cli-configure-sign-in-with-profile)
+ [

## Sair da sessão usando o comando aws logout
](#cli-configure-sign-in-sign-out)
+ [

## Solução de problemas
](#cli-configure-sign-in-troubleshooting)
+ [

## Recursos relacionados
](#cli-configure-sign-in-resources)

## Pré-requisitos
<a name="cli-configure-sign-in-prerequisites"></a>
+ Instale a CLI do AWS. Para obter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md). A versão mínima para usar o comando `aws login` é a 2.32.0.
+ Faça login no Console de Gerenciamento da AWS como usuário-raiz, usuário do IAM ou por meio da federação com o IAM. Se você usar o Centro de Identidade do IAM, acesse [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md) em vez disso.
+ Garanta que a identidade do IAM tenha as permissões apropriadas. Anexe a política gerenciada [SignInLocalDevelopmentAccess](https://docs.aws.amazon.com/signin/latest/userguide/security-iam-awsmanpol.html) ao seu grupo, perfil ou usuário do IAM. Se você fizer login como usuário-raiz, nenhuma outra permissão será necessária.

## Faça login na AWS CLI com o comando `aws login`.
<a name="cli-configure-sign-in-login-command"></a>

Execute o comando `aws login` para se autenticar usando suas credenciais existentes do Console de Gerenciamento da AWS. Se você não configurou um perfil anteriormente, receberá uma solicitação para fornecer informações adicionais. Para fazer login ou configurar um perfil, siga as etapas abaixo.

1. No terminal de sua preferência, execute o comando `aws login`.

   ```
   $ aws login
   ```

   Para fazer login usando um perfil nomeado ou criar outro perfil, use a opção `--profile`.

   ```
   $ aws login --profile my-dev-profile
   ```
   + Se esse for um novo perfil ou se nenhuma região da AWS tiver sido especificada, a AWS CLI solicitará que você forneça uma região.

     ```
     No AWS region has been configured. The AWS region is the geographic location of 
     your AWS resources. 
     
     If you've used AWS before and already have resources in your account, tell us 
     which region they were created in. If you haven't created resources in your account 
     before, you can pick the region closest to you: 
     https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. 
     You are able to change the region in the CLI at any time with the command 
     `aws configure set region NEW_REGION`.
     
     AWS Region [us-east-1]:
     ```
   + Se o dispositivo que está usando a AWS CLI não tiver um navegador, você poderá usar a opção `--remote` para fornecer um URL e abri-lo em um dispositivo habilitado para navegador.

     ```
     $ aws login --remote
     ```
**nota**  
É possível controlar o acesso à autenticação no mesmo dispositivo (`aws login`) e entre dispositivos (`aws login --remote`). Use os ARNs de recurso a seguir em qualquer política relevante do IAM.  
`arn:aws:signin:region:account-id:oauth2/public-client/localhost`: use este ARN para autenticação no mesmo dispositivo com o `aws login`.
`arn:aws:signin:region:account-id:oauth2/public-client/remote`: use este ARN para autenticação entre dispositivos com o `aws login --remote`.

1. A AWS CLI tentará abrir seu navegador padrão para o processo de login em sua conta da AWS.

   ```
   Attempting to open the login page for `us-east-1` in your default browser. 
   If the browser does not open, use the following URL to complete your login:
   https://signin.us-east-1.amazonaws.com/authorize?<abbreviated>
   
   If you cannot connect to this URL, make sure that you have specified a valid region.
   ```
   + Se você tiver usado a opção `--remote`, as instruções para iniciar manualmente o processo de login serão exibidas com base no tipo de autorização que você está usando. O URL exibido é exclusivo e começa com https://us-east-1.signin.amazonaws.com/authorize.. Depois de concluir o login do navegador, você precisará copiar e colar o código de autorização resultante de volta na CLI.

     ```
     Browser will not be automatically opened.
     Please visit the following URL:
     https://region.signin.amazonaws.com/authorize?<abbreviated>
     
     Please enter the authorization code displayed in the browser:
     ```

1. No navegador, selecione as credenciais a serem usadas na lista exibida e, em seguida, retorne ao seu terminal.
   + Se o perfil que você está configurando tiver uma sessão de login configurada anteriormente que não corresponda à sua nova sessão, a AWS CLI solicitará que você confirme que está trocando a sessão que corresponde ao perfil existente.

     ```
     Profile signin is already configured to use session arn:aws:iam::0123456789012:user/ReadOnly. 
     Do you want to overwrite it to use arn:aws:iam::0123456789012:user/Admin instead? (y/n):.
     ```

1. 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 login` para solicitar e recuperar as credenciais necessárias para executar comandos.

   O token de autenticação é armazenado em cache no disco, no diretório `.aws/login/cache`, com um nome de arquivo baseado no perfil resolvido.

### Arquivo de configuração gerado
<a name="cli-configure-sign-in-generated-config"></a>

Essas etapas resultam na criação do perfil `default` no arquivo `config` com a seguinte aparência:

```
[default]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1
```

## Executar um comando com seu perfil
<a name="cli-configure-sign-in-with-profile"></a>

Depois de fazer login, você pode usar suas credenciais para invocar comandos da AWS CLI com o perfil associado. O seguinte exemplo chama o comando `get-caller-identity` usando o perfil `default`:

```
$ aws sts get-caller-identity
```

Para fazer login em uma sessão específica, use a opção `--profile`.

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

A AWS CLI e os SDKs atualizarão automaticamente as credenciais armazenadas em cache a cada 15 minutos, conforme necessário. A sessão geral se manterá válida até a duração definida da sessão da entidade principal do IAM (no máximo 12 horas), após a qual você deverá executar novamente o `aws login`.

## Sair da sessão usando o comando aws logout
<a name="cli-configure-sign-in-sign-out"></a>

Quando terminar de usar sua sessão, você poderá deixar suas credenciais expirarem ou executar o comando `aws logout` para excluir as credenciais armazenadas em cache. Se nenhum perfil for especificado na linha de comandos ou na variável de ambiente `AWS_PROFILE`, o comando desconectará você do seu perfil padrão. O exemplo a seguir desconecta você do seu perfil padrão.

```
$ aws logout
```

Para sair de uma sessão específica, use a opção `--profile`.

```
$ aws logout --profile my-dev-profile
```

Para sair de todos os perfis que usam credenciais de login, use a opção `--all`.

```
$ aws logout --all
```

### Credenciais armazenadas em cache
<a name="cli-configure-sign-in-sharing-login-creds"></a>

As credenciais temporárias em cache, bem como os metadados necessários para atualizá-las, são armazenados por padrão em `~/.aws/login/cache` no Linux e no macOS ou em `%USERPROFILE%\.aws\login\cache` no Windows.

Para armazenar o cache de credenciais de curto prazo em outro local, defina a variável de ambiente `AWS_LOGIN_CACHE_DIRECTORY`.

#### Compartilhar credenciais de login como credenciais de processo
<a name="cli-configure-sign-in-cached-credentials"></a>

Versões mais antigas dos SDKs da AWS ou de outras ferramentas de desenvolvimento podem ainda não oferecer suporte às credenciais do console. Uma solução alternativa é configurar a AWS CLI para servir como um provedor de credenciais de processo. A CLI continuará atualizando as credenciais conforme necessário, enquanto as compartilha com ferramentas configuradas para usar o perfil credential\$1process.

Neste exemplo, use primeiro a AWS CLI para fazer login para o perfil de login:

```
$ aws login --profile signin
```

Em seguida, configure manualmente um perfil com a opção credential\$1process, que aponta para o perfil de login. Agora você pode configurar SDKs ou ferramentas para usar o perfil de processo, que invocará a CLI para compartilhar as credenciais do perfil de login.

```
[profile signin]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1

[profile process] 
credential_process = aws configure export-credentials --profile signin --format process
region = us-east-1
```

## Solução de problemas
<a name="cli-configure-sign-in-troubleshooting"></a>

Esta página contém recomendações para solucionar problemas de login para desenvolvimento local da AWS usando credenciais do console para a AWS CLI.

**nota**  
Para solucionar outros problemas que você possa encontrar usando a AWS CLI, consulte [Solução de problemas da AWS CLI](cli-chap-troubleshooting.md).

### Erros ExpiredToken ou AccessDeniedException depois de usar “aws login”
<a name="expired-token-login-troubleshooting"></a>

Ao executar um comando da AWS CLI após a execução de `aws login` para um determinado perfil, você pode encontrar um erro de credenciais expiradas ou inválidas.

```
$ aws s3 ls

An error occurred (ExpiredToken) when calling the ListBuckets operation: The provided token has expired.
```

**Causa possível:** você tem uma combinação de credenciais existentes e de novas credenciais de login nesse perfil.

Execute `aws configure list` ou `aws configure list --profile <profile name>` para imprimir o lugar em que a CLI está resolvendo as credenciais para o perfil padrão ou fornecido.

Se a coluna TYPE for algo diferente de login, isso significa que ainda há um tipo diferente de credencial definido no perfil de destino.

Neste exemplo, as credenciais estão sendo resolvidas a partir do arquivo de credenciais compartilhado em seu diretório pessoal, que tem precedência sobre as credenciais de login.

```
$  aws configure list
NAME       : VALUE                    : TYPE             : LOCATION
profile    : <not set>                : None             : None
access_key : ****************MPLE     : shared-credentials-file :
secret_key : ****************EKEY     : shared-credentials-file :
region     : us-east-1                : config-file      : ~/.aws/config
```

Para resolver isso, remova manualmente todas as credenciais existentes do seu arquivo de configuração e as credenciais do perfil de destino. Depois de fazer isso, você deverá ver as credenciais de login ao executar `aws configure list` novamente.

```
$  aws configure list
NAME       : VALUE                    : TYPE             : LOCATION
profile    : <not set>                : None             : None
access_key : ****************MPLE     : login            :
secret_key : ****************EKEY     : login            :
region     : us-east-1                : config-file      : ~/.aws/config
```

Há também a alternativa de usar a opção `--debug`, que mostrará em que lugar a CLI está resolvendo as credenciais.

### Bloqueio de acesso à rede pelo firewall ao executar “aws login”
<a name="firewall-blocking-login-troubleshooting"></a>

Durante a execução do `aws login`, você pode se deparar com um pop-up ou uma mensagem do seu software de firewall que impede que a AWS CLI acesse sua rede.

**Possível causa:** seu firewall ou software de segurança está impedindo que a AWS CLI abra a porta usada para processar o retorno de chamada do OAuth.

Para evitar esse problema, use, em vez disso, a opção `--remote`. Isso solicitará que você copie e cole o código de autorização em vez de usar o retorno de chamada do OAuth.

```
$ aws login --remote
```

## Recursos relacionados
<a name="cli-configure-sign-in-resources"></a>

Os recursos adicionais são os seguintes.
+ [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md)
+ [`aws login` na Referência da AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/reference/)
+ [`aws logout` na Referência da AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/reference/)

# Definição da autenticação do Centro de Identidade do IAM com a AWS CLI
<a name="cli-configure-sso"></a>

Este tópico fornece instruções sobre como configurar a AWS CLI com o Centro de Identidade do AWS IAM (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](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) 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](cli-configure-sso-tutorial.md).

**Tópicos**
+ [Pré-requisitos](#cli-configure-sso-prereqs)
+ [Configurar seu perfil com o assistente `aws configure sso`](#cli-configure-sso-configure)
+ [Configurar somente sua seção de `sso-session` com o assistente `aws configure sso-session`](#cli-configure-sso-session)
+ [Configuração manual usando o arquivo `config`](#cli-configure-sso-manual)
+ [Iniciar uma sessão no Centro de Identidade do IAM](#cli-configure-sso-login)
+ [Executar um comando com seu o perfil do Centro de Identidade do IAM](#cli-configure-sso-use)
+ [Encerrar sessões do Centro de Identidade do IAM](#cli-configure-sso-logout)
+ [Solução de problemas](#cli-configure-sso-tshoot)
+ [Recursos relacionados](#cli-configure-sso-resources)

## Pré-requisitos
<a name="cli-configure-sso-prereqs"></a>
+ Instalar o AWS CLI. Para obter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md).
+ É 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.

### Não estabeleci acesso por meio do IAM Identity Center
<a name="idc-access"></a>

Siga as instruções em [Conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) no *Guia do usuário do Centro de Identidade do AWS IAM*. 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.

### Eu já tenho acesso àAWS por meio de um provedor de identidade federado gerenciado pelo meu empregador (como Azure AD ou Okta)
<a name="federated-access"></a>

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. 

### Eu já tenho acesso à AWS por meio do portal de acesso da AWS gerenciado pelo meu empregador
<a name="accessportal-access"></a>

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. 

### Eu já tenho acesso à AWS por meio de um provedor de identidades federadas personalizado gerenciado pelo meu empregador
<a name="customfederated-access"></a>

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

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

   1. Selecione o método **Credenciais do Centro de Identidade do IAM** para obter os valores de `SSO Start URL` e `SSO Region`.

1. 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 Centro de Identidade do AWS IAM 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**. 

1. Para obter informações sobre qual valor de escopo registrar, consulte [Escopos de acesso do OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*.

## Configurar seu perfil com o assistente `aws configure sso`
<a name="cli-configure-sso-configure"></a>

**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
   ```

   Para compatibilidade com pilha dupla, use o URL inicial do SSO de pilha dupla:

   ```
   $ aws configure sso
   SSO session name (Recommended): my-sso
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   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
   ```

   Para compatibilidade com pilha dupla:

   ```
   $ aws configure sso
   SSO session name (Recommended):
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   SSO region [None]:us-east-1
   ```

------

1. 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:
     + IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
     + Pilha dupla: *https://oidc.us-east-1.api.aws/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. O formato do endpoint depende da sua configuração:
     + IPv4: *https://device.sso.us-west-2.amazonaws.com/*
     + Pilha dupla: *https://device.sso.us-west-2.api.aws/*

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

------

1. 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)
   ```

1. 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
   ```

1. Especifique o [formato de saída padrão](cli-configure-files.md#cli-config-output), a [Região da AWS padrão](cli-configure-files.md#cli-config-region) para o qual enviar comandos e um [nome para o perfil](cli-configure-files.md). 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.

   ```
   Default client Region [None]: us-west-2<ENTER>
   CLI default output format (json if not specified) [None]: json<ENTER>
   Profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
   ```

1. 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 instruções, consulte [Iniciar uma sessão no Centro de Identidade do IAM](#cli-configure-sso-login).

### Arquivo de configuração gerado
<a name="cli-configure-sso-generated"></a>

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

Para compatibilidade com pilha dupla:

```
[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://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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
```

Para compatibilidade com pilha dupla:

```
[profile my-dev-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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`
<a name="cli-configure-sso-session"></a>

**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
```

Para compatibilidade com pilha dupla, use o URL inicial do SSO de pilha dupla:

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

## Configuração manual usando o arquivo `config`
<a name="cli-configure-sso-manual"></a>

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

### Arquivo de configuração do Centro de Identidade do IAM
<a name="cli-configure-sso-manual-config"></a>

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\$1start\$1url`
+ **(Obrigatório)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

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

Para compatibilidade com pilha dupla, use o formato de URL inicial do SSO de pilha dupla:

```
[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://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

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

Para compatibilidade com pilha dupla, use o formato de URL inicial do SSO de pilha dupla:

```
[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://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

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

Para compatibilidade com pilha dupla:

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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. 

### Arquivo de configuração do Centro de Identidade do IAM legado
<a name="cli-configure-sso-manual-legacy"></a>

**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`.
+ `sso\$1start\$1url`
+ `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`

É 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 compatibilidade com pilha dupla:

```
[profile my-sso-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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](#cli-configure-sso-login) 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](cli-configure-files.md).

## Iniciar uma sessão no Centro de Identidade do IAM
<a name="cli-configure-sso-login"></a>

**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 seu navegador
<a name="cli-configure-sso-login-browser"></a>

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:
+ IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
+ Pilha dupla: *https://oidc.us-east-1.api.aws/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
<a name="cli-configure-sso-use"></a>

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
<a name="cli-configure-sso-logout"></a>

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
<a name="cli-configure-sso-tshoot"></a>

Se você encontrar problemas a usar a AWS CLI, consulte [Solução de problemas da AWS CLI](cli-chap-troubleshooting.md) para obter as etapas de solução de problemas.

## Recursos relacionados
<a name="cli-configure-sso-resources"></a>

Os recursos adicionais são os seguintes.
+ [Conceitos do Centro de Identidade do AWS IAM para a AWS CLI](cli-configure-sso-concepts.md)
+ [Tutorial: como usar o Centro de Identidade do IAM para executar comandos do Amazon S3 na AWS CLI](cli-configure-sso-tutorial.md)
+ [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md)
+ [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) na *Referência da AWS CLI versão 2*
+ [Configuração para usar a AWS CLI com o CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) no *Guia do usuário do Amazon CodeCatalyst*
+ [Escopos de acesso do OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*
+ [Tutoriais de conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) no *Guia do usuário do Centro de Identidade do IAM*

# Conceitos do Centro de Identidade do AWS IAM para a AWS CLI
<a name="cli-configure-sso-concepts"></a>

Este tópico descreve os principais conceitos do Centro de Identidade do AWS IAM (Centro de Identidade do IAM). O Centro de Identidade do IAM é um serviço do IAM baseado em nuvem que simplifica o gerenciamento de acesso de usuários em várias Contas da AWS, aplicações, SDKs e ferramentas por meio da integração com os provedores de identidade (IdP) existentes. Ele permite login único seguro, gerenciamento de permissões e auditoria por meio de um portal de usuário centralizado, simplificando a governança de identidade e acesso para organizações.

**Topics**
+ [

## O que é o Centro de identidade do IAM
](#cli-configure-sso-concepts-what)
+ [

## Termos
](#cli-configure-sso-terms)
+ [

## Como o Centro de Identidade do IAM funciona
](#cli-configure-sso-concepts-process)
+ [

## Recursos adicionais
](#cli-configure-sso-concepts-resources)

## O que é o Centro de identidade do IAM
<a name="cli-configure-sso-concepts-what"></a>

O Centro de Identidade do IAM é um serviço de gerenciamento de identidade e acesso (IAM) baseado na nuvem que permite gerenciar de forma centralizada o acesso a várias Contas da AWS e aplicações comerciais.

Ele fornece um portal de usuário onde usuários autorizados podem acessar as Contas da AWS e as aplicações para os quais receberam permissão, usando suas credenciais corporativas existentes. Isso permite que as organizações apliquem políticas de segurança consistentes e simplifiquem o gerenciamento do acesso dos usuários.

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](https://aws.amazon.com/blogs/aws/the-next-evolution-in-aws-single-sign-on/) (O que há de mais novo no IAM Identity Center).

**nota**  
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](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) no *Guia do usuário do Amazon CodeCatalyst*.

## Termos
<a name="cli-configure-sso-terms"></a>

Os termos comuns ao usar o Centro de Identidade do IAM são os seguintes:

**Provedor de identidade (IdP)**  
Um sistema de gerenciamento de identidade, como o Centro de Identidade do IAM, o Microsoft Azure AD, o Okta ou seu próprio serviço de diretório corporativo.

**Centro de Identidade do AWS IAM**  
O Centro de Identidade do IAM é o serviço de IdP de propriedade da AWS. Anteriormente conhecidos como AWS Single Sign-On, os SDKs e as ferramentas mantêm os namespaces da API da `sso` para compatibilidade com versões anteriores. Para obter mais informações, consulte [Renomear o IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) no *Guia do usuário do Centro de Identidade do AWS IAM*.

**URL do Portal de acesso da AWS, URL inicial do SSO, URL inicial**  
O URL do Centro de Identidade do IAM exclusivo da sua organização para acessar serviços, recursos e Contas da AWS autorizados.

**URL do emissor**  
O URL do emissor do Centro de Identidade do IAM exclusivo da sua organização para acesso programático aos serviços, recursos e Contas da AWS autorizados. A partir da versão 2.22.0 da AWS CLI, o URL do emissor pode ser usado de forma intercambiável com o URL inicial.

**Federação**  
O processo de estabelecer a confiança entre o Centro de Identidade do IAM e um provedor de identidade para habilitar a autenticação única (SSO).

**Contas da AWS**  
As Contas da AWS às quais você fornece acesso aos usuários por meio da Centro de Identidade do AWS IAM.

**Conjuntos de permissões, credenciais da AWS, credenciais, credenciais sigv4**  
Coleções predefinidas de permissões que podem ser atribuídas a usuários ou grupos aos quais conceder acesso a Serviços da AWS.

**Escopos de registro, escopos de acesso, escopos**  
Os escopos são 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 está limitado aos escopos concedidos. Consulte informações sobre escopos em [Access scopes](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*.

**Tokens, token de atualização, token de acesso**  
Os tokens são credenciais de segurança temporárias que são emitidas para você após a autenticação. Esses tokens contêm informações sobre sua identidade e as permissões que você recebeu.  
Quando você acessa uma aplicação ou recurso da AWS por meio do portal do Centro de Identidade do IAM, seu token é apresentado para a AWS para autenticação e autorização. Isso permite que a AWS verifique sua identidade e garanta que você tenha as permissões necessárias para realizar as ações solicitadas.   
O token de autenticação é armazenado em cache no disco sob o diretório `~/.aws/sso/cache` com um nome de arquivo JSON baseado no nome da sessão.

**Sessão**  
Uma sessão do Centro de Identidade do IAM se refere ao período em que um usuário é autenticado e autorizado a acessar aplicações ou recursos da AWS. Quando um usuário faz login no portal do Centro de Identidade do IAM, uma sessão é estabelecida e o token do usuário é válido por um período especificado. Para obter mais informações sobre como configurar as durações da sessão, consulte [Configurar a duração da sessão](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.  
Durante a sessão, você pode navegar entre aplicações e contas da AWS diferentes sem precisar se autenticar novamente, desde que a sessão permaneça ativa. Quando a sessão expirar, entre novamente para renovar seu acesso.  
As sessões do Centro de Identidade do IAM ajudam a fornecer uma experiência de usuário perfeita, além de aplicar as melhores práticas de segurança ao limitar a validade das credenciais de acesso do usuário.

**Concessão de código de autorização com Proof Key for Code Exchange (PKCE)**  
A partir da versão 2.22.0, o Proof Key for Code Exchange (PKCE) é um fluxo de concessão de autenticação OAuth 2.0 para dispositivos com um navegador. O PKCE oferece uma maneira simples e segura para autenticar e obter consentimento para acessar seus recursos da AWS em desktops e dispositivos móveis com navegadores da web. Esse é o comportamento padrão de autorização. Consulte mais informações sobre o PKCE em [Authorization Code Grant with PKCE](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#auth-code-grant-pkce) no *Guia do usuário do Centro de Identidade do AWS IAM*.

**Concessão de autorização de dispositivo**  
Um fluxo de concessão de autenticação OAuth 2.0 para dispositivos com ou sem um navegador da web. Consulte mais informações sobre como definir a duração das sessões em [Device Authorization Grant](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#device-auth-grant) no *Guia do usuário do Centro de Identidade do AWS IAM*.

## Como o Centro de Identidade do IAM funciona
<a name="cli-configure-sso-concepts-process"></a>

O Centro de Identidade do IAM se integra ao provedor de identidade da sua organização, como o Centro de Identidade do IAM, o Microsoft Azure AD ou o Okta. Os usuários se autenticam nesse provedor de identidade e, em seguida, o Centro de Identidade do IAM mapeia essas identidades de acordo com as permissões e o acesso apropriados em seu ambiente da AWS.

O fluxo de trabalho do Centro de Identidade do IAM a seguir pressupõe que você já tenha configurado sua AWS CLI para usar o Centro de Identidade do IAM:

1. No terminal de sua preferência, execute o comando `aws sso login`.

1. Faça login no seu Portal de acesso da AWS para iniciar uma nova sessão. 
   + Ao iniciar uma nova sessão, você recebe um token de atualização e um token de acesso que está armazenado em cache.
   + Se você já tiver uma sessão ativa, a sessão existente será reutilizada e expirará sempre que a sessão existente expirar.

1. Com base no perfil que você configurou em seu arquivo `config`, o Centro de Identidade do IAM assume os conjuntos de permissões apropriados, concedendo acesso às Contas da AWS e aplicações relevantes. 

1. A AWS CLI, os SDKs e as ferramentas usam seu perfil assumido do IAM para fazer chamadas para os Serviços da AWS, Para criar buckets do Amazon S3, até que a sessão expire.

1. O token de acesso do Centro de Identidade do IAM é atualizado automaticamente a cada hora usando o token de atualização.
   + Se o token de acesso expirar, o SDK ou a ferramenta usará o token de atualização para tentar obter um novo token de acesso. As durações das sessões desses tokens são então comparadas e, se o token de atualização não expirar, o Centro de Identidade do IAM fornecerá um novo token de acesso.
   + Se o token de atualização tiver expirado, nenhum novo token de acesso será fornecido e sua sessão será encerrada.

1. As sessões terminam após a expiração dos tokens de atualização ou quando você se desconecta manualmente usando o comando `aws sso logout`. As credenciais armazenadas em cache são removidas. Para continuar acessando os serviços usando o Centro de Identidade do IAM, você deve iniciar uma nova sessão usando o comando `aws sso login`.

## Recursos adicionais
<a name="cli-configure-sso-concepts-resources"></a>

Os recursos adicionais são os seguintes.
+ [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md)
+ [Tutorial: como usar o Centro de Identidade do IAM para executar comandos do Amazon S3 na AWS CLI](cli-configure-sso-tutorial.md)
+ [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md)
+ [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) na *Referência da AWS CLI versão 2*
+ [Configuração para usar a AWS CLI com o CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) no *Guia do usuário do Amazon CodeCatalyst*
+ [Renomeação do Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) no *Guia do usuário do Centro de Identidade do AWS IAM*
+ [Escopos de acesso do OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*
+ [Definir a duração da sessão](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) no *Guia do usuário do Centro de Identidade do AWS IAM*
+ [Tutoriais de conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) no *Guia do usuário do Centro de Identidade do IAM*

# Tutorial: como usar o Centro de Identidade do IAM para executar comandos do Amazon S3 na AWS CLI
<a name="cli-configure-sso-tutorial"></a>

Este tópico descreve como configurar a AWS CLI para autenticar o usuário com o Centro de Identidade do AWS IAM (Centro de Identidade do IAM) e obter credenciais para executar comandos do AWS Command Line Interface (AWS CLI) no Amazon Simple Storage Service (Amazon S3). 

**Topics**
+ [

## Etapa 1: autenticação no Centro de Identidade do IAM
](#cli-configure-sso-tutorial-authentication)
+ [

## Etapa 2: coletar as informações do Centro de Identidade do IAM
](#cli-configure-sso-tutorial-gather)
+ [

## Etapa 3: criar buckets do Amazon S3
](#cli-configure-sso-tutorial-buckets)
+ [

## Etapa 4: instalar a AWS CLI
](#cli-configure-sso-tutorial-install)
+ [

## Etapa 5: configurar seu perfil da AWS CLI
](#cli-configure-sso-tutorial-configure)
+ [

## Etapa 6: fazer login no Centro de Identidade do IAM
](#cli-configure-sso-tutorial-login.title)
+ [

## Etapa 7: executar comandos do Amazon S3
](#cli-configure-sso-tutorial-commands)
+ [

## Etapa 8: fazer logout do Centro de Identidade do IAM
](#cli-configure-sso-tutorial-logout)
+ [

## Etapa 9: limpar os recursos
](#cli-configure-sso-tutorial-cleanup)
+ [

## Solução de problemas
](#cli-configure-sso-tutorial-tshoot)
+ [

## Recursos adicionais
](#cli-configure-sso-tutorial-resources.title)

## Etapa 1: autenticação no Centro de Identidade do IAM
<a name="cli-configure-sso-tutorial-authentication"></a>

Obtenha acesso à autenticação SSO no Centro de Identidade do IAM. Escolha um dos métodos a seguir para acessar as credenciais da AWS.

### Não estabeleci acesso por meio do IAM Identity Center
<a name="idc-access"></a>

Siga as instruções em [Conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) no *Guia do usuário do Centro de Identidade do AWS IAM*. 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.

### Eu já tenho acesso àAWS por meio de um provedor de identidade federado gerenciado pelo meu empregador (como Azure AD ou Okta)
<a name="federated-access"></a>

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. 

### Eu já tenho acesso à AWS por meio do portal de acesso da AWS gerenciado pelo meu empregador
<a name="accessportal-access"></a>

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. 

### Eu já tenho acesso à AWS por meio de um provedor de identidades federadas personalizado gerenciado pelo meu empregador
<a name="customfederated-access"></a>

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

## Etapa 2: coletar as informações do Centro de Identidade do IAM
<a name="cli-configure-sso-tutorial-gather"></a>

Após obter acesso à AWS, 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**.

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

   1. Selecione o método **Credenciais do Centro de Identidade do IAM** para obter os valores de `SSO Start URL` e `SSO Region`.

1. Como alternativa, a partir da versão 2.22.0, é possível usar o novo URL do emissor em vez do URL inicial. O URL do emissor está localizado no console do Centro de Identidade do AWS IAM 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**. 

1. Para obter informações sobre qual valor de escopo registrar, consulte [Escopos de acesso do OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*.

## Etapa 3: criar buckets do Amazon S3
<a name="cli-configure-sso-tutorial-buckets"></a>

Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

Para este tutorial, crie alguns buckets para serem recuperados posteriormente em uma lista.

## Etapa 4: instalar a AWS CLI
<a name="cli-configure-sso-tutorial-install"></a>

Instale a AWS CLI a seguir seguindo as instruções do seu sistema operacional. Para obter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md).

Depois de instalado, você pode verificar a instalação abrindo o terminal de sua preferência e executando o comando a seguir. Isso deve exibir sua versão instalada da AWS CLI. 

```
$ aws --version
```

## Etapa 5: configurar seu perfil da AWS CLI
<a name="cli-configure-sso-tutorial-configure"></a>

Configure o perfil usando um dos métodos a seguir

### Configurar seu perfil com o assistente `aws configure sso`
<a name="li-configure-sso-tutorial-configure-wizard"></a>

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\$1start\$1url`
+ **(Obrigatório)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

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: 

```
$ 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
```

Para compatibilidade com pilha dupla, é possível usar o formato de URL inicial do SSO de pilha dupla:

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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
```

### Configuração manual usando o arquivo `config`
<a name="cli-configure-sso-tutorial-configure-manual"></a>

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\$1start\$1url`
+ **(Obrigatório)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

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 my-dev-profile]
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
sso_registration_scopes = sso:account:access
```

Para compatibilidade com pilha dupla, use o formato de URL inicial do SSO de pilha dupla:

```
[profile my-dev-profile]
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://ssoins-1234567890abcdef.portal.us-east-1.app.aws
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. 

## Etapa 6: fazer login no Centro de Identidade do IAM
<a name="cli-configure-sso-tutorial-login.title"></a>

**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 suas 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
```

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

## Etapa 7: executar comandos do Amazon S3
<a name="cli-configure-sso-tutorial-commands"></a>

Para listar os buckets que você criou anteriormente, use o comando [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). O exemplo a seguir lista todos os seus buckets do Amazon S3.

```
$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2
```

## Etapa 8: fazer logout do Centro de Identidade do IAM
<a name="cli-configure-sso-tutorial-logout"></a>

Quando você terminar de usar seu perfil do Centro de Identidade do IAM, execute o comando a seguir para excluir suas credenciais em cache.

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

## Etapa 9: limpar os recursos
<a name="cli-configure-sso-tutorial-cleanup"></a>

Depois de concluir este tutorial, limpe todos os recursos que você criou durante este tutorial e que você não precisa mais, incluindo buckets do Amazon S3.

## Solução de problemas
<a name="cli-configure-sso-tutorial-tshoot"></a>

Se você encontrar problemas a usar a AWS CLI, consulte [Solução de problemas da AWS CLI](cli-chap-troubleshooting.md) para obter as etapas comuns de solução de problemas.

## Recursos adicionais
<a name="cli-configure-sso-tutorial-resources.title"></a>

Os recursos adicionais são os seguintes.
+ [Conceitos do Centro de Identidade do AWS IAM para a AWS CLI](cli-configure-sso-concepts.md)
+ [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md)
+ [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md)
+ [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) na *Referência da AWS CLI versão 2*
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) na *Referência da AWS CLI versão 2*
+ [Configuração para usar a AWS CLI com o CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html) no *Guia do usuário do Amazon CodeCatalyst*
+ [Escopos de acesso do OAuth 2.0](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) no *Guia do usuário do Centro de Identidade do IAM*
+ [Tutoriais de conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) no *Guia do usuário do Centro de Identidade do IAM*

# Autenticação de credenciais de curto prazo para a AWS CLI
<a name="cli-authentication-short-term"></a>

Recomendamos configurar o SDK ou a ferramenta para usar a [autenticação do IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) com opções de duração de sessão estendida. No entanto, você pode copiar e usar credenciais temporárias que estão disponíveis no portal de acesso da AWS. As novas credenciais precisarão ser copiadas quando essas expirarem. É possível usar as credenciais temporárias em um perfil ou usá-las como valores para propriedades do sistema e variáveis de ambiente.

1. [Faça login no portal de acesso da AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html).

1. Siga [estas instruções](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) para copiar as credenciais de perfil do IAM do portal de acesso da AWS.

   1. Na etapa 2 das instruções vinculadas, escolha a conta da AWS e o nome do perfil do IAM que concede acesso para suas necessidades de desenvolvimento. Esse perfil normalmente tem um nome como **PowerUserAccess** ou **Developer**. 

   1. Na etapa 4, selecione a opção **Adicionar um perfil ao seu arquivo de credenciais da AWS** e copie o conteúdo. 

1. Crie ou abra o arquivo `credentials` compartilhado. Esse arquivo é `~/.aws/credentials` em sistemas Linux e macOS e `%USERPROFILE%\.aws\credentials` no Windows. Para obter mais informações, consulte [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md). 

1. Adicione o texto a seguir ao arquivo `credentials` compartilhado. Substitua os valores da amostra pelas credenciais que você copiou. 

   ```
   [default] 
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE 
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. Adicione a região e o formato padrão preferidos ao arquivo `config` compartilhado. 

   ```
   [default]
   region=us-west-2
   output=json
   
   [profile user1]
   region=us-east-1
   output=text
   ```

Quando o SDK cria um cliente de serviço, ele acessa essas credenciais temporárias e as usa para cada solicitação. As configurações do perfil do IAM escolhidas na etapa 2a determinam [por quanto tempo as credenciais temporárias são válidas](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html). A duração máxima é de doze horas.

Repita essas etapas sempre que suas credenciais expirarem.

# Uso de funções do IAM na AWS CLI
<a name="cli-configure-role"></a>

Um [perfil do AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma ferramenta de autorização que permite que um usuário obtenha permissões adicionais (ou diferentes) ou obtenha permissões para executar ações em uma conta diferente da AWS. 

**Topics**
+ [

## Pré-requisitos
](#cli-role-prereqs)
+ [

## Visão geral do uso de funções do IAM
](#cli-role-overview)
+ [

## Configurar e usar uma função
](#cli-role-prepare)
+ [

## Usar autenticação multifator
](#cli-configure-role-mfa)
+ [

## Funções entre contas e ID externo
](#cli-configure-role-xaccount)
+ [

## Especificar um nome de sessão de função para facilitar a auditoria
](#cli-configure-role-session-name)
+ [

## Assumir a função com a identidade da web
](#cli-configure-role-oidc)
+ [

## Limpar as credenciais em cache
](#cli-configure-role-cache)

## Pré-requisitos
<a name="cli-role-prereqs"></a>

Para executar os comandos `iam`, você precisa instalar e configurar a AWS CLI. Isso inclui a configuração de um perfil configurado, presumindo que uma função esteja associada a outro método de credencial. Para obter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md). 

## Visão geral do uso de funções do IAM
<a name="cli-role-overview"></a>

Você pode configurar a AWS Command Line Interface (AWS CLI) para usar uma função do IAM definindo um perfil para a função no arquivo `~/.aws/config`. 

O exemplo a seguir mostra um perfil de função chamado `marketingadmin`. Se você executar comandos com `--profile marketingadmin` (ou especificá-los com a [variável de ambiente AWS\$1PROFILE](cli-configure-envvars.md)), a AWS CLI usará as credenciais definidas em um perfil do `user1` separado para assumir a função com o nome de recurso da Amazon (ARN) `arn:aws:iam::123456789012:role/marketingadminrole`. É possível executar quaisquer operações que forem permitidas pelas permissões atribuídas a essa função.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
```

Então, é possível especificar um `source_profile` que aponte para um perfil nomeado separado que contenha credenciais de usuário com permissão para usar o perfil. No exemplo anterior, o perfil `marketingadmin` usa as credenciais no perfil `user1`. Quando você especifica que um comando da AWS CLI deve usar o perfil `marketingadmin`, a AWS CLI procura automaticamente as credenciais para o perfil `user1` vinculado e as utiliza para solicitar credenciais temporárias para a função especificada do IAM. A CLI usa a operação [sts:AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) em segundo plano para fazer isso. Essas credenciais temporárias são então usadas para executar o comando da AWS CLI solicitado. A função especificada deve ter políticas de permissão do IAM associadas que permitam a execução do comando da AWS CLI solicitado.

Para executar um comando da AWS CLI em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou um contêiner do Amazon Elastic Container Service (Amazon ECS), você pode usar uma função do IAM anexada ao perfil de instância ou ao contêiner. Se você não especificar nenhum perfil ou não definir variáveis de ambiente, essa função será usada diretamente. Isso permite que você evite armazenar chaves de acesso de longa duração em suas instâncias. Também é possível usar essas funções de instância ou contêiner apenas para obter credenciais para outra função. Para isso, use `credential_source` (em vez de `source_profile`) para especificar como localizar as credenciais. O atributo `credential_source` oferece suporte aos seguintes valores:
+ `Environment`: recupera as credenciais de origem de variáveis de ambiente.
+ `Ec2InstanceMetadata`: usa a função do IAM anexada ao perfil de instância do Amazon EC2.
+ `EcsContainer`: usa a função do IAM anexada ao contêiner do Amazon ECS.

O exemplo a seguir mostra a mesma função `marketingadminrole` usada fazendo referência a um perfil de instância do Amazon EC2.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
```

Ao invocar uma função, você tem opções adicionais que podem ser exigidas, como o uso de autenticação multifator e um ID externo (usado por empresas de terceiros para acessar os recursos de seus clientes). Também é possível especificar nomes de sessão de função exclusivos que possam ser auditados com mais facilidade nos logs do AWS CloudTrail.

## Configurar e usar uma função
<a name="cli-role-prepare"></a>

Ao executar comandos usando um perfil que especifica uma função do IAM, a AWS CLI usa as credenciais do perfil de origem para chamar AWS Security Token Service (AWS STS) e solicitar credenciais temporárias para a função especificada. O usuário no perfil de origem deve ter permissão para chamar `sts:assume-role` para a função no perfil especificado. A função deve ter uma relação de confiança que permita que o usuário no perfil de origem use a função. Geralmente, o processo de recuperar e depois usar credenciais temporárias para uma função é chamado de *assumir a função*.

É possível criar um perfil no IAM com as permissões que você deseja que os usuários assumam seguindo o procedimento em [Criação de um perfil para conceder permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) no *Manual do usuário do AWS Identity and Access Management*. Se a função e o usuário do do perfil de origem estão na mesma conta, é possível inserir seu próprio ID de conta ao configurar a relação de confiança da função.

Depois de criar a função, modifique a relação de confiança para permitir que o usuário assumir . 

O exemplo a seguir mostra uma política de confiança que pode ser associada a uma função. Essa política permite que o perfil seja assumido por qualquer usuário na conta 123456789012, ***se*** o administrador dessa conta conceder explicitamente a permissão `sts:AssumeRole` ao usuário.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

A política de confiança não concede permissões. O administrador da conta deve delegar a permissão para assumir a função para usuários individuais, anexando uma política com as permissões apropriadas. O exemplo a seguir mostra uma política que pode ser associada a um usuário, permitindo que ele assuma apenas o perfil `marketingadminrole`. Para obter mais informações sobre como conceder a um usuário acesso para assumir uma função, consulte [Como conceder a um usuário permissão para alternar funções no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) no *Manual do usuário do IAM*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
    }
  ]
}
```

------

O usuário não precisa ter permissões adicionais para executar os comandos da AWS CLI usando o perfil. Em vez disso, as permissões para executar o comando vêm das associadas à *função*. Você pode associar políticas à função para especificar quais ações podem ser executadas em quais recursos da AWS. Para obter mais informações sobre como associar permissões a um perfil (que funciona de maneira idêntica a um usuário), consulte [Alteração de permissões de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) no *Manual do usuário do IAM*.

Agora que o perfil de função, as permissões de função, a relação de confiança de função e as permissões de usuário estão configurados corretamente, é possível usar a função na linha de comando invocando a opção `--profile`. Por exemplo, o indicado a seguir chama o comando `ls` do Amazon S3 usando as permissões anexadas à função `marketingadmin`, conforme definido no exemplo no início desse tópico.

```
$ aws s3 ls --profile marketingadmin
```

Para usar a função para várias chamadas, defina a variável de ambiente `AWS_PROFILE` para a sessão atual na linha de comando. Enquanto essa variável de ambiente é definida, você não precisa especificar a opção `--profile` em cada comando. 

**Linux ou macOS**

```
$ export AWS_PROFILE=marketingadmin
```

**Windows**

```
C:\> setx AWS_PROFILE marketingadmin
```

Para obter mais informações sobre como configurar usuários e funções, consulte [Identidades do IAM (usuários, grupos de usuários e perfis)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-roles.html) no *Guia do usuário do IAM*.

## Usar autenticação multifator
<a name="cli-configure-role-mfa"></a>

Para segurança adicional, você pode exigir que os usuários forneçam uma chave única gerada a partir de um dispositivo de autenticação multifator (MFA), um dispositivo U2F ou uma aplicação móvel quando eles tentarem fazer uma chamada usando o perfil de função.

Primeiro, você pode optar por modificar a relação de confiança na função do IAM para exigir MFA. Isso impede que alguém usando a função sem antes autenticar usando MFA. Por exemplo, veja a linha `Condition` no exemplo a seguir. Essa política permite que o usuário chamado `anika` assuma o perfil ao qual a política está anexada, mas somente se ele se autenticar usando MFA. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
      "Action": "sts:AssumeRole",
      "Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
    }
  ]
}
```

------

Depois, adicione uma linha à função que especifica o perfil do usuário ARN do dispositivo MFA. As entradas do exemplo de arquivo `config` a seguir mostram dois perfis que usam as chaves de acesso para o usuário `anika` solicitar credenciais temporárias para o perfil `cli-role`. O usuário `anika` tem permissão para assumir a função, concedida pela política de confiança da função.

```
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile cli-user]
region = us-west-2
output = json
```

A configuração `mfa_serial` pode usar um ARN, conforme mostrado, ou o número de série de um token MFA de hardware.

O primeiro perfil, `role-without-mfa`, não exige MFA. No entanto, como a política de confiança do exemplo anterior anexada à função requer MFA, qualquer tentativa de executar um comando com esse perfil vai falhar.

```
$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
```

A segunda entrada do perfil, `role-with-mfa`, identifica um dispositivo MFA para usar. Quando o usuário tenta executar um comando da AWS CLI com esse perfil, a AWS CLI solicita que o usuário insira a senha de uso único (OTP) fornecida pelo dispositivo MFA. Se a autenticação de MFA for bem-sucedida, o comando executará a operação solicitada. A OTP não é exibida na tela.

```
$ aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user:
{
    "Users": [
        {
            ...
```

## Funções entre contas e ID externo
<a name="cli-configure-role-xaccount"></a>

É possível permitir que os usuários do usem funções que pertençam a diferentes contas ao configurar a função como uma função entre contas. Durante a criação do perfil, defina o tipo de perfil como **Outra conta da AWS**, conforme descrito em [Criar um perfil para conceder permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Como opção, selecione **Require MFA (Exigir MFA)**. **Require MFA (Exigir MFA)** configura a condição apropriada na relação de confiança, conforme descrito em [Usar autenticação multifator](#cli-configure-role-mfa).

Se usar um [ID externo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) para fornecer mais controle sobre quem pode usar uma função em todas as contas, você também deverá adicionar o parâmetro `external_id` ao perfil da função. Normalmente, isso é usado somente quando a outra conta é controlada por alguém de fora da sua empresa ou organização.

```
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```

## Especificar um nome de sessão de função para facilitar a auditoria
<a name="cli-configure-role-session-name"></a>

Quando muitos indivíduos compartilham uma função, a auditoria torna-se um desafio. É recomendável associar cada operação invocada ao indivíduo que invocou a ação. No entanto, quando o indivíduo usa uma função, a assunção da função por ele é uma ação separada da invocação de uma operação, e é necessário correlacionar manualmente as duas.

É possível simplificar isso especificando nomes de sessão de função exclusivos quando os usuários assumem uma função. Para fazer isso, adicione um parâmetro `role_session_name` a cada perfil nomeado no arquivo `config` que especifica uma função. O valor `role_session_name` é transmitido para a operação `AssumeRole` e se torna parte do ARN da sessão da função. Ele também é incluído nos logs do AWS CloudTrail de todas as operações registradas.

Por exemplo, é possível criar um perfil baseado em função da maneira a seguir. 

```
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
```

Isso faz com que a sessão da função tenha o ARN a seguir.

```
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
```

Além disso, todos os logs do AWS CloudTrail incluem o nome da sessão da função nas informações capturadas para cada operação.

## Assumir a função com a identidade da web
<a name="cli-configure-role-oidc"></a>

É possível configurar um perfil para indicar que a AWS CLI deve assumir uma função usando a [federação de identidades da web e o Open ID Connect (OIDC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). Quando isso é especificado em um perfil, a AWS CLI faz automaticamente a chamada AWS STS `AssumeRoleWithWebIdentity` correspondente para você.

**nota**  
Quando você especifica um perfil que usa uma função do IAM, a AWS CLI faz as chamadas apropriadas para recuperar credenciais temporárias. Essas credenciais são armazenadas em `~/.aws/cli/cache`. Os comandos subsequentes da AWS CLI que especificam o mesmo perfil usam as credenciais temporárias armazenadas em cache até que elas expirem. Nesse ponto, a AWS CLI atualiza automaticamente as credenciais.

Para recuperar e usar credenciais temporárias usando a federação de identidades da web, é possível especificar os valores de configuração a seguir em um perfil compartilhado.

[role\$1arn](#cli-configure-role)  
Especifica o ARN da função a assumir.

web\$1identity\$1token\$1file  
Especifica o caminho para um arquivo que contém um token de acesso OAuth 2.0 ou token de ID OpenID Connect fornecido pelo provedor de identidade. A AWS CLI carrega esse arquivo e transmite seu conteúdo como o argumento `WebIdentityToken` da operação `AssumeRoleWithWebIdentity`.

[role\$1session\$1name](#cli-configure-role-session-name)  
Especifica um nome opcional aplicado a essa sessão assume-role.

Veja a seguir um exemplo da configuração mínima necessária para uma função de admissão com o perfil de identidade da web:

```
# In ~/.aws/config

[profile web-identity]
role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token
```

Também é possível fornecer essa configuração usando [variáveis de ambiente](cli-configure-envvars.md).

AWS\$1ROLE\$1ARN  
O ARN da função a ser assumida

AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE  
O caminho para o arquivo de token de identidade da web.

AWS\$1ROLE\$1SESSION\$1NAME  
O nome aplicado a essa sessão assume-role.

**nota**  
No momento, essas variáveis de ambiente se aplicam somente à função de admissão com o provedor de identidade da web. Elas não se aplicam à configuração geral do provedor de função.

## Limpar as credenciais em cache
<a name="cli-configure-role-cache"></a>

Quando você usa uma função, a AWS CLI armazena em cache as credenciais temporárias localmente até que elas expirem. Na próxima vez que você tentar usá-las, a AWS CLI tentará renová-las em seu nome. 

Se as credenciais temporárias da função forem [revogadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html), elas não serão renovadas automaticamente, e as tentativas de usá-las falharão. No entanto, é possível excluir o cache para forçar a AWS CLI a recuperar novas credenciais.

**Linux ou macOS**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

# Autenticação usando credenciais de usuário do IAM para a AWS CLI
<a name="cli-authentication-user"></a>

**Atenção**  
Para evitar riscos de segurança, não use usuários do IAM para autenticação ao desenvolver software com propósito específico ou trabalhar com dados reais. Em vez disso, use federação com um provedor de identidade, como [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

Essa seção explica como definir as configurações básicas com um usuário do IAM. Isso inclui suas credenciais de segurança usando os arquivos `config` e `credentials`. Em vez disso, veja as instruções de configuração do Centro de Identidade do AWS IAM; consulte [Definição da autenticação do Centro de Identidade do IAM com a AWS CLI](cli-configure-sso.md).

**Contents**
+ [

## Etapa 1: criar o usuário do IAM
](#cli-authentication-user-create)
+ [

## Etapa 2: obter as chaves de acesso
](#cli-authentication-user-get)
+ [

## Etapa 3: configurar a AWS CLI
](#cli-authentication-user-configure.title)
  + [

### Usar o `aws configure`
](#cli-authentication-user-configure-wizard)
  + [

### Importar chaves de acesso por meio do arquivo .CSV
](#cli-authentication-user-configure-csv)
  + [

### Editar diretamente os arquivos `config` e `credentials`
](#cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file)
+ [

## (Opcional) Usar autenticação multifator com suas credenciais de usuário do IAM
](#cli-authentication-user-configure-csv.titlecli-authentication-user-mfa)

## Etapa 1: criar o usuário do IAM
<a name="cli-authentication-user-create"></a>

Crie o usuário do IAM seguindo o procedimento de [Criação de usuários do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 
+ Em **Opções de permissão**, escolha **Anexar políticas diretamente** para como você deseja atribuir permissões a esse usuário.
+ A maioria dos tutoriais de “Conceitos básicos” do SDK usa o serviço Amazon S3 como exemplo. Para fornecer à aplicação acesso total ao Amazon S3, selecione a política `AmazonS3FullAccess` para anexar a esse usuário.

## Etapa 2: obter as chaves de acesso
<a name="cli-authentication-user-get"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console do IAM, selecione **Usuários** e escolha o usuário **`User name`** que você criou anteriormente. 

1. Na página do usuário, selecione a página **Credenciais de segurança**. Depois, em **Chaves de acesso**, selecione **Criar chave de acesso**.

1.  Em **Criar chave de acesso: etapa 1**, escolha **Command Line Interface (CLI)**.

1. Em **Criar chave de acesso: etapa 2**, insira uma tag opcional e selecione **Próximo**. 

1. Em **Criar chave de acesso: etapa 3**, selecione **Baixar arquivo .csv** para salvar um arquivo `.csv` com a chave de acesso e a chave de acesso secreta do usuário do IAM. Você precisará dessas informações posteriormente.

1. Selecione Concluído.

## Etapa 3: configurar a AWS CLI
<a name="cli-authentication-user-configure.title"></a>

Para uso geral, a AWS CLI precisa das seguintes informações:
+ Access key ID (ID da chave de acesso)
+ Secret access key (Chave de acesso secreta)
+ Região da AWS
+ Formato de saída

A AWS CLI armazena essas informações em um *perfil* (um conjunto de configurações) chamado `default` no arquivo `credentials`. Por padrão, as informações neste perfil são usadas quando você executa um comando da AWS CLI que não especifica explicitamente um perfil a ser usado. Para obter mais informações sobre o arquivo `credentials`, consulte [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md).

Para configurar a AWS CLI, use um dos seguintes procedimentos:

**Topics**
+ [

### Usar o `aws configure`
](#cli-authentication-user-configure-wizard)
+ [

### Importar chaves de acesso por meio do arquivo .CSV
](#cli-authentication-user-configure-csv)
+ [

### Editar diretamente os arquivos `config` e `credentials`
](#cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file)

### Usar o `aws configure`
<a name="cli-authentication-user-configure-wizard"></a>

Para uso geral, o comando `aws configure` é a maneira mais rápida de configurar sua instalação da AWS CLI. Esse assistente de configuração solicita cada informação necessária para começar. A menos que especificado de outra forma usando a opção `--profile`, a AWS CLI armazena essas informações no perfil `default`.

O exemplo a seguir configura um perfil `default` usando valores de amostra. Substitua-os por seus próprios valores, conforme descrito nas seções a seguir.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

O exemplo a seguir configura um perfil chamado `userprod` usando valores de amostra. Substitua-os por seus próprios valores, conforme descrito nas seções a seguir.

```
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

### Importar chaves de acesso por meio do arquivo .CSV
<a name="cli-authentication-user-configure-csv"></a>

Em vez de usar o `aws configure` para inserir chaves de acesso, você pode importar o arquivo `.csv` de texto simples que baixou depois de criar as chaves de acesso. 

O arquivo `.csv` deve conter os cabeçalhos a seguir.
+ Nome de usuário: essa coluna deve ser adicionada ao `.csv`. Isso é usado para criar o nome do perfil usado nos arquivos `config` e `credentials` ao importar.
+ Access key ID (ID da chave de acesso)
+ Secret access key (Chave de acesso secreta)

**nota**  
Durante a criação inicial das chaves de acesso, depois de fechar a caixa de diálogo **Baixar arquivo .csv**, você não poderá acessar a chave de acesso secreta. Se você precisar de um arquivo `.csv`, será necessário criá-lo por conta própria com os cabeçalhos necessários e as informações das chaves de acesso armazenadas. Se você não tiver acesso às informações das chaves de acesso, será necessário criar outras chaves de acesso.

Para importar o arquivo `.csv`, use o comando `aws configure import` com a opção `--csv` da seguinte forma:

```
$ aws configure import --csv file://credentials.csv
```

Para obter mais informações, consulte `aws\$1configure\$1import`.

### Editar diretamente os arquivos `config` e `credentials`
<a name="cli-authentication-user-configure-csv.titlecli-authentication-user-configure-file"></a>

Para editar diretamente os arquivos `config` e `credentials`, faça o seguinte.

1. Crie ou abra o arquivo `credentials` da AWS compartilhado. Esse arquivo é `~/.aws/credentials` em sistemas Linux e macOS e `%USERPROFILE%\.aws\credentials` no Windows. Para obter mais informações, consulte [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md). 

1. Adicione o texto a seguir ao arquivo `credentials` compartilhado. Substitua os valores de amostra no arquivo `.csv` que você baixou anteriormente e salve o arquivo. 

   ```
   [default] 
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE 
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   ```

## (Opcional) Usar autenticação multifator com suas credenciais de usuário do IAM
<a name="cli-authentication-user-configure-csv.titlecli-authentication-user-mfa"></a>

Para aumentar a segurança, você pode uma chave única gerada a partir de um dispositivo de autenticação multifator (MFA), um dispositivo U2F ou um aplicativo móvel ao tentar fazer uma chamada.

Com seu usuário do IAM habilitado para MFA, execute o comando [https://docs.aws.amazon.com/cli/latest/reference/configure/mfa-login.html](https://docs.aws.amazon.com/cli/latest/reference/configure/mfa-login.html) para configurar um novo perfil e usar a autenticação multifator (MFA) com o perfil especificado. Se nenhum perfil for especificado, a MFA será baseada no perfil `default`. Se nenhum perfil padrão estiver configurado, o comando `mfa-login` solicitará suas credenciais da AWS antes de solicitar suas informações de MFA. O exemplo de comando a seguir usa sua configuração padrão e cria um perfil de MFA.

```
$ aws configure mfa-login
MFA serial number or ARN: arn:aws:iam::123456789012:mfa/MFADeviceName
MFA token code: 123456
Profile to update [session-MFADeviceName]:
Temporary credentials written to profile 'session-MFADeviceName'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile session-MFADeviceName when running AWS CLI commands
```

Para atualizar um perfil existente, use o parâmetro `--update-profile`.

```
$ aws configure mfa-login --profile myprofile --update-profile mfaprofile
MFA token code: 123456
Temporary credentials written to profile 'mfaprofile'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile mfaprofile when running AWS CLI commands
```

No momento, este comando é compatível somente com autenticadores de senha de uso único (OTP) baseados em hardware ou software. No momento, não é possível usar esse comando com chaves de acesso e dispositivos U2F.

Para usar seu perfil de MFA, use a opção `--profile` com seus comandos.

```
$ aws s3 ls --profile mfaprofile
```

Para ter mais informações sobre como usar a MFA com o IAM, inclusive sobre como atribuir a MFA a um usuário do IAM, consulte [Autenticação multifator da AWS no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) no *Guia do usuário do AWS Identity and Access Management*.

# Uso de metadados da instância do Amazon EC2 como credenciais na AWS CLI
<a name="cli-configure-metadata"></a>

Quando você executa a AWS CLI em uma instância do Amazon Elastic Compute Cloud (Amazon EC2), é possível simplificar o fornecimento de credenciais aos seus comandos. Cada instância do Amazon EC2 contém metadados que a AWS CLI pode consultar diretamente por credenciais temporárias. Quando uma função do IAM é associada à instância, a AWS CLI recupera de forma automática e segura as credenciais dos metadados da instância. 

Para desabilitar esse serviço, use a variável de ambiente [AWS\$1EC2\$1METADATA\$1DISABLED](cli-configure-envvars.md#envvars-list-AWS_EC2_METADATA_DISABLED).

**Topics**
+ [

## Pré-requisitos
](#cli-configure-metadata-prereqs)
+ [

## Configuração de um perfil para metadados do Amazon EC2
](#cli-configure-metadata-configure)

## Pré-requisitos
<a name="cli-configure-metadata-prereqs"></a>

Para usar credenciais do Amazon EC2 com a AWS CLI, é necessário concluir o seguinte:
+ Instale e configure a AWS CLI. Para ter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md) e [Autenticação e credenciais de acesso para a AWS CLI](cli-chap-authentication.md).
+ Conhecer os arquivos de configuração e os perfis nomeados. Para obter mais informações, consulte [Configurações do arquivo de configuração e credenciais na AWS CLI](cli-configure-files.md). 
+ Você criou uma função do AWS Identity and Access Management (IAM) que tem acesso aos recursos necessários e associou essa função à instância do Amazon EC2 ao iniciá-la. Para obter mais informações, consulte [Políticas do IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) no *Guia do usuário do Amazon EC2* e [Conceder de acesso a recursos da AWS para aplicações executadas em instâncias do Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html) no *Guia do usuário do IAM*.

## Configuração de um perfil para metadados do Amazon EC2
<a name="cli-configure-metadata-configure"></a>

Para especificar que você deseja usar as credenciais disponíveis no perfil de instância de hospedagem do Amazon EC2, use a sintaxe a seguir no perfil nomeado em seu arquivo de configuração. Veja as etapas a seguir para obter mais instruções. 

```
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
```

1. Crie um perfil em seu arquivo de configuração.

   ```
   [profile profilename]
   ```

1. Adicione a função arn do IAM que tem acesso aos recursos necessários.

   ```
   role_arn = arn:aws:iam::123456789012:role/rolename
   ```

1. Especifique `Ec2InstanceMetadata` como sua fonte de credencial.

   ```
   credential_source = Ec2InstanceMetadata
   ```

1. Defina sua região.

   ```
   region = region
   ```

**Exemplo**

O exemplo a seguir assume o perfil *`marketingadminrole`* e usa a região `us-west-2` em um perfil de instância do Amazon EC2 chamado `marketingadmin`.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
```

# Credenciais de fornecimento com um processo externo na AWS CLI
<a name="cli-configure-sourcing-external"></a>

**Atenção**  
Este tópico discute as credenciais de fornecimento de um processo externo. Isso poderá ser um risco de segurança se o comando para gerar as credenciais se tornar acessível por processos ou usuários não aprovados. Recomendamos que você use as alternativas seguras compatíveis fornecidas pela AWS CLI e pela AWS para reduzir o risco de comprometer suas credenciais. Certifique-se de proteger o arquivo `config` e todos os arquivos e ferramentas com suporte para impedir a divulgação.  
Certifique-se de que sua ferramenta de credenciais personalizada não grave informações secretas em `StdErr` porque os SDKs e a AWS CLI podem capturar e registrar essas informações, possivelmente expondo-as a usuários não autorizados.

Se você tiver um método para gerar ou procurar credenciais não compatíveis diretamente com a AWS CLI, poderá configurar a AWS CLI para usá-lo definindo a configuração `credential_process` no arquivo `config`. 

Por exemplo, você pode incluir uma entrada semelhante à seguinte no arquivo `config`.

```
[profile developer]
credential_process = /opt/bin/awscreds-custom --username helen
```

**Sintaxe**  
Para criar essa string de uma forma compatível com qualquer sistema operacional, siga estas regras:
+ Se o caminho ou o nome do arquivo contiver um espaço, coloque o caminho completo e o nome do arquivo entre aspas duplas (“ ”). O caminho e o nome do arquivo podem ter somente os caracteres: A–Z a–z 0–9 - \$1 . espaço
+ Se um nome de parâmetro ou um valor de parâmetro tiver um espaço, coloque esse elemento entre aspas duplas (“ ”). Coloque somente o nome ou o valor entre aspas, não o par.
+ Não inclua variáveis de ambiente nas strings. Por exemplo, não inclua `$HOME` ou `%USERPROFILE%`.
+ Não especifique a pasta base como `~`. É necessário especificar o caminho completo.

**Exemplo para Windows**

```
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
```

**Exemplo para Linux ou macOS**

```
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
```

**Saída esperada do programa de credenciais**

A AWS CLI executa o comando conforme especificado no perfil e lê os dados de `STDOUT`. O comando especificado deverá gerar a saída JSON em `STDOUT` que corresponde à sintaxe a seguir.

```
{
  "Version": 1,
  "AccessKeyId": "an AWS access key",
  "SecretAccessKey": "your AWS secret access key",
  "SessionToken": "the AWS session token for temporary credentials", 
  "Expiration": "ISO8601 timestamp when the credentials expire"
}
```

**nota**  
No momento da elaboração deste documento, a chave `Version` deve ser definida como `1`. Isso pode aumentar ao longo do tempo conforme a estrutura evolui.

A chave `Expiration` é um timestamp no formato [ISO8601](https://en.wikipedia.org/wiki/ISO_8601). Se a chave `Expiration` não estiver presente na saída da ferramenta, a CLI vai supor que as credenciais são em longo prazo que não são atualizadas. Caso contrário, as credenciais serão consideradas temporárias e serão atualizadas automaticamente com a nova execução do comando `credential_process` antes de expirarem.

**nota**  
A AWS CLI ***não*** armazena em cache as credenciais do processo como faz com credenciais assume-role. Se o armazenamento em cache for obrigatório, implemente-o no processo externo.

O processo externo pode retornar um código de retorno diferente de zero para indicar que ocorreu um erro ao recuperar as credenciais.