Acessar credenciais e perfis em um aplicativo - 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á.

Acessar credenciais e perfis em um aplicativo

O método preferencial para usar credenciais é permitir que o AWS SDK for .NET as encontre e recupere para você, conforme descrito em Resolução de perfil e credenciais.

Contudo, você também pode configurar seu aplicativo para recuperar ativamente perfis e credenciais e, em seguida, usar explicitamente essas credenciais ao criar um cliente de serviço da AWS.

Para recuperar ativamente perfis e credenciais, use classes do namespace Amazon.Runtime.CredentialManagement.

  • Para encontrar um perfil em um arquivo que usa o formato de arquivo de credenciais da AWS (o arquivo de credenciais compartilhado da AWS em seu local padrão ou um arquivo de credenciais personalizado), use a classe SharedCredentialsFile. Para resumir, algumas vezes, arquivos nesse formato são chamados simplesmente de arquivos de credenciais neste texto.

  • Para encontrar um perfil na SDK Store, use a classe NetSDKCredentialsFile.

  • Para pesquisar em um arquivo de credenciais e na SDK Store, dependendo da configuração de uma propriedade de classe, use a classe CredentialProfileStoreChain.

    Você pode usar essa classe para encontrar perfis. Você também pode usar essa classe para solicitar credenciais da AWS diretamente em vez de usar a classe AWSCredentialsFactory (descrita a seguir).

  • Para recuperar ou criar vários tipos de credenciais de um perfil, use a classe AWSCredentialsFactory.

As seções a seguir fornecem exemplos dessas classes.

Exemplos da classe CredentialProfileStoreChain

É possível obter as credenciais ou perfis da classe CredentialProfileStoreChain usando os métodos TryGetAWSCredentials ou TryGetProfile A propriedade ProfilesLocation da classe determina o comportamento dos métodos, da seguinte forma:

  • Se ProfilesLocation for nula ou vazia, pesquise na SDK Store se a plataforma for compatível e, em seguida, pesquise o arquivo de credenciais compartilhado da AWS no local padrão.

  • Se a propriedade ProfilesLocation contiver um valor, pesquise o arquivo de credenciais especificado na propriedade.

Obtenha credenciais a partir da SDK Store ou do arquivo de credenciais compartilhado da AWS

Este exemplo mostra como obter credenciais usando a classe CredentialProfileStoreChain e, em seguida, use as credenciais para criar um objeto AmazonS3Client. As credenciais podem vir da SDK Store ou do arquivo de credenciais compartilhado da AWS no local padrão.

Este exemplo também usa a classe Amazon.Runtime.AwsCredentials.

var chain = new CredentialProfileStoreChain(); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("some_profile", out awsCredentials)) { // Use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }

Obtenha um perfil a partir da SDK Store ou do arquivo de credenciais compartilhado da AWS

Este exemplo mostra como obter um perfil usando a classe CredentialProfileStoreChain. As credenciais podem vir da SDK Store ou do arquivo de credenciais compartilhado da AWS no local padrão.

Este exemplo também usa a classe CredentialProfile.

var chain = new CredentialProfileStoreChain(); CredentialProfile basicProfile; if (chain.TryGetProfile("basic_profile", out basicProfile)) { // Use basicProfile }

Obtenha credenciais de um arquivo de credenciais personalizado

Este exemplo mostra como obter credenciais usando a classe CredentialProfileStoreChain. As credenciais vêm de um arquivo que usa o formato de arquivo de credenciais da AWS, mas está em um local alternativo.

Este exemplo também usa a classe Amazon.Runtime.AwsCredentials.

var chain = new CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini"); AWSCredentials awsCredentials; if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials)) { // Use awsCredentials to create an AWS service client }

Exemplos de classes SharedCredentialsFile e AWSCredentialsFactory

Criar um AmazonS3Client usando a classe SharedCredentialsFile

Este exemplo mostra como encontrar um perfil no arquivo de credenciais compartilhado da AWS, criar credenciais da AWS a partir do perfil e, em seguida, usar as credenciais da para criar um objeto AmazonS3Client. O exemplo usa a classe SharedCredentialsFile.

Este exemplo também usa a classe CredentialProfile e a classe Amazon.Runtime.AwsCredentials.

CredentialProfile basicProfile; AWSCredentials awsCredentials; var sharedFile = new SharedCredentialsFile(); if (sharedFile.TryGetProfile("basic_profile", out basicProfile) && AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials)) { // use awsCredentials to create an Amazon S3 service client using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region)) { var response = await client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); } }
nota

A classe NetSDKCredentialsFile pode ser usada exatamente da mesma forma, a diferenã é que você instanciaria um novo objeto NetSDKCredentialsFile em vez de um objeto SharedCredentialsFile.