Assumer le rôle de fournisseur d'informations d'identification - AWS SDK et outils

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.

Assumer le rôle de fournisseur d'informations d'identification

Assumer un rôle implique l'utilisation d'un ensemble d'informations d'identification de sécurité temporaires pour accéder à AWS des ressources auxquelles vous n'auriez peut-être pas accès autrement. Ces informations d'identification temporaires incluent un ID de clé d'accès, une clé d'accès secrète et un jeton de sécurité.

Pour configurer votre SDK ou votre outil afin qu'il assume un rôle, vous devez d'abord créer ou identifier un rôle spécifique à assumer. Les rôles IAM sont identifiés de manière unique par un rôle Amazon Resource Name (ARN). Les rôles établissent des relations de confiance avec une autre entité. L'entité de confiance qui utilise le rôle peut être un Service AWS fournisseur d'identité Web Compte AWS, une fédération OIDC ou SAML.

Une fois le rôle IAM identifié, si ce rôle vous fait confiance, vous pouvez configurer votre SDK ou votre outil pour utiliser les autorisations accordées par le rôle. Pour ce faire, utilisez les paramètres suivants.

Pour savoir comment commencer à utiliser ces paramètres, consultez Assumer un rôle ce guide.

Assumer les paramètres du fournisseur d'informations d'identification du rôle

Configurez cette fonctionnalité à l'aide des méthodes suivantes :

credential_source- réglage AWS config du fichier partagé

Utilisé dans les instances Amazon EC2 ou les conteneurs Amazon Elastic Container Service pour spécifier où le SDK ou l'outil peut trouver les informations d'identification autorisées à assumer le rôle que vous spécifiez avec le paramètre. role_arn

Valeur par défaut : Aucune

Valeurs valides:

Vous ne pouvez pas spécifier à la fois credential_source et source_profile dans le même profil.

Exemple de définition de ce paramètre dans un config fichier pour indiquer que les informations d'identification doivent provenir d'Amazon EC2 :

credential_source = Ec2InstanceMetadata role_arn = arn:aws:iam::123456789012:role/my-role-name
duration_seconds- réglage AWS config du fichier partagé

Spécifie la durée maximale de la session de rôle, en secondes.

Ce paramètre s'applique uniquement lorsque le profil indique d'assumer un rôle.

Valeur par défaut : 3 600 secondes (une heure)

Valeurs valides : La valeur peut aller de 900 secondes (15 minutes) à la durée maximale de session configurée pour le rôle (qui peut être de 43 200 secondes ou 12 heures au maximum). Pour plus d'informations, voir Afficher le paramètre de durée maximale de session pour un rôle dans le guide de l'utilisateur IAM.

Exemple de configuration de ce paramètre dans un config fichier :

duration_seconds = 43200
external_id- réglage AWS config du fichier partagé

Identifiant unique utilisé par des tiers pour assumer un rôle dans les comptes de leurs clients.

Ce paramètre s'applique uniquement lorsque le profil indique d'assumer un rôle et que la politique de confiance associée à ce rôle nécessite une valeur pourExternalId. La valeur correspond au ExternalId paramètre transmis à l'AssumeRoleopération lorsque le profil spécifie un rôle.

Valeur par défaut : Aucune.

Valeurs valides : consultez la section Comment utiliser un identifiant externe lorsque vous accordez l'accès à vos AWS ressources à un tiers dans le guide de l'utilisateur IAM.

Exemple de configuration de ce paramètre dans un config fichier :

external_id = unique_value_assigned_by_3rd_party
mfa_serial- réglage AWS config du fichier partagé

Spécifie l'identification ou le numéro de série d'un dispositif d'authentification multifactorielle (MFA) que l'utilisateur doit utiliser lorsqu'il assume un rôle.

Obligatoire lorsque vous assumez un rôle où la politique de confiance associée à ce rôle inclut une condition nécessitant une authentification MFA.

Valeur par défaut : Aucune.

Valeurs valides : la valeur peut être soit un numéro de série pour un périphérique matériel (tel queGAHT12345678), soit un Amazon Resource Name (ARN) pour un périphérique MFA virtuel. Pour plus d'informations sur le MFA, consultez la section Configuration de l'accès aux API protégé par MFA dans le guide de l'utilisateur IAM.

Exemple de configuration de ce paramètre dans un config fichier :

mfa_serial = arn:aws:iam::123456789012:mfa/my-user-name
role_arn- réglage AWS config du fichier partagé
AWS_IAM_ROLE_ARN- variable d'environnement
aws.roleArn- Propriété du système JVM : Java/Kotlin uniquement

Spécifie le nom de ressource Amazon (ARN) d'un rôle IAM que vous souhaitez utiliser pour effectuer les opérations demandées à l'aide de ce profil.

Valeur par défaut : Aucune.

Valeurs valides : la valeur doit être l'ARN d'un rôle IAM, formaté comme suit : arn:aws:iam::account-id:role/role-name

En outre, vous devez également définir l'un des paramètres suivants :

  • source_profile— Pour identifier un autre profil à utiliser pour trouver les informations d'identification autorisées à assumer le rôle dans ce profil.

  • credential_source— Pour utiliser les informations d'identification identifiées par les variables d'environnement actuelles ou les informations d'identification associées à un profil d'instance Amazon EC2 ou à une instance de conteneur Amazon ECS.

  • web_identity_token_file— Utiliser des fournisseurs d'identité publics ou tout autre fournisseur d'identité compatible avec OpenID Connect (OIDC) pour les utilisateurs authentifiés dans une application mobile ou Web.

role_session_name- réglage AWS config du fichier partagé
AWS_IAM_ROLE_SESSION_NAME- variable d'environnement
aws.roleSessionName- Propriété du système JVM : Java/Kotlin uniquement

