

O AWS SDK para .NET V3 entrou no modo de manutenção.

Recomendamos que você migre para a [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

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
<a name="creds-assign"></a>

O AWS SDK para .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](creds-locate.md).
**nota**  
Esse tópico está na seção [Considerações especiais](special-considerations.md) porque não é o método preferencial para especificar credenciais.

1. Um perfil de credenciais com o nome especificado por um valor em [AWSConfigs.AWSProfileName](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html#properties).

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

1. O perfil de credenciais `[default]`.

1. [SessionAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSessionAWSCredentials.html) 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.

1.  [BasicAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TBasicAWSCredentials.html) criadas a partir das variáveis de ambiente `AWS_ACCESS_KEY_ID` e `AWS_SECRET_ACCESS_KEY`, se ambas forem não vazias.

1. O [provedor de credenciais de contêiner](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html).

1. 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](net-dg-hosm.md). 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
<a name="net-dg-config-creds-profile-resolution"></a>

Com dois mecanismos de armazenamento diferentes para credenciais, é importante entender como configurar o AWS SDK para .NET para usá-los. A propriedade [AWSConfigs.AWSProfilesLocation](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) controla como o AWS SDK para .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](creds-file.md). 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
<a name="net-dg-config-creds-saml"></a>

Os aplicativos que usam o AWS SDK para .NET ([AWSSDK.Core](https://www.nuget.org/packages/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](https://docs.aws.amazon.com/powershell/latest/userguide/saml-pst.html).

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) da mesma forma que você faria com outros perfis de credenciais.

A assembly *AWS Security Token Service* ([AWSSDK.SecurityToken](https://www.nuget.org/packages/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
<a name="net-dg-config-creds-assign-role"></a>

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](net-dg-hosm.md).

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:
+  [Credenciais de segurança temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 
+  [Banco de identidades do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)

## Usar credenciais de proxy
<a name="net-dg-config-creds-proxy"></a>

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](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudDirectory/TCloudDirectoryConfig.html) no namespace [Amazon.CloudDirectory](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudDirectory/NCloudDirectory.html) e [AmazonGameLiftConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/GameLift/TGameLiftConfig.html) no namespace [Amazon.GameLift](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/GameLift/NGameLift.html).

Para [Amazon S3](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html), 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](https://learn.microsoft.com/en-us/dotnet/api/system.net.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.