

A versão 5 (V5) do Ferramentas da AWS para PowerShell foi lançada\$1

Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o [tópico de migração](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html).

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando AWS credenciais
<a name="specifying-your-aws-credentials"></a>

Cada Ferramentas da AWS para PowerShell comando deve incluir um conjunto de AWS credenciais, que são usadas para assinar criptograficamente a solicitação de serviço web correspondente. Você pode especificar credenciais por comando, por sessão ou para todas as sessões. 

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

**nota**  
As informações neste tópico são para circunstâncias em que você precisa obter e gerenciar manualmente as credenciais de curto ou longo prazo. Para obter informações adicionais sobre credenciais de curto e longo prazo, consulte [Outras formas de autenticação no Guia](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html) de *referência de ferramentas AWS SDKs e ferramentas*.  
Para obter as melhores práticas de segurança Centro de Identidade do AWS IAM, use, conforme descrito em[Autenticando com AWS](creds-idc.md).

Como melhor prática, para evitar expor suas credenciais, não coloque credenciais literais em um comando. Em vez disso, crie um perfil para cada conjunto de credenciais que você deseja usar e armazene o perfil em um dos dois armazenamentos de credenciais. Especifique o nome correto do perfil no comando e o Ferramentas da AWS para PowerShell recuperará as credenciais associadas. Para uma discussão geral sobre como gerenciar AWS credenciais com segurança, consulte [Melhores práticas para gerenciar chaves de AWS acesso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) no *Referência geral da Amazon Web Services*.

**nota**  
Você precisa de uma AWS conta para obter credenciais e usar o. Ferramentas da AWS para PowerShell Para criar uma AWS conta, consulte [Primeiros passos: você é um AWS usuário iniciante](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)? no *Guia AWS Gerenciamento de contas de referência*.

**Topics**
+ [Locais de armazenamento de credenciais](#specifying-your-aws-credentials-store)
+ [Como gerenciar perfis](#managing-profiles)
+ [Especificação de credenciais](#specifying-your-aws-credentials-use)
+ [Ordem de pesquisa de credenciais](#pstools-cred-provider-chain-legacy)
+ [Tratamento de credenciais em AWS Tools for PowerShell Core](#credential-handling-in-aws-tools-for-powershell-core)

## Locais de armazenamento de credenciais
<a name="specifying-your-aws-credentials-store"></a>

Eles Ferramentas da AWS para PowerShell podem usar qualquer um dos dois armazenamentos de credenciais:
+ O repositório do AWS SDK, que criptografa suas credenciais e as armazena em sua pasta pessoal. No Windows, esse armazenamento está localizado em: `C:\Users\username\AppData\Local\AWSToolkit\RegisteredAccounts.json`.

  O [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/) e o [Toolkit for Visual Studio](https://aws.amazon.com/visualstudio/) também podem usar o armazenamento do AWS SDK.
+ O arquivo de credenciais compartilhadas, que também está localizado na pasta inicial, mas armazena credenciais como texto sem formatação.

  Por padrão, o arquivo de credenciais é armazenado aqui:
  + No Windows: `C:\Users\username\.aws\credentials`
  + No Mac/Linux: `~/.aws/credentials` 

  O AWS SDKs e o também AWS Command Line Interface podem usar o arquivo de credenciais. Se você estiver executando um script fora do seu contexto de AWS usuário, certifique-se de que o arquivo que contém suas credenciais seja copiado para um local onde todas as contas de usuário (sistema e usuário locais) possam acessar suas credenciais.

## Como gerenciar perfis
<a name="managing-profiles"></a>

Os perfis permitem que você faça referência a diferentes conjuntos de credenciais com Ferramentas da AWS para PowerShell. Você pode usar Ferramentas da AWS para PowerShell cmdlets para gerenciar seus perfis na loja do AWS SDK. Você também pode gerenciar perfis no armazenamento do AWS SDK usando o [Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/tkv_setup.html) ou programaticamente usando o [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/). Para obter instruções sobre como gerenciar perfis no arquivo de credenciais, consulte [Melhores práticas para gerenciar chaves de AWS acesso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html).

### Adicionar um novo perfil
<a name="add-a-new-profile"></a>

Para adicionar um novo perfil ao repositório do AWS SDK, execute o comando`Set-AWSCredential`. Ele armazena sua chave de acesso e a chave secreta no arquivo de credenciais padrão sob o nome de perfil especificado.

```
PS > Set-AWSCredential `
                 -AccessKey AKIA0123456787EXAMPLE `
                 -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY `
                 -StoreAs MyNewProfile
```
+  `-AccessKey`: o ID da chave de acesso.
+  `-SecretKey`– a chave secreta.
+  `-StoreAs`– o nome do perfil, que deve ser exclusivo. Para especificar o perfil padrão, use o nome `default`.

### Atualizar um perfil
<a name="update-a-profile"></a>

O armazenamento do AWS SDK deve ser mantido manualmente. Se você alterar posteriormente as credenciais no serviço, por exemplo, usando o [Console do IAM](https://console.aws.amazon.com/iam/home), ocorrerá falha na execução de um comando com as credenciais armazenadas exibindo a seguinte mensagem de erro:

```
The Access Key Id you provided does not exist in our records.
```

Você pode atualizar um perfil repetindo o comando `Set-AWSCredential` para o perfil e passando para ele a novas chaves de acesso e chaves secretas.

### Listar perfis
<a name="list-profiles"></a>

Você pode verificar a lista atual de nomes com o comando a seguir. Nesse exemplo, uma usuária chamada Shirley tem acesso a três perfis que são armazenados no arquivo de credenciais compartilhadas (`~/.aws/credentials`).

```
PS > Get-AWSCredential -ListProfileDetail

ProfileName  StoreTypeName         ProfileLocation
-----------  -------------         ---------------
default      SharedCredentialsFile /Users/shirley/.aws/credentials
production   SharedCredentialsFile /Users/shirley/.aws/credentials
test         SharedCredentialsFile /Users/shirley/.aws/credentials
```

### Remover um perfil
<a name="remove-a-profile"></a>

Para remover um perfil que você não precisa mais, use o comando a seguir.

```
PS > Remove-AWSCredentialProfile -ProfileName an-old-profile-I-do-not-need
```

O parâmetro `-ProfileName` especifica o perfil que você deseja excluir.

O comando obsoleto [Clear-](https://docs.aws.amazon.com/powershell/v5/reference/items/Clear-AWSCredential.html) ainda AWSCredential está disponível para compatibilidade com versões anteriores, mas é preferível. `Remove-AWSCredentialProfile`

## Especificação de credenciais
<a name="specifying-your-aws-credentials-use"></a>

Há várias maneiras de especificar credenciais. A forma preferida é identificar um perfil em vez de incorporar credenciais literais à sua linha de comando. Ferramentas da AWS para PowerShell localiza o perfil usando uma ordem de pesquisa descrita em Ordem de [Pesquisa de Credenciais.](#pstools-cred-provider-chain-legacy)

No Windows, AWS as credenciais armazenadas no repositório do AWS SDK são criptografadas com a identidade de usuário do Windows conectado. Elas não podem ser descriptografadas usando outra conta, ou usadas em um dispositivo diferente daquele no qual foram criadas originalmente. Para executar tarefas que exigem as credenciais de outro usuário, como uma conta de usuário na qual uma tarefa programada será executada, configure um perfil de credenciais criptografadas, conforme descrito na seção anterior, que você pode usar ao fazer login no computador como esse usuário. Faça login como o usuário que executa tarefas para concluir as etapas de configuração de credenciais e crie um perfil que funcione para esse usuário. Em seguida, faça logout e depois faça login novamente com as suas credenciais para configurar a tarefa agendada.

**nota**  
Use o parâmetro `-ProfileName` comum para especificar um perfil. Esse parâmetro é equivalente ao `-StoredCredentials` parâmetro em Ferramentas da AWS para PowerShell versões anteriores. Para compatibilidade com versões anteriores, o `-StoredCredentials` ainda é suportado.

### Perfil padrão (recomendado)
<a name="default-profile-recommended"></a>

Todas AWS SDKs as ferramentas de gerenciamento podem encontrar suas credenciais automaticamente em seu computador local se as credenciais estiverem armazenadas em um perfil chamado. `default` Por exemplo, caso você tenha um perfil nomeado como `default` no computador local, não é necessário executar o cmdlet `Initialize-AWSDefaultConfiguration` nem o cmdlet `Set-AWSCredential`. As ferramentas usam automaticamente os dados de chave secreta e chave de acesso. armazenados nesse perfil. Para usar a região da AWS em vez da região padrão (os resultados do `Get-DefaultAWSRegion`), você pode executar `Set-DefaultAWSRegion` e especificar uma região.

Se o perfil não foi nomeado `default`, mas você deseja usá-lo como perfil padrão para a sessão atual, execute `Set-AWSCredential` para defini-lo como perfil padrão.

Embora a execução `Initialize-AWSDefaultConfiguration` permita especificar um perfil padrão para cada PowerShell sessão, o cmdlet carrega as credenciais do seu perfil com nome personalizado, mas substitui o `default` perfil pelo perfil nomeado.

Recomendamos que você não execute `Initialize-AWSDefaultConfiguration` a menos que esteja executando uma PowerShell sessão em uma instância do Amazon EC2 que não tenha sido iniciada com um perfil de instância e queira configurar o perfil de credencial manualmente. Observe que, nesse caso, o perfil de credencial não contém credenciais. O perfil de credencial resultante da execução de `Initialize-AWSDefaultConfiguration` em uma instância do EC2 não armazena credenciais diretamente, mas aponta para os metadados da instância (que fornecem credenciais temporárias que são alternadas automaticamente). No entanto, ele armazena a região da instância. Outro cenário que pode exigir a execução de `Initialize-AWSDefaultConfiguration` ocorre se você deseja executar uma chamada em uma região diferente da região em que a instância está em execução. Executar esse comando substitui permanentemente a região armazenada nos metadados da instância.

```
PS > Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
```

**nota**  
As credenciais padrão estão incluídas no repositório do AWS SDK abaixo do nome do `default` perfil. O comando substitui qualquer perfil existente por esse nome.

Se sua instância do EC2 foi executada com um perfil de instância, obtém PowerShell automaticamente AWS as credenciais e as informações da região do perfil da instância. Não é necessário executar `Initialize-AWSDefaultConfiguration`. Não é necessário executar o `Initialize-AWSDefaultConfiguration` cmdlet em uma instância do EC2 iniciada com um perfil de instância, pois ele usa os mesmos dados de perfil de instância que PowerShell já são usados por padrão.

### Perfil de sessão
<a name="session-profile"></a>

Use `Set-AWSCredential` para especificar um perfil padrão para uma sessão específica. Esse perfil substitui todos os perfis padrão durante a sessão. Isso é recomendado se você deseja usar um perfil com nome personalizado em sua sessão em vez do perfil `default` atual.

```
PS > Set-AWSCredential -ProfileName MyProfileName
```

**nota**  
Nas versões do Tools for Windows PowerShell anteriores à 1.1, o `Set-AWSCredential` cmdlet não funcionava corretamente e substituía o perfil especificado por "”. MyProfileName Recomendamos usar uma versão mais recente das Ferramentas para Windows PowerShell.

### Perfil de comando
<a name="command-profile"></a>

Em comandos individuais, você pode adicionar o parâmetro `-ProfileName` para especificar um perfil que se aplique apenas a esse comando. Esse perfil substitui todos os perfis padrão ou de sessão, conforme exibido no exemplo a seguir.

```
PS > Get-EC2Instance -ProfileName MyProfileName
```

**nota**  
Quando você especificar um perfil padrão ou de sessão, também poderá adicionar um parâmetro `-Region` para substituir uma região padrão ou de sessão. Para obter mais informações, consulte [Especifique a AWS região para o Ferramentas da AWS para PowerShell](pstools-installing-specifying-region.md). O exemplo a seguir especifica uma região ou um perfil padrão.  

```
PS > Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
```

Por padrão, presume-se que o arquivo de credenciais AWS compartilhadas esteja na pasta pessoal do usuário (`C:\Users\username\.aws`no Windows ou `~/.aws` no Linux). Para especificar um arquivo de credenciais em um local diferente, inclua o parâmetro `-ProfileLocation` e especifique o caminho do arquivo de credenciais. O exemplo a seguir especifica um arquivo de credenciais não padrão para um comando específico.

```
PS > Get-EC2Instance -ProfileName MyProfileName -ProfileLocation C:\aws_service_credentials\credentials
```

**nota**  
Se você estiver executando um PowerShell script durante um período em que normalmente não está conectado AWS— por exemplo, está executando um PowerShell script como uma tarefa agendada fora do horário normal de trabalho — adicione o `-ProfileLocation` parâmetro ao especificar o perfil que deseja usar e defina o valor para o caminho do arquivo que armazena suas credenciais. Para ter certeza de que seu Ferramentas da AWS para PowerShell script é executado com as credenciais corretas da conta, você deve adicionar o `-ProfileLocation` parâmetro sempre que o script for executado em um contexto ou processo que não usa uma AWS conta. Você também pode copiar o arquivo de credenciais em um local que pode ser acessado no sistema local ou outra conta que seus scripts usem para executar tarefas.

## Ordem de pesquisa de credenciais
<a name="pstools-cred-provider-chain-legacy"></a>

Quando você executa um comando, Ferramentas da AWS para PowerShell pesquisa as credenciais na seguinte ordem. Ele para ao encontrar credenciais utilizáveis.

1. As credenciais literais incorporadas como parâmetros na linha de comando.

   É altamente recomendável usar perfis em vez de colocar as credenciais literais em suas linhas de comando.

1. Credenciais especificadas pelo parâmetro `-Credential`.

1. Um nome de perfil ou local de perfil que foi especificado usando o AWSCredential cmdlet [Set-](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-AWSCredential.html).
   + Se você especificar somente um nome de perfil, o comando procurará o perfil especificado no repositório do AWS SDK e, se ele não existir, o perfil especificado no arquivo de credenciais AWS compartilhadas no local padrão.
   + Se você especificar apenas um local de perfil, o comando procurará o perfil `default` desse arquivo de credenciais.
   + Se você especificar um nome e um local, o comando procurará o perfil especificado nesse arquivo de credenciais.

   Se o perfil ou o local especificado não for encontrado, o comando lançará uma exceção. A pesquisa passará para as seguintes etapas somente se você não tiver especificado um perfil ou local.

1. Credenciais criadas a partir das variáveis de `AWS_SESSION_TOKEN` ambiente `AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`, e, se todas as três variáveis tiverem um valor.

1. O perfil de credenciais com o nome especificado pela variável de `AWS_PROFILE` ambiente.

1. Use um perfil padrão, na seguinte ordem:

   1. O `default` perfil na loja do AWS SDK.

   1. O `default` perfil no AWS `credentials` arquivo compartilhado.

   1. O `AWS PS Default` perfil na loja do AWS SDK.

1. Se o comando estiver sendo executado em uma instância do Amazon EC2 configurada para usar uma função do IAM, as credenciais temporárias da instância do EC2 acessadas no perfil da instância.

   [Para obter mais informações sobre o uso de funções do IAM para instâncias do Amazon EC2, consulte [Conceder acesso com uma função no Guia](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html) do AWS SDK para .NET desenvolvedor.](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/)

Se essa pesquisa não conseguir localizar as credenciais especificadas, o comando lançará uma exceção.

Para obter informações adicionais sobre variáveis de ambiente e perfis de credenciais, consulte os seguintes tópicos no [Guia de Referência de Ferramentas AWS SDKs e Ferramentas](https://docs.aws.amazon.com/sdkref/latest/guide/): [Variáveis de ambiente](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html), [Lista de variáveis de ambiente](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#EVarSettings) e arquivos de [configuração e credenciais compartilhados](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html).

## Tratamento de credenciais em AWS Tools for PowerShell Core
<a name="credential-handling-in-aws-tools-for-powershell-core"></a>

Os cmdlets AWS Tools for PowerShell Core aceitam AWS acesso e chaves secretas ou os nomes dos perfis de credenciais quando são executados, da mesma forma que o. AWS Tools for Windows PowerShell Quando forem executados no Windows, os dois módulos têm acesso ao arquivo de armazenamento de credenciais do AWS SDK para .NET (armazenado no arquivo `AppData\Local\AWSToolkit\RegisteredAccounts.json` por usuário). 

Esse arquivo armazena suas chaves em formato criptografado e não pode ser usado em outro computador. É o primeiro arquivo que ele Ferramentas da AWS para PowerShell procura por um perfil de credencial e também é o arquivo em que ele Ferramentas da AWS para PowerShell armazena os perfis de credenciais. Para obter mais informações sobre o arquivo de armazenamento de AWS SDK para .NET credenciais, consulte [Configurando AWS](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-config-creds.html) credenciais. Atualmente, o PowerShell módulo Tools for Windows não oferece suporte à gravação de credenciais em outros arquivos ou locais.

Ambos os módulos podem ler perfis do arquivo de credenciais AWS compartilhadas que é usado por outro AWS SDKs e pelo AWS CLI. No Windows, o local padrão para esse arquivo é `C:\Users\<userid>\.aws\credentials`. Em plataformas diferentes do Windows, esse arquivo é armazenado em `~/.aws/credentials`. O parâmetro `-ProfileLocation` pode ser usado para apontar para um nome de arquivo padrão ou local do arquivo.

O armazenamento de credenciais do SDK mantém suas credenciais em formato criptografado usando criptografia do Windows. APIs Eles não APIs estão disponíveis em outras plataformas, portanto, o AWS Tools for PowerShell Core módulo usa exclusivamente o arquivo de credenciais AWS compartilhadas e oferece suporte à gravação de novos perfis de credenciais no arquivo de credenciais compartilhado.

**Os seguintes exemplos de scripts que usam o `Set-AWSCredential` cmdlet mostram as opções para lidar com perfis de credenciais no Windows com o Shell ou o **AWSPowerShell**. AWSPower NetCore**módulos.

```
# Writes a new (or updates existing) profile with name "myProfileName"
# in the encrypted SDK store file

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName

# Checks the encrypted SDK credential store for the profile and then
# falls back to the shared credentials file in the default location

Set-AWSCredential -ProfileName myProfileName

# Bypasses the encrypted SDK credential store and attempts to load the
# profile from the ini-format credentials file "mycredentials" in the
# folder C:\MyCustomPath

Set-AWSCredential -ProfileName myProfileName -ProfileLocation C:\MyCustomPath\mycredentials
```

Os exemplos a seguir mostram o comportamento do **AWSPowerShell. NetCore**módulo nos sistemas operacionais Linux ou macOS.

```
# Writes a new (or updates existing) profile with name "myProfileName"
# in the default shared credentials file ~/.aws/credentials

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName

# Writes a new (or updates existing) profile with name "myProfileName"
# into an ini-format credentials file "~/mycustompath/mycredentials"

Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName -ProfileLocation ~/mycustompath/mycredentials

# Reads the default shared credential file looking for the profile "myProfileName"

Set-AWSCredential -ProfileName myProfileName

# Reads the specified credential file looking for the profile "myProfileName"

Set-AWSCredential -ProfileName myProfileName -ProfileLocation ~/mycustompath/mycredentials
```