Spécifie le nom à attacher à la session de rôle. Ce nom apparaît dans AWS CloudTrail les journaux des entrées associées à cette session, ce qui peut être utile lors d'un audit.

Valeur par défaut : paramètre facultatif. Si vous ne fournissez pas cette valeur, un nom de session est généré automatiquement si le profil assume un rôle.

Valeurs valides : fournies au RoleSessionName paramètre lorsque l' AWS API AWS CLI or appelle l'AssumeRoleopération (ou des opérations telles que l'AssumeRoleWithWebIdentityopération) en votre nom. La valeur fait partie du rôle assumé par l'utilisateur Amazon Resource Name (ARN) que vous pouvez interroger et apparaît dans les entrées du CloudTrail journal pour les opérations invoquées par ce profil.

arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name.

Exemple de configuration de ce paramètre dans un config fichier :

role_session_name = my-role-session-name
source_profile- réglage AWS config du fichier partagé

Spécifie un autre profil dont les informations d'identification sont utilisées pour assumer le rôle spécifié par le role_arn paramètre du profil d'origine. Pour comprendre comment les profils sont utilisés dans le partage AWS config et credentials les fichiers, consultezPartage config et credentials fichiers.

Si vous spécifiez un profil qui est également un profil d'acceptation de rôle, chaque rôle sera assumé dans un ordre séquentiel afin de résoudre complètement les informations d'identification. Cette chaîne est arrêtée lorsque le SDK rencontre un profil avec des informations d'identification. Le chaînage des rôles limite votre session de rôle AWS CLI ou celle de l' AWS API à une heure maximum et ne peut pas être augmenté. Pour plus d'informations, consultez la section Termes et concepts relatifs aux rôles dans le guide de l'utilisateur IAM.

Valeur par défaut : Aucune.

Valeurs valides : chaîne de texte composée du nom d'un profil défini dans les credentials fichiers config et. Vous devez également spécifier une valeur pour role_arn dans le profil actuel.

Vous ne pouvez pas spécifier à la fois credential_source et source_profile dans le même profil.

Exemple de configuration dans un fichier de configuration :

[profile A] source_profile = B role_arn = arn:aws:iam::123456789012:role/RoleA [profile B] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

Dans l'exemple précédent, le profil A utilise les informations d'identification du profil B. Lorsque vous spécifiez que le SDK ou l'outil doit utiliser le A profil, le SDK ou l'outil recherche automatiquement les informations d'identification du B profil lié et les utilise pour demander des informations d'identification temporaires pour le rôle IAM spécifié. Pour ce faire, le SDK ou l'outil utilise l'AssumeRoleopération sts : en arrière-plan. Ces informations d'identification temporaires sont ensuite utilisées par votre code pour accéder aux AWS ressources. Le rôle spécifié doit être associé à des politiques d'autorisation IAM autorisant l'exécution du code demandé, comme la commande ou la méthode d'API. Service AWS

web_identity_token_file- réglage AWS config du fichier partagé
AWS_WEB_IDENTITY_TOKEN_FILE- variable d'environnement
aws.webIdentityTokenFile- Propriété du système JVM : Java/Kotlin uniquement

Spécifie le chemin d'accès à un fichier contenant un jeton d'accès provenant d'un fournisseur OAuth 2.0 ou d'un fournisseur d'identité OpenID Connect ID compatible.

Ce paramètre active l'authentification en utilisant des fournisseurs de fédération d'identité Web, tels que Google, Facebook et Amazon, entre autres. Le SDK ou l'outil de développement charge le contenu de ce fichier et le transmet comme WebIdentityToken argument lorsqu'il appelle l'AssumeRoleWithWebIdentityopération en votre nom.

Valeur par défaut : Aucune.

Valeurs valides : cette valeur doit être un chemin et un nom de fichier. Le fichier doit contenir un jeton d'accès OAuth 2.0 ou un jeton OpenID Connect qui vous a été fourni par un fournisseur d'identité. Les chemins relatifs sont traités comme relatifs au répertoire de travail du processus.

Compatibilité avec les AWS SDK

Les SDK suivants prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toute exception partielle est notée. Tous les paramètres de propriété du système JVM sont pris en charge par le AWS SDK for Java et le Kit AWS SDK pour Kotlin seul.

SDK Pris en charge Remarques ou informations supplémentaires
AWS CLI v2 Oui
SDK pour C++ Partielle credential_sourcenon pris en charge. duration_secondsnon pris en charge. mfa_serialnon pris en charge.
SDK pour Go V2 (1.x) Oui
SDK pour Go 1.x (V1) Oui Pour utiliser les paramètres des config fichiers partagés, vous devez activer le chargement à partir du fichier de configuration ; voir Sessions.
SDK pour Java 2.x Partielle mfa_serialnon pris en charge. Utiliser AWS_ROLE_ARN au lieu deAWS_IAM_ROLE_ARN. Utiliser AWS_ROLE_SESSION_NAME au lieu deAWS_IAM_ROLE_SESSION_NAME.
SDK pour Java 1.x Partielle mfa_serialnon pris en charge. Les propriétés du système JVM ne sont pas prises en charge.
SDK pour 3.x JavaScript Oui
SDK pour 2.x JavaScript Partielle credential_sourcenon pris en charge.
SDK pour Kotlin Oui Utiliser AWS_ROLE_ARN au lieu deAWS_IAM_ROLE_ARN. Utiliser AWS_ROLE_SESSION_NAME au lieu deAWS_IAM_ROLE_SESSION_NAME.
SDK pour .NET 3.x Oui
SDK pour PHP 3.x Oui
SDK pour Python (Boto3) Oui
SDK pour Ruby 3.x Oui
SDK pour Rust Oui
Outils pour PowerShell Oui