Comprendre les réclamations symboliques - AWS Identity and Access Management

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 réclamations symboliques

Lorsque vous appelez l'GetWebIdentityTokenAPI, le 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 RFC 7519. La compréhension de la structure et du contenu de ces jetons vous permet de mettre en œuvre des flux d'authentification sécurisés, de configurer des validations de réclamations appropriées dans les services externes et d'utiliser efficacement les demandes personnalisées pour un contrôle d'accès précis.

Le JWT inclut des revendications OpenID Connect (OIDC) standard telles que le sujet (« sub »), l'audience (« aud »), l'émetteur (« iss ») afin de faciliter l'interopérabilité entre les différents services externes. AWS STS remplit le jeton avec des revendications AWS spécifiques à l'identité (comme l'ID de AWS compte et les balises Principal) et des revendications de contexte de session (comme une EC2 instance ARNs) le cas échéant. Vous pouvez également ajouter des revendications personnalisées au jeton en les transmettant sous forme de balises de requête à l'GetWebIdentityTokenAPI. Les revendications AWS spécifiques à l'identité, les revendications relatives au contexte de session et les revendications personnalisées sont imbriquées sous 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 réclamations peuvent ne pas être présentes sous forme de jeton en même temps.

{ "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 allégations 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
iss Emetteur URL de l'émetteur spécifique à votre compte. Les services externes valident cette réclamation 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 GetWebIdentityTokendemande. https://api.example.com
sub Sujet L'ARN du principal IAM qui a demandé le jeton. arn:aws:iam : :123456789012:role/ DataProcessingRole
iat Délivré à NumericDate valeur qui identifie l'heure à laquelle le JWT a été émis. 1700000000
exp Expiration NumericDate valeur qui identifie l'heure d'expiration à laquelle ou après laquelle le JWT NE DOIT PAS être accepté pour traitement. 1700000900
jti IDENTIFIANT JWT Identifiant unique pour cette instance de jeton. xyz123-def456-ghi789-jkl012

Réclamations personnalisées

Outre les revendications OIDC standard, AWS STS ajoute des allégations 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 sous l'espace de noms https://sts.amazonaws.com/.

AWS demandes d'identité

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

Demander Description Cartes vers la clé de condition Exemple de valeur
compte aws_ L'identifiant AWS de votre compte lois : PrincipalAccount 123456789012
source_region La AWS région où le jeton a été demandé lois : RequestedRegion us-east-1
org_id Votre identifiant d' AWS organisation (si votre compte fait partie d'une organisation) lois : PrincipalOrg ID o-abc1234567
ou_path Le parcours de votre unité organisationnelle (le cas échéant) lois : PrincipalOrgPaths o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-222222222222/
principal_tags Balises associées à la session de rôle principal ou assumé par l'IAM. 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. lois :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 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 originale Quand les informations d'identification de la session de rôle d'origine expireront (pour les rôles assumés) N/A 2024-01-15T 10:00:00 Z
fournisseur_fédéré Le nom du fournisseur d'identité pour les sessions fédérées lois : FederatedProvider arn:aws:iam : :111122223333:oidc-provider/your_oidc_provider
identity_store_user_id ID utilisateur du centre d'identité IAM boutique d'identité : UserId user-abc123def456
identity_store_arn ARN de la boutique d'identités Identity Center boutique d'identité : IdentityStoreArn arn:aws:identitystore : :123456789012 : identitystore/d-abc1234567
ec2_source_instance_arn ARN de l' EC2 instance demandeuse EC2 : SourceInstanceArn arn:aws:ec2:us-east- 1:123456789012 : instance/i-abc123def456
ec2_instance_source_vpc ID VPC où les informations d'identification du EC2 rôle ont été fournies AWS : EC2 InstanceSourceVpc vpc-abc123def456
ec2_instance_source_private_ipv4 IPv4 Adresse privée de l' EC2 instance AWS : EC2 InstanceSourcePrivate IPv4 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 lois : SourceIdentity utilisateur-administrateur
lambda_source_function_arn ARN de la fonction Lambda appelante lambda : SourceFunctionArn arn:aws:lambda:us-east- 1:123456789012 : fonction:my-function
glue_credential_issuing_service 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 GetWebIdentityTokend'API. Ces demandes apparaissent sous le champ request_tags du jeton et vous permettent de transmettre des informations spécifiques que les services externes peuvent utiliser pour 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 qui en résultent sous forme de jetons :

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