Usando o AWS SDK para provedores de credenciais Rust - AWS SDK para Rust

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

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, 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, 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 no AWS SDKs Guia de referência de ferramentas.

Cadeia de provedores de credenciais

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.

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 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.

  2. O compartilhado AWS config e credentials os arquivos

    O SDK tenta carregar as credenciais do [default] perfil nos arquivos compartilhados AWS config ecredentials. É 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 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.

  3. 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 AssumeRoleWithWebIdentitya 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 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 no Guia de referência de ferramentas AWS SDKs e ferramentas.

  4. 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.

  5. 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.

  6. 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 na referência de configurações do Guia de referência AWS SDKs de ferramentas.

Provedor de credenciais explícito

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 ProvideCredentials.

Armazenamento de identidade em cache

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 IdentityCache.