A versão 4 (V4) do AWS SDK para .NET foi lançada!
Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o tópico de migração.
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á.
Compartilhado AWS arquivo de credenciais
(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. Esse arquivo pode ser usado pelos outros AWS SDKs. Ele também pode ser usado pelo AWS CLI AWS Tools for Windows PowerShell, pelo e pelos AWS kits de ferramentas para Visual Studio e VS Code. JetBrains
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.
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 obter as melhores práticas de segurança Centro de Identidade do AWS IAM, use, conforme descrito emAutenticando com AWS.
Informações gerais
Por padrão, o arquivo de AWS credenciais compartilhadas está localizado no .aws diretório do seu diretório inicial e tem um nomecredentials, 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.
O arquivo de AWS credenciais compartilhadas é um arquivo de texto sem formatação e segue um determinado formato. Para obter informações sobre o formato dos arquivos de AWS credenciais, consulte Formato do arquivo de credenciais no Guia de referência de AWS SDKs e ferramentas.
Você pode gerenciar os perfis no arquivo de AWS credenciais compartilhado de várias maneiras.
-
Use qualquer editor de texto para criar e atualizar o arquivo de AWS credenciais compartilhado.
-
Use o Amazon.Runtime.CredentialManagement namespace da AWS SDK para .NET API, conforme mostrado posteriormente neste tópico.
-
Use comandos e procedimentos para o Ferramentas da AWS para PowerShell e os AWS kits de ferramentas do Visual Studio e do VS Code. JetBrains
-
Usar comandos do AWS CLI; por exemplo,
aws configure set aws_access_key_ideaws configure set aws_secret_access_key.
Exemplos de gerenciamento de perfil
As seções a seguir mostram exemplos de perfis no arquivo de AWS credenciais compartilhadas. 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 AWS credenciais compartilhadas quase sempre terá um perfil chamado default. É aqui que AWS SDK para .NET ele procura credenciais se nenhum outro perfil for 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 AWS credenciais compartilhadas de forma programática. Ele usa as seguintes classes do Amazon.Runtime.CredentialManagement namespace: 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 Amazon.Runtime.CredentialManagement namespace: e. CredentialProfile SharedCredentialsFile Ele também usa a RegionEndpoint classe 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 AWS região em outros locais e usando outros métodos. Para obter mais informações, consulte Definindo a AWS região para o AWS SDK para .NET.
Como seu aplicativo usa esse arquivo
-
Resolução automática: o SDK lê os perfis desse arquivo automaticamente. Defina um nome de perfil por
AWSConfigs.AWSProfileNameAWS_PROFILEmeio da variável de ambiente ou confie no[default]perfil. Para obter mais informações, consulte Resolução de perfil e credenciais. -
Acesso explícito no código: carregue um perfil específico de forma programática e passe suas credenciais para um cliente de serviço. Para obter mais informações, consulte Crie um AmazonS3Client usando a classe SharedCredentialsFile.