

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 AWS SDK para provedores de credenciais Rust
<a name="credproviders"></a>

 Todas as solicitações AWS devem ser assinadas criptograficamente usando credenciais emitidas por. AWS No runtime, o SDK recupera os valores de configuração para credenciais conferindo vários locais.

Se a configuração recuperada incluir [configurações de acesso de SSO do Centro de Identidade do AWS IAM](credentials.md), o SDK trabalhará com o Centro de Identidade do IAM para recuperar as credenciais temporárias que ele usa para fazer solicitações para Serviços da AWS.

Se a configuração recuperada incluir [credenciais temporárias](https://docs.aws.amazon.com/sdkref/latest/guide/access-temp-idc.html), o SDK as usará para fazer chamadas. AWS service (Serviço da AWS) As credenciais temporárias consistem em chaves de acesso e um token de sessão.

A autenticação com AWS pode ser feita fora da sua base de código. Muitos métodos de autenticação podem ser detectados, usados e atualizados automaticamente pelo SDK usando a cadeia de provedores de credenciais.

Para opções guiadas para começar a AWS autenticar seu projeto, consulte [Autenticação e acesso](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) no *AWS SDKs Guia de referência de ferramentas*.

## Cadeia de provedores de credenciais
<a name="credproviders-default-credentials-provider-chain"></a>

Se, ao criar um cliente, você não especificar explicitamente um provedor de credenciais, o SDK para Rust usará uma cadeia de provedores de credenciais que vai conferir uma série de locais onde você pode fornecer credenciais. Depois que o SDK encontra as credenciais em um desses locais, a pesquisa é interrompida. Para obter detalhes sobre a construção de clientes, consulte [Configurando o AWS SDK para clientes do serviço Rust em código](config-code.md).

O exemplo a seguir não especifica um provedor de credenciais no código. O SDK usa a cadeia de provedores de credenciais para detectar a autenticação configurada no ambiente de hospedagem e usa essa autenticação para chamadas para Serviços da AWS.

```
let config = aws_config::defaults(BehaviorVersion::latest()).load().await;
let s3 = aws_sdk_s3::Client::new(&config);
```

### Ordem de recuperação de credenciais
<a name="credproviders-credential-retrieval-order"></a>

A cadeia de provedores de credenciais pesquisa as credenciais usando a seguinte sequência predefinida:

1. **Variáveis de ambiente de chave de acesso**

   O SDK tenta carregar credenciais das variáveis de ambiente `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`.

1. **O compartilhado AWS `config` e `credentials` os arquivos**

   O SDK tenta carregar as credenciais do `[default]` perfil nos arquivos compartilhados AWS `config` e`credentials`. É possível usar a variável de ambiente `AWS_PROFILE` para escolher um perfil nomeado a ser carregado pelo SDK em vez de usar `[default]`. Os `credentials` arquivos `config` e são compartilhados por várias AWS SDKs ferramentas. Para obter mais informações sobre esses arquivos, consulte [Compartilhados `config` e `credentials` arquivos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) no *Guia de referência de ferramentas AWS SDKs e ferramentas*. Para obter mais informações sobre provedores padronizados que você pode especificar em um perfil, consulte [Ferramentas AWS SDKs e provedores de credenciais padronizados](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).

1. **AWS STS identidade na web**

   Ao criar aplicativos móveis ou aplicativos web baseados em clientes que exigem acesso a AWS, AWS Security Token Service (AWS STS) retorna um conjunto de credenciais de segurança temporárias para usuários federados que são autenticados por meio de um provedor de identidade público (IdP).
   + Quando você especifica isso em um perfil, o SDK ou a ferramenta tenta recuperar credenciais temporárias usando AWS STS `AssumeRoleWithWebIdentity` o método de API. Para obter detalhes sobre esse método, consulte [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)a *Referência AWS Security Token Service da API*.
   +  *Para obter orientação sobre como configurar esse provedor, consulte [Federate with web identity ou OpenID Connect](https://docs.aws.amazon.com/sdkref/latest/guide/access-assume-role.html#webidentity) no Guia de referência de ferramentas AWS SDKs .*
   +  Para obter detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte [Assumir a função de provedor de credenciais](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) no Guia de *referência de ferramentas AWS SDKs e ferramentas*.

1. **Credenciais de contêiner do Amazon ECS e do Amazon EKS **

   Suas tarefas do Amazon Elastic Container Service e as contas de serviço do Kubernetes podem ter um perfil do IAM associado a elas. As permissões concedidas no perfil do IAM são assumidas pelos contêineres em execução na tarefa ou pelos contêineres do pod. Esse perfil permite que o código da aplicação SDK para Rust (no contêiner) use outros Serviços da AWS.

   O SDK tenta recuperar credenciais das variáveis de ambiente `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` ou `AWS_CONTAINER_CREDENTIALS_FULL_URI`, que podem ser definidas automaticamente pelo Amazon ECS e pelo Amazon EKS.
   + Para ver detalhes sobre como configurar esse perfil para o Amazon ECS, consulte [Perfil do IAM para tarefas do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.
   + Para receber informações de configuração do Amazon EKS, consulte [Configurar o atendente de identidade de pods do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html) no **Guia do usuário do Amazon EKS**.
   +  Para obter detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte Provedor de [credenciais de contêiner](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html) no Guia de *referência de ferramentas AWS SDKs e ferramentas*.

1. **Serviço de metadados da instância do Amazon EC2 **

   Crie um perfil do IAM e anexe-o à instância. A aplicação SDK para Rust na instância tenta recuperar as credenciais fornecidas pelo perfil nos metadados da instância. 
   + O SDK para Rust é compatível apenas com. [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)
   + Para ver detalhes sobre como configurar esse perfil e usar metadados, consulte [Perfis do IAM para o Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) e [Trabalhar com metadados de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) no *Guia do usuário do Amazon EC2*.
   +  Para obter detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte o provedor de [credenciais IMDS no Guia de](https://docs.aws.amazon.com/sdkref/latest/guide/feature-imds-credentials.html) referência de *ferramentas AWS SDKs e ferramentas*.

1. Se as credenciais ainda não tiverem sido resolvidas nesse ponto, a operação panics com um erro.

Para obter detalhes sobre as configurações do provedor de AWS credenciais, consulte [Provedores de credenciais padronizados](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) na referência de *configurações do Guia de referência AWS * *SDKs de ferramentas*.

## Provedor de credenciais explícito
<a name="credproviders-explicit-credentials-provider"></a>

Em vez de confiar na cadeia de provedores de credenciais para detectar seu método de autenticação, você pode especificar um provedor de credenciais específico a ser utilizado pelo SDK. Ao carregar sua configuração geral usando `aws_config::defaults`, você pode especificar um provedor de credenciais personalizado, conforme mostrado abaixo:

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .credentials_provider(MyCredentialsProvider::new())
    .load()
    .await;
```

Você pode implementar seu próprio provedor de credenciais implementando a característica [https://docs.rs/aws-credential-types/latest/aws_credential_types/provider/trait.ProvideCredentials.html](https://docs.rs/aws-credential-types/latest/aws_credential_types/provider/trait.ProvideCredentials.html).

## Armazenamento de identidade em cache
<a name="credproviders-identity-caching"></a>

O SDK armazenará em cache as credenciais e outros tipos de identidade, como tokens de SSO. Por padrão, o SDK usa uma implementação de cache lento que carrega as credenciais na primeira solicitação, as armazena em cache e, depois, tenta atualizá-las durante outra solicitação quando elas estão prestes a expirar. Clientes criados com base no mesmo `SdkConfig` compartilharão um [https://docs.rs/aws-smithy-runtime/latest/aws_smithy_runtime/client/identity/struct.IdentityCache.html](https://docs.rs/aws-smithy-runtime/latest/aws_smithy_runtime/client/identity/struct.IdentityCache.html).