Usando provedores de credenciais do AWS SDK para Rust
Todas as solicitações AWS devem ser assinadas criptograficamente usando as credenciais emitidas pela 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 AWS IAM Identity Center, 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 dos 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 realizada 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 ver opções guiadas para começar a utilizar a autenticação da AWS para seu projeto, consulte Autenticação e acesso no Guia de referência de ferramentas e AWS SDKs.
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 Configurar clientes de serviço no código do AWS SDK para Rust no 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:
-
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_KEYeAWS_SESSION_TOKEN. -
Os arquivos AWS,
configecredentialscompartilhadosO SDK tenta carregar credenciais do perfil da
[default]nos arquivos compartilhados AWS,configecredentials. É possível usar a variável de ambienteAWS_PROFILEpara escolher um perfil nomeado a ser carregado pelo SDK em vez de usar[default]. Os arquivosconfigecredentialssão compartilhados por vários AWS SDKs e ferramentas. Para obter mais informações sobre esses arquivos, consulte os arquivos compartilhadosconfigecredentialsno AWS SDKs and Tools Reference Guide.Se você usa o Centro de Identidade do IAM para realizar a autenticação, é quando o SDK para Rust usa o token de SSO configurado com a execução do comando
aws sso loginda CLI da AWS. O SDK usa as credenciais temporárias que o Centro de Identidade do IAM trocou por um token válido. Depois, o SDK usa as credenciais temporárias quando chama Serviços da AWS. Para acessar informações detalhadas sobre esse processo, consulte Noções básicas sobre resolução de credenciais de SDK para Serviços da AWS no AWS SDKs and Tools Reference Guide.-
Para receber orientação sobre como configurar esse provedor, consulte Autenticação do Centro de Identidade do IAM no Guia de referência de ferramentas e AWS SDKs.
-
Para ver detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte Provedor de credenciais do Centro de Identidade do IAM no Guia de referência de ferramentas e AWS SDKs.
-
-
identidade da web AWS STS
Ao criar aplicações móveis ou aplicações Web baseadas em clientes que exigem acesso à AWS, o AWS Security Token Service (AWS STS) exibe um conjunto de credenciais de segurança temporárias para usuários federados que são autenticados por meio de um provedor de identidades (IdP) público.
-
Quando você especifica isso em um perfil, o SDK ou a ferramenta tenta recuperar credenciais temporárias usando o método de API
AssumeRoleWithWebIdentitydo AWS STS. Para ver detalhes sobre esse método, consulte AssumeRoleWithWebIdentity na Referência da API do AWS Security Token Service. -
Para receber orientação sobre como configurar esse provedor, consulte Federar com identidade Web ou OpenID Connect no Guia de referência de ferramentas e AWS SDKs.
-
Para ver detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte Assumir o perfil de provedor de credenciais no Guia de referência de ferramentas e AWS SDKs.
-
-
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_URIouAWS_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 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 no Guia do usuário do Amazon EKS.
-
Para ver detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte Provedor de credenciais de contêiner no Guia de referência de ferramentas e AWS SDKs.
-
-
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 só é compatível com IMDSv2.
-
Para ver detalhes sobre como configurar esse perfil e usar metadados, consulte Perfis do IAM para o Amazon EC2 e Trabalhar com metadados de instância no Guia do usuário do Amazon EC2.
-
Para ver detalhes sobre as propriedades de configuração do SDK para esse provedor, consulte Provedor de credenciais do IMDS no Guia de referência de ferramentas e AWS SDKs.
-
-
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 credenciais da AWS, consulte Standardized credential providers em Settings reference do AWS SDKs and Tools Reference Guide.
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