Usando o arquivo de credenciais compartilhado da AWS - AWS SDK for .NET

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 o arquivo de credenciais compartilhado da AWS

(Assegure-se de revisar os avisos e orientações importantes para credenciais.)

Uma forma de fornecer credenciais para seus aplicativos é criar perfis no arquivo de credenciais compartilhado da AWS e, em seguida, armazenar as credenciais nesses perfis. Este arquivo pode ser usado pelos outros SDKs da AWS. Ele também pode ser usado pelo AWS CLI, pelo AWS Tools for Windows PowerShell e pelos kits de ferramentas da AWS para Visual Studio, JetBrains e VS Code.

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 AWS SDKs e ferramentas.

Para as práticas recomendadas de segurança, use o AWS IAM Identity Center, conforme descrito em Configure a autenticação do SDK.

Informações gerais

Por padrão, o arquivo de credenciais compartilhado da AWS está localizado no diretório .aws dentro do seu diretório inicial e é denominado credentials; ou seja, ~/.aws/credentials (Linux ou macOS) ou %USERPROFILE%\.aws\credentials (Windows). Para obter informações sobre locais alternativos, consulte Localização dos arquivos compartilhados no Guia de referência de SDKs e ferramentas da AWS. Também consulte Acessar credenciais e perfis em um aplicativo.

O arquivo de credenciais compartilhado da AWS é um arquivo de texto simples e segue um determinado formato. Para obter informações sobre o formato dos arquivos de credenciais da AWS, consulte Formato do arquivo de credenciais no Guia de referência de SDKs e ferramentas da AWS.

Os perfis podem ser gerenciados no arquivo de credenciais compartilhado da AWS de duas formas:

  • Usar qualquer editor de texto para criar e atualizar o arquivo de credenciais compartilhado da AWS.

  • Usar o namespace Amazon.Runtime.CredentialManagement da API do AWS SDK for .NET, conforme será mostrado posteriormente neste tópico.

  • Usar comandos e procedimentos para o AWS Tools for PowerShell e os kits de ferramentas para Visual Studio, JetBrains e VS Code da AWS.

  • Usar comandos do AWS CLI; por exemplo, aws configure set aws_access_key_id e aws configure set aws_secret_access_key.

Exemplos de gerenciamento de perfil

As seções a seguir mostram exemplos de perfis no arquivo de credenciais compartilhado da AWS. Alguns dos exemplos mostram o resultado, que pode ser obtido através de qualquer um dos métodos de gerenciamento de credenciais descritos anteriormente. Outros exemplos mostram como usar um método específico.

O perfil padrão.

O arquivo de credenciais compartilhado da AWS quase sempre terá um perfil chamado default. É aqui que o AWS SDK for .NET procura as credenciais se nenhum outro perfil estiver definido.

O perfil [default] geralmente é parecido com o mostrado a seguir.

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

Criar um perfil de forma programática

Este exemplo mostra como criar um perfil e salvá-lo no arquivo de credenciais compartilhado da AWS de forma programática. Ele usa as seguintes classes do namespace Amazon.Runtime.CredentialManagement: CredentialProfileOptions, CredentialProfile e SharedCredentialsFile.

using Amazon.Runtime.CredentialManagement; ... // Do not include credentials in your code. WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey); ... void WriteProfile(string profileName, string keyId, string secret) { Console.WriteLine($"Create the [{profileName}] profile..."); var options = new CredentialProfileOptions { AccessKey = keyId, SecretKey = secret }; var profile = new CredentialProfile(profileName, options); var sharedFile = new SharedCredentialsFile(); sharedFile.RegisterProfile(profile); }
Atenção

Códigos como esse geralmente não deveriam estar em seu aplicativo. Se você inclui-lo em seu aplicativo, tome as devidas precauções para garantir que as chaves de texto simples não possam ser vistas no código, na rede ou mesmo na memória do computador.

A seguir está o perfil que foi criado por este exemplo.

[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Atualizar um perfil existente de forma programática

Este exemplo mostra como atualizar de forma programática o perfil que foi criado anteriormente. Ele usa as seguintes classes do namespace Amazon.Runtime.CredentialManagement: CredentialProfile e SharedCredentialsFile. Ele também usa a classe RegionEndpoint do namespace Amazon.

using Amazon.Runtime.CredentialManagement; ... AddRegion("my_new_profile", RegionEndpoint.USWest2); ... void AddRegion(string profileName, RegionEndpoint region) { var sharedFile = new SharedCredentialsFile(); CredentialProfile profile; if (sharedFile.TryGetProfile(profileName, out profile)) { profile.Region = region; sharedFile.RegisterProfile(profile); } }

A seguir está o perfil atualizado.

[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY region=us-west-2
nota

Você também pode definir a Região da AWS em outros locais e usando outros métodos. Para obter mais informações, consulte Configurar a região da AWS.