A Ferramentas da AWS para PowerShell versão 5 (V5) está em pré-visualização. Para ver o conteúdo da V5, que está sujeito a alterações, e experimentar a nova versão, consulte o guia do usuário da versão 5 (prévia). Para obter informações específicas sobre mudanças significativas e migrar para a V5, consulte o tópico de migração nesse guia.
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
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 AWS IAM Identity Center.
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 de referência de ferramentas AWS SDKs e ferramentas.
Para obter as melhores práticas de segurança AWS IAM Identity Center, use, conforme descrito emConfigurar autenticação nas ferramentas.
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 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? no Guia AWS Gerenciamento de contas de referência.
Tópicos
Locais de armazenamento de credenciais
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.jsonO AWS SDK para .NET
e o Toolkit for Visual Studio 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
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 ou programaticamente usando o AWS SDK para .NET
Adicionar um novo perfil
Para adicionar um novo perfil ao repositório do AWS SDK, execute o comandoSet-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 nomedefault
.
Atualizar um perfil
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
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
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
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- ainda AWSCredential está disponível para compatibilidade com versões anteriores, mas é preferível. Remove-AWSCredentialProfile
Especificação de credenciais
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.
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)
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 EC2 instância da Amazon que não foi 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 Initialize-AWSDefaultConfiguration
em uma EC2 instância não armazena diretamente as credenciais, mas aponta para os metadados da instância (que fornecem credenciais temporárias que mudam 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 EC2 instância 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 EC2 instância 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
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
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 Especificar AWS regiões. 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
Quando você executa um comando, Ferramentas da AWS para PowerShell pesquisa as credenciais na seguinte ordem. Ele para ao encontrar credenciais utilizáveis.
-
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.
-
Um local de perfil ou um nome de perfil especificado.
-
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.
-
-
Credenciais especificadas pelo parâmetro
-Credential
. -
O perfil da sessão, se existir.
-
Use um perfil padrão, na seguinte ordem:
-
O
default
perfil na loja do AWS SDK. -
O
default
perfil no arquivo de credenciais AWS compartilhado. -
O
AWS PS Default
perfil na loja do AWS SDK.
-
-
Se o comando estiver sendo executado em uma EC2 instância da Amazon configurada para usar uma função do IAM, as credenciais temporárias da EC2 instância serão acessadas a partir do perfil da instância.
Para obter mais informações sobre o uso de funções do IAM para EC2 instâncias da Amazon, consulte AWS SDK para .NET
o.
Se essa pesquisa não conseguir localizar as credenciais especificadas, o comando lançará uma exceção.
Tratamento de credenciais no AWS Tools for PowerShell Core
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 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 NetCoremó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. NetCoremó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