

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