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
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" } }