View a markdown version of this page

Comprendre les revendications relatives aux jetons - AWS Gestion de l’identité et des accès

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.

Comprendre les revendications relatives aux jetons

Lorsque vous appelez l'GetWebIdentityTokenAPI, AWS Security Token Service renvoie un jeton Web JSON (JWT) signé qui contient un ensemble de revendications représentant l'identité du principal IAM. Ces jetons sont conformes à la norme RFC 7519. Comprendre la structure et le contenu de ces jetons vous permet de mettre en œuvre des flux d'authentification sécurisés, de configurer les validations de revendications appropriées dans les services externes et d'utiliser efficacement les revendications personnalisées pour un contrôle d'accès précis.

Le JWT inclut des déclarations OpenID Connect (OIDC) standard telles que sujet (« sub »), audience (« aud »), émetteur (« iss ») afin de faciliter l'interopérabilité entre différents services externes. AWS STS remplit le jeton avec des revendications AWS spécifiques à l'identité (telles que les balises AWS Account ID et Principal) et des revendications contextuelles de session (comme les ARN d'instance EC2), le cas échéant. Vous pouvez également ajouter des revendications personnalisées au jeton en les transmettant sous forme de balises de demande à l'GetWebIdentityTokenAPI. Les revendications AWS spécifiques à l'identité, les revendications de contexte de session et les revendications personnalisées sont imbriquées dans l'espace de noms « https://sts.amazonaws.com/ » du jeton.

Reportez-vous à l'exemple de jeton ci-dessous pour obtenir la liste des réclamations incluses dans le jeton. Veuillez noter que toutes ces revendications peuvent ne pas être présentes simultanément dans un jeton.

{ "iss": "https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws", "aud": "https://api.example.com", "sub": "arn:aws:iam::123456789012:role/DataProcessingRole", "iat": 1700000000, "exp": 1700000900, "jti": "xyz123-def456-ghi789-jkl012", "https://sts.amazonaws.com/": { "aws_account": "123456789012", "source_region": "us-east-1", "org_id": "o-abc1234567", "ou_path": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/", "principal_tags": { "environment": "production", "team": "data-engineering", "cost-center": "engineering" }, "lambda_source_function_arn": "arn:aws:lambda:us-east-1:123456789012:function:process-data", "request_tags": { "job-id": "job-2024-001", "priority": "high", "data-classification": "sensitive" } } }

Réclamations standard

Les revendications OIDC standard présentes dans les jetons facilitent l'interopérabilité avec un large éventail de services externes. Ces affirmations peuvent être validées à l'aide de la plupart des bibliothèques JWT.

Demander Nom Description Exemple de valeur
bise Emetteur URL de l'émetteur spécifique à votre compte. Des services externes valident cette affirmation pour s'assurer qu'elle correspond à leur émetteur de confiance. https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws
aud Public ciblé Destinataire prévu pour le jeton spécifié dans la GetWebIdentityToken demande. https://api.example.com
sub Sujet L'ARN du principal IAM qui a demandé le jeton. arn:aws:iam : :123456789012 : role/DataProcessingRole
iat Publié à NumericDate valeur qui identifie l'heure à laquelle le JWT a été émis. 1700000000
exp Expiration NumericDate valeur qui identifie le délai d'expiration à partir duquel le JWT NE DOIT PAS être accepté pour traitement. 1700000900
jti IDENTIFIANT JET Identifiant unique pour cette instance de jeton. xyz123-def456-ghi789-jkl012

Réclamations personnalisées

En plus des revendications OIDC standard, AWS STS ajoute des revendications concernant l'identité et le contexte de session, le cas échéant. Vous pouvez également ajouter vos propres revendications au jeton en les transmettant sous forme de balises de demande. Les revendications personnalisées sont imbriquées dans l'espace de https://sts.amazonaws.com/ noms.

AWS demandes d'identité

Ces réclamations fournissent des informations détaillées sur votre AWS compte, la structure de votre organisation et le responsable IAM.

Demander Description Cartes vers la clé de condition Exemple de valeur
compte_aws Votre identifiant AWS de compte aws : PrincipalAccount 123456789012
source_region La AWS région où le jeton a été demandé aws : RequestedRegion us-east-1
id_org L'identifiant de votre AWS organisation (si votre compte fait partie d'une organisation) aws : PrincipalOrg ID o-abc1234567
ou_path Le parcours de votre unité organisationnelle (le cas échéant) aws : PrincipalOrgPaths o- a1b2c3d4e5/r - ab12/ou -ab12- -ab12-22222222/ 11111111/ou
tags_principaux Tags attachés à la session IAM principale ou à la session de rôle assumé. Lorsqu'un jeton est demandé alors que le principal IAM demandeur possède à la fois des balises principales et des balises de session, les balises de session seront présentes dans le JWT. annonces :PrincipalTag/<tag-key> {"environnement » : « production », « équipe » : « ingénierie des données », « centre de coûts » :"ingénierie "}

Déclarations relatives au contexte de session

Ces allégations fournissent des informations sur l'environnement informatique et la session d'où provient la demande de jeton. AWS STS inclut automatiquement ces réclamations, le cas échéant, en fonction du contexte de session du principal demandeur.

Demander Description Cartes vers la clé de condition Exemple de valeur
exp de session d'origine Date à laquelle les informations d'identification de session de rôle d'origine expireront (pour les rôles supposés) N/A 15/01/2024 T10:00:00Z
fournisseur_fédéré Le nom du fournisseur d'identité pour les sessions fédérées aws : FederatedProvider arn:aws:iam : :111122223333:oidc- provider/your_oidc_provider
identity_store_user_id ID utilisateur IAM Identity Center boutique d'identité : UserId utilisateur-abc123def456
identity_store_arn ARN de la boutique d'identités Identity Center boutique d'identité : IdentityStoreArn arn:aws : identity store : :123456789012 : -abc1234567 identitystore/d
ec2_source_instance_arn ARN de l'instance EC2 demandeuse EC2 : SourceInstanceArn arn:aws:ec2:us-east- 1:123456789012 : -abc123def456 instance/i
ec2_instance_source_vpc ID VPC où les informations d'identification du rôle EC2 ont été fournies aws : Ec2InstanceSourceVpc vpc-abc123def456
ec2_instance_source_privé_ipv4 Adresse IPv4 privée de l'instance EC2 aws : Ec2InstanceSourcePrivateIPv4 10,0.1,25
ec2_role_delivery Version du service de métadonnées d'instance EC2 : RoleDelivery 2
identité_source Identité de la source définie par le principal aws : SourceIdentity administrateur-utilisateur
lambda_source_function_arn ARN de la fonction Lambda appelante lambda : SourceFunctionArn arn:aws:lambda:us-east- 1:123456789012:function:my-function
service d'émission d'informations d'identification de la colle AWS Identifiant du service Glue pour les tâches Glue colle : CredentialIssuingService glue.amazonaws.com

Tags de demande

Vous pouvez ajouter des revendications personnalisées aux jetons en spécifiant des balises dans la demande GetWebIdentityToken d'API. Ces revendications apparaissent dans le champ request_tags du jeton et vous permettent de transmettre des informations spécifiques que les services externes peuvent utiliser pour prendre des décisions d'autorisation précises. Vous pouvez spécifier jusqu'à 50 balises par demande.

Exemple de demande :

response = sts_client.get_web_identity_token( Audience=['https://api.example.com'], SigningAlgorithm='ES384', Tags=[ {'Key': 'team', 'Value': 'data-engineering'}, {'Key': 'cost-center', 'Value': 'analytics'}, {'Key': 'environment', 'Value': 'production'} ] )

Réclamations résultantes sous forme de jeton :

{ "request_tags": { "team": "data-engineering", "cost-center": "analytics", "environment": "production" } }