

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation du AWS SDK pour les fournisseurs d'informations d'identification Rust
<a name="credproviders"></a>

 Toutes les demandes AWS doivent être signées cryptographiquement à l'aide des informations d'identification émises par AWS. Au moment de l'exécution, le SDK récupère les valeurs de configuration pour les informations d'identification en vérifiant plusieurs emplacements.

Si la configuration récupérée inclut des [paramètres d'accès par authentification AWS IAM Identity Center unique](credentials.md), le SDK fonctionne avec le IAM Identity Center pour récupérer les informations d'identification temporaires qu'il utilise pour envoyer une demande. Services AWS

Si la configuration récupérée inclut des [informations d'identification temporaires](https://docs.aws.amazon.com/sdkref/latest/guide/access-temp-idc.html), le SDK les utilise pour Service AWS passer des appels. Les informations d'identification temporaires se composent de clés d'accès et d'un jeton de session.

L'authentification avec AWS peut être gérée en dehors de votre base de code. De nombreuses méthodes d'authentification peuvent être automatiquement détectées, utilisées et actualisées par le SDK à l'aide de la chaîne de fournisseurs d'informations d'identification.

Pour connaître les options guidées permettant de démarrer l' AWS authentification pour votre projet, consultez la section [Authentification et accès](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) dans le *guide de référence des outils AWS SDKs et*.

## La chaîne de fournisseurs d'accréditations
<a name="credproviders-default-credentials-provider-chain"></a>

Si vous ne spécifiez pas explicitement de fournisseur d'informations d'identification lors de la création d'un client, le SDK pour Rust utilise une chaîne de fournisseurs d'informations d'identification qui vérifie une série d'endroits où vous pouvez fournir des informations d'identification. Une fois que le SDK a trouvé des informations d'identification à l'un de ces emplacements, la recherche s'arrête. Pour plus de détails sur la création de clients, voir[Configuration du AWS SDK pour les clients du service Rust dans le code](config-code.md).

L'exemple suivant ne spécifie pas de fournisseur d'informations d'identification dans le code. Le SDK utilise la chaîne de fournisseurs d'informations d'identification pour détecter l'authentification qui a été configurée dans l'environnement d'hébergement, et utilise cette authentification pour les appels à. Services AWS

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

### Ordre de récupération des informations d'identification
<a name="credproviders-credential-retrieval-order"></a>

La chaîne de fournisseurs d'informations d'identification recherche les informations d'identification à l'aide de la séquence prédéfinie suivante :

1. **Accédez aux variables d'environnement clés**

   Le SDK tente de charger les informations d'identification à partir `AWS_ACCESS_KEY_ID` des variables `AWS_SECRET_ACCESS_KEY` d'`AWS_SESSION_TOKEN`environnement et.

1. **Le partage AWS `config` et les `credentials` fichiers**

   Le SDK tente de charger les informations d'identification à partir du `[default]` profil dans les `credentials` fichiers partagés AWS `config` et. Vous pouvez utiliser la variable d'`AWS_PROFILE`environnement pour choisir un profil nommé que vous souhaitez que le SDK charge au lieu de l'utiliser`[default]`. Les `credentials` fichiers `config` et sont partagés par différents AWS SDKs outils. Pour plus d'informations sur ces fichiers, consultez les sections [Shared `config` et `credentials` files](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dans le *guide de référence AWS SDKs and Tools*. Pour plus d'informations sur les fournisseurs standardisés que vous pouvez spécifier dans un profil, voir [AWS SDKs et Outils fournisseurs d'informations d'identification standardisés](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).

1. **AWS STS identité Web**

   Lorsque vous créez des applications mobiles ou des applications Web basées sur le client qui nécessitent un accès à AWS, AWS Security Token Service (AWS STS) renvoie un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs fédérés authentifiés par le biais d'un fournisseur d'identité public (IdP).
   + Lorsque vous le spécifiez dans un profil, le SDK ou l'outil tente de récupérer des informations d'identification temporaires à l'aide de la méthode AWS STS `AssumeRoleWithWebIdentity` API. Pour plus de détails sur cette méthode, reportez-vous [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)à la *référence de l'AWS Security Token Service API*.
   +  Pour obtenir des conseils sur la configuration de ce fournisseur, consultez [Federate with Web Identity ou OpenID](https://docs.aws.amazon.com/sdkref/latest/guide/access-assume-role.html#webidentity) Connect *AWS SDKs dans le guide de référence and Tools*.
   +  Pour plus de détails sur les propriétés de configuration du SDK pour ce fournisseur, voir [Assumer le rôle de fournisseur d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) dans le guide de *référence AWS SDKs and Tools*.

1. **Informations d'identification des conteneurs Amazon ECS et Amazon EKS**

   Un rôle IAM peut être associé à vos tâches Amazon Elastic Container Service et à vos comptes de service Kubernetes. Les autorisations accordées dans le rôle IAM sont assumées par les conteneurs exécutés dans la tâche ou les conteneurs du pod. Ce rôle permet à votre SDK pour le code d'application Rust (sur le conteneur) d'en utiliser un autre Services AWS.

   Le SDK tente de récupérer les informations d'identification à partir des variables d'`AWS_CONTAINER_CREDENTIALS_FULL_URI`environnement `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` or, qui peuvent être définies automatiquement par Amazon ECS et Amazon EKS.
   + Pour plus d'informations sur la configuration de ce rôle pour Amazon ECS, consultez le [rôle IAM de la tâche Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.
   + Pour obtenir des informations sur la configuration d'Amazon EKS, consultez la section [Configuration de l'agent d'identité Amazon EKS Pod](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html) dans le **guide de l'utilisateur Amazon EKS**.
   +  Pour plus de détails sur les propriétés de configuration du SDK pour ce fournisseur, consultez la section [Fournisseur d'informations d'identification du conteneur](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html) dans le guide de *référence AWS SDKs and Tools*.

1. **Service de métadonnées d'instance Amazon EC2**

   Créez un rôle IAM et attachez-le à votre instance. Le SDK pour l'application Rust de l'instance tente de récupérer les informations d'identification fournies par le rôle à partir des métadonnées de l'instance. 
   + Le SDK pour Rust ne prend en charge [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)que.
   + Pour plus de détails sur la configuration de ce rôle et l'utilisation des métadonnées, [consultez les rôles IAM pour Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) EC2 [et Work with instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) metadata dans le guide de l'utilisateur *Amazon EC2*.
   +  Pour plus de détails sur les propriétés de configuration du SDK pour ce fournisseur, consultez la section [fournisseur d'informations d'identification IMDS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-imds-credentials.html) dans le guide de référence *AWS SDKs and Tools*.

1. Si les informations d'identification ne sont toujours pas résolues à ce stade, l'opération panics entraîne une erreur.

Pour plus de détails sur les paramètres de configuration des fournisseurs AWS d'informations d'identification, consultez la section [Fournisseurs d'informations d'identification standardisés](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) dans la *référence des paramètres* du guide de *référence AWS SDKs et des outils*.

## Fournisseur d'informations d'identification explicite
<a name="credproviders-explicit-credentials-provider"></a>

Au lieu de vous fier à la chaîne de fournisseurs d'informations d'identification pour détecter votre méthode d'authentification, vous pouvez spécifier un fournisseur d'informations d'identification spécifique que le SDK doit utiliser. Lorsque vous chargez votre configuration générale à l'aide de`aws_config::defaults`, vous pouvez spécifier un fournisseur d'informations d'identification personnalisé, comme indiqué ci-dessous :

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

Vous pouvez implémenter votre propre fournisseur d'informations d'identification en implémentant le [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)trait.

## Mise en cache des identités
<a name="credproviders-identity-caching"></a>

Le SDK mettra en cache les informations d'identification et les autres types d'identité tels que les jetons SSO. Par défaut, le SDK utilise une implémentation de cache différé qui charge les informations d'identification lors de la première demande, les met en cache, puis tente de les actualiser lors d'une autre demande lorsqu'elles sont sur le point d'expirer. Les clients créés à partir de la même `SdkConfig` page partageront un [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).