Resolução de perfil e credenciais - 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á.

Resolução de perfil e credenciais

O AWS SDK for .NET busca credenciais em uma determinada ordem e usa o primeiro conjunto disponível para o aplicativo atual.

Ordem de pesquisa de credencial
  1. Credenciais definidas explicitamente no cliente do serviço da AWS, conforme descrito em Acessar credenciais e perfis em um aplicativo.

    nota

    Esse tópico está na seção Considerações especiais porque não é o método preferencial para especificar credenciais.

  2. Um perfil de credenciais com o nome especificado por um valor em AWSConfigs.AWSProfileName.

  3. Um perfil de credenciais com o nome especificado pela variável de ambiente AWS_PROFILE.

  4. O perfil de credenciais [default].

  5. SessionAWSCredentials criadas a partir das variáveis de ambiente AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_SESSION_TOKEN, se todas forem não vazias.

  6. BasicAWSCredentials criadas a partir das variáveis de ambiente AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY, se ambas forem não vazias.

  7. Perfis do IAM para Tarefas para taferas do Amazon ECS.

  8. Metadados da instância do Amazon EC2.

Se o aplicativo estiver em execução em uma instância do Amazon EC2, como em um ambiente de produção, use um perfil do IAM conforme descrito em Conceder acesso utilizando um perfil do IAM. Caso contrário, como em testes de pré-lançamento, armazene suas credenciais em um arquivo que use o formato de arquivo de credenciais da AWS ao qual seu aplicativo web tenha acesso no servidor.

Resolução do perfil

Com dois mecanismos de armazenamento diferentes para credenciais, é importante entender como configurar o AWS SDK for .NET para usá-los. A propriedade AWSConfigs.AWSProfilesLocation controla como o AWS SDK for .NET encontra perfis de credenciais.

AWSProfilesLocation Comportamento da resolução do perfil

nulo (não definido) ou vazio

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 o perfil não estiver em nenhum desses locais, busque ~/.aws/config (Linux ou macOS) ou %USERPROFILE%\.aws\config (Windows).

O caminho para um arquivo no formato de arquivo de credenciais da AWS

Pesquise somente o arquivo especificado para um perfil com o nome especificado.

Usar credenciais da conta de usuário federado

Os aplicativos que usam o AWS SDK for .NET (AWSSDK.Core versão 3.1.6.0 ou posterior) podem usar contas de usuário federado por meio do Active Directory Federation Services (AD FS - Serviços de federação do Active Directory) para acessar web services da AWS usando o Security Assertion Markup Language (SAML).

Suporte ao acesso federado significa que usuários podem se autenticar usando o Active Directory. São concedidas credenciais temporárias ao usuário automaticamente. Estas credenciais temporárias, que são válidas por uma hora, são usadas quando o aplicativo invoca os serviços da AWS. O SDK faz o gerenciamento das credenciais temporárias. Para contas de usuário associados a um domínio, se o aplicativo realizar uma chamada mas as credenciais expiraram, o usuário é reautenticado automaticamente e são concedidas novas credenciais. (Para contas que não estão associadas a um domínio, o usuário deve informar as credenciais antes da reautenticação.)

Para usar esse suporte no aplicativo .NET, primeiro é necessário configurar o perfil da função usando um cmdlet PowerShell. Para saber como, consulte a documentação do AWS Tools for Windows PowerShell.

Depois de configurar o perfil da função, faça referência ao perfil em seu aplicativo. Há várias maneiras de fazer isso, uma delas é usar a propriedade AWSConfigs.AWSProfileName da mesma forma que você faria com outros perfis de credenciais.

A assembly AWS Security Token Service (AWSSDK.SecurityToken) fornece o suporte SAML para obter credenciais da AWS. Para usar as credenciais da conta de usuário federado, certifique-se de que esse assembly esteja disponível para seu aplicativo.

Especificar funções ou credenciais temporárias

Para aplicativos executados em instâncias do Amazon EC2, a forma mais segura de gerenciar as credenciais é utilizar perfis do IAM, conforme descrito em Conceder acesso utilizando um perfil do IAM.

Para cenários do aplicativo em que o executável do software está disponível para usuários de fora da organização, recomendamos que você projete o software para usar credenciais de segurança temporárias. Além de oferecer acesso restrito aos recursos da AWS, essas credenciais têm o benefício de expirarem após um período especificado. Para obter mais informações sobre as credenciais de segurança temporárias, consulte:

Usar credenciais de proxy

Se o seu software se comunica com a AWS por meio de um proxy, especifique as credenciais para o proxy usando a propriedade ProxyCredentials na classe Config para um serviço. A classe Config de um serviço normalmente faz parte do namespace primário do serviço. Os exemplos incluem o seguinte: AmazonCloudDirectoryConfig no namespace Amazon.CloudDirectory e AmazonGameLiftConfig no namespace Amazon.GameLift.

Para Amazon S3, por exemplo, você pode usar código semelhante ao seguinte, quando SecurelyStoredUserName e SecurelyStoredPassword são o nome de usuário e senha do proxy especificados em um objeto NetworkCredential.

AmazonS3Config config = new AmazonS3Config(); config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
nota

Versões anteriores do SDK utilizavam ProxyUsername e ProxyPassword, mas estas propriedades estão obsoletas.