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.
Transmettez les tags de session AWS STS
Les balises de session sont des attributs de paires clé-valeur que vous transmettez lorsque vous assumez un IAM rôle ou que vous fédérez un utilisateur. AWS STS Pour ce faire, vous devez effectuer une AWS API demande AWS CLI ou une demande par AWS STS le biais de votre fournisseur d'identité (IdP). Lorsque vous demandez des informations AWS STS d'identification de sécurité temporaires, vous générez une session. Les sessions expirent et disposent d'informations d'identification, telles qu'une paire de clés d'accès et un jeton de session. Lorsque vous utilisez les informations d'identification de session pour effectuer une demande ultérieure, le contexte de demande inclut la clé de contexte aws:PrincipalTag
. Vous pouvez utiliser la clé aws:PrincipalTag
dans l'élément Condition
de vos politiques pour autoriser ou refuser l'accès en fonction de ces balises.
Lorsque vous utilisez des informations d'identification temporaires pour effectuer une demande, votre principal peut inclure un ensemble d'étiquettes. Ces balises proviennent des sources suivantes :
-
Balises de session : balises transmises lorsque vous assumez le rôle ou que vous fédérez l'utilisateur à l'aide du AWS CLI ou AWS API. Pour plus d'informations sur ces opérations, consultez Opérations de balisage de session.
-
Incoming transitive session tags (Balises de session transitive entrantes) : ces balises ont été héritées d'une session précédente dans une chaîne de rôles. Pour plus d'informations, consultez Chaînage des rôles avec des balises de session plus loin dans cette rubrique.
-
IAMtags — Les tags associés à votre rôle IAM assumé.
Rubriques
- Opérations de balisage de session
- Choses à savoir sur les balises de session
- Autorisations requises pour ajouter des balises de session
- Transmission de balises de session en utilisant AssumeRole
- Transmission de balises de session en utilisant AssumeRoleWith SAML
- Transmission de balises de session en utilisant AssumeRoleWithWebIdentity
- Transmission de balises de session en utilisant GetFederationToken
- Chaînage des rôles avec des balises de session
- Utilisation de balises de session pour ABAC
- Afficher les balises de session dans CloudTrail
Opérations de balisage de session
Vous pouvez transmettre des balises de session en utilisant ce qui suit AWS CLI ou en effectuant AWS API les opérations suivantes AWS STS. La fonctionnalité AWS Management Console Switch Role ne vous permet pas de transmettre des balises de session.
Vous pouvez également définir les balises de session comme transitives. Les balises transitives persistent pendant le chaînage des rôles. Pour de plus amples informations, veuillez consulter Chaînage des rôles avec des balises de session.
Le tableau suivant compare les méthodes de transmission des balises de session.
Opération | Qui peut endosser le rôle | Méthode pour transmettre des balises | Méthode pour définir des balises transitives |
---|---|---|---|
assume-role CLIou AssumeRole APIopération |
Utilisateur ou session IAM | Tags APIparamètre ou --tags CLI option |
TransitiveTagKeys APIparamètre ou --transitive-tag-keys CLI option |
assume-role-with-saml CLIou AssumeRoleWithSAML APIopération |
Tout utilisateur authentifié à l'aide d'un fournisseur d'SAMLidentité | PrincipalTag SAMLattribut |
TransitiveTagKeys SAMLAttribut |
assume-role-with-web-identity CLIou AssumeRoleWithWebIdentity APIopération |
Tout utilisateur authentifié à l'aide d'un fournisseur OIDC | PrincipalTag OIDCjeton |
TransitiveTagKeys OIDCjeton |
get-federation-token CLIou GetFederationToken APIopération |
IAMutilisateur ou utilisateur root | Tags APIparamètre ou --tags CLI option |
Non pris en charge |
Les opérations qui prennent en charge le balisage de session peuvent échouer si l'une des conditions suivantes est remplie :
-
Vous transmettez plus de 50 balises de session.
-
Le texte brut de vos clés de balise de session dépasse 128 caractères.
-
Le texte brut des valeurs de vos balises de session dépasse 256 caractères.
-
La taille totale du texte brut des politiques de session dépasse 2 048 caractères.
-
La taille totale des politiques et balises de session combinées est trop grande. Si l'opération échoue, le message d'erreur indique à quel point les politiques et les balises combinées se rapprochent de la limite de taille supérieure, en pourcentage.
Choses à savoir sur les balises de session
Avant d'utiliser des balises de session, veuillez consulter les détails suivants concernant les sessions et les balises.
-
Lorsque vous utilisez des balises de session, les politiques d'approbation pour tous les rôles connectés au fournisseur d'identité qui transmet des balises doivent disposer de l'autorisation sts:TagSession. Pour les rôles qui ne disposent pas de cette autorisation dans la politique d'approbation, l'opération
AssumeRole
échoue. -
Lorsque vous demandez une session, vous pouvez spécifier des balises de principal comme balises de session. Les balises s'appliquent aux demandes que vous effectuez à l'aide des informations d'identification de la session.
-
Les balises utilisent des paires clé-valeur. Par exemple, pour ajouter des informations de contact à une session, vous pouvez ajouter la clé de balise de session
email
et la valeur de balisejohndoe@example.com
. -
Les balises de session doivent suivre les règles de dénomination des balises dans IAM et AWS STS. Cette rubrique contient des informations sur la sensibilité à la casse et les préfixes restreints qui s'appliquent à vos balises de session.
-
Les nouvelles balises de session remplacent les balises de rôle ou d’utilisateur fédéré existantes avec la même clé de balise, quel que soit le cas de caractères.
-
Vous ne pouvez pas transmettre de balises de session à l'aide du AWS Management Console.
-
Les balises de session ne sont valides que pour la session en cours.
-
Les balises de session prennent en charge le chaînage des rôles. Par défaut, AWS STS ne transmet pas de balises aux sessions de rôle suivantes. Toutefois, vous pouvez définir les balises de session comme transitives. Les balises transitives persistent durant le chaînage des rôles et remplacent la mise en correspondance de valeurs
ResourceTag
après l’évaluation de la politique de confiance de rôle. Pour de plus amples informations, veuillez consulter Chaînage des rôles avec des balises de session. -
Vous pouvez utiliser des balises de session pour contrôler l'accès aux ressources ou pour contrôler les balises qui peuvent être transmises à une session ultérieure. Pour plus d'informations, veuillez consulter IAMtutoriel : Utiliser les balises de SAML session pour ABAC.
-
Vous pouvez afficher les balises principales de votre session, y compris les balises de session, dans les journaux AWS CloudTrail . Pour de plus amples informations, veuillez consulter Afficher les balises de session dans CloudTrail.
-
Vous devez transmettre une valeur unique pour chaque balise de session. AWS STS ne prend pas en charge les balises de session à valeurs multiples.
-
Vous pouvez transmettre un maximum de 50 balises de session. Le nombre et la taille des IAM ressources d'un AWS compte sont limités. Pour de plus amples informations, veuillez consulter IAMet AWS STS quotas.
-
Une AWS conversion compresse les politiques de session et les balises de session adoptées combinées dans un format binaire compressé avec une limite distincte. Si vous dépassez cette limite, le message AWS API d'erreur AWS CLI ou indique dans quelle mesure les politiques et les balises combinées se rapprochent de la limite de taille supérieure, en pourcentage.
Autorisations requises pour ajouter des balises de session
Outre l'action correspondant à l'APIopération, vous devez inclure dans votre politique l'action suivante, uniquement basée sur les autorisations :
sts:TagSession
Important
Lorsque vous utilisez des balises de session, les politiques d'approbation de rôle pour tous les rôles connectés à un fournisseur d'identité doivent disposer de l'autorisation sts:TagSession
. L'opération AssumeRole
échoue pour tout rôle connecté à un fournisseur d'identité qui transmet des balises de session sans cette autorisation. Si vous ne souhaitez pas mettre à jour la politique d'approbation de rôle pour chaque rôle, vous pouvez utiliser une instance de fournisseur d'identité distincte pour transmettre les balises de session. Ajoutez ensuite l'autorisation sts:TagSession
uniquement aux rôles qui sont connectés au fournisseur d'identité distinct.
Vous pouvez utiliser l'action sts:TagSession
avec les clés de condition suivantes.
-
aws:PrincipalTag
: compare la balise attachée au principal effectuant la demande avec la balise spécifiée dans la politique. Par exemple, vous pouvez autoriser un principal à transmettre des balises de session uniquement si le principal qui effectue la demande possède les balises spécifiées. -
aws:RequestTag
: compare la paire clé-valeur de balise qui a été transmise dans la demande avec la paire de balises que vous indiquez dans la politique. Par exemple, vous pouvez autoriser le principal à transmettre les balises de session spécifiées, mais uniquement avec les valeurs spécifiées. -
aws:ResourceTag
: compare la paire clé-valeur de balise que vous avez spécifiée dans la politique avec la paire clé-valeur attachée à la ressource. Par exemple, vous pouvez autoriser le principal à transmettre des balises de session uniquement si le rôle qu'il endosse inclut les balises spécifiées. -
aws:TagKeys
: compare les clés de balise d'une demande avec les clés que vous avez spécifiées dans la politique. Par exemple, vous pouvez autoriser le principal à transmettre uniquement les balises de session avec les clés de balise spécifiées. Cette clé de condition limite l'ensemble maximal de balises de session pouvant être passé. -
sts:TransitiveTagKeys
: compare les clés des balises de session transitive de la demande à celles spécifiées dans la politique. Par exemple, vous pouvez écrire une politique pour permettre à un principal de définir uniquement des balises spécifiques comme transitives. Les balises transitives persistent pendant le chaînage des rôles. Pour plus d'informations, veuillez consulter Chaînage des rôles avec des balises de session.
Par exemple, la politique d'approbation de rôle suivante permet à l'utilisateur test-session-tags
d'endosser le rôle auquel la politique est attachée. Lorsque cet utilisateur assume le rôle, il doit utiliser le AWS CLI ou AWS API pour transmettre les trois balises de session requises et l'ID externe requis. En outre, l'utilisateur peut choisir de définir les balises Department
et Project
comme transitives.
Exemple Politique d'approbation de rôle pour les balises de session
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIamUserAssumeRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::
123456789012
:user/test-session-tags
"}, "Condition": { "StringLike": { "aws:RequestTag/Project
": "*", "aws:RequestTag/CostCenter
": "*", "aws:RequestTag/Department
": "*" }, "StringEquals": {"sts:ExternalId": "Example987
"} } }, { "Sid": "AllowPassSessionTagsAndTransitive", "Effect": "Allow", "Action": "sts:TagSession", "Principal": {"AWS": "arn:aws:iam::123456789012
:user/test-session-tags
"}, "Condition": { "StringLike": { "aws:RequestTag/Project
": "*", "aws:RequestTag/CostCenter
": "*" }, "StringEquals": { "aws:RequestTag/Department
": [ "Engineering
", "Marketing
" ] }, "ForAllValues:StringEquals": { "sts:TransitiveTagKeys": [ "Project
", "Department
" ] } } } ] }
À quoi sert cette politique ?
-
La instruction
AllowIamUserAssumeRole
permet à l'utilisateurtest-session-tags
d'endosser le rôle auquel la politique est attachée. Lorsque cet utilisateur endosse le rôle, il doit passer les balises de session et l'ID externe requis.-
Le premier bloc de condition de cette instruction nécessite que l'utilisateur transmette les balises de session
Project
,CostCenter
etDepartment
. Les valeurs de balise n'ont pas d'importance dans cette instruction, vous pouvez donc utiliser des caractères génériques (*) pour les valeurs de balise. Ce bloc garantit que l'utilisateur transmette au moins ces trois balises de session. Sinon, l'opération échoue. L'utilisateur peut transmettre des balises supplémentaires. -
Le deuxième bloc de condition nécessite que l'utilisateur transmette un ID externe avec la valeur
Example987
.
-
-
L'instruction
AllowPassSessionTagsAndTransitive
autorise l'action d'autorisationssts:TagSession
. Cette action doit être autorisée avant que l'utilisateur puisse transmettre des balises de session. Si votre politique inclut la première instruction sans la deuxième, l'utilisateur ne peut pas endosser le rôle.-
Le premier bloc de condition de cette instruction permet à l'utilisateur de transmettre n'importe quelle valeur pour les balises de session
CostCenter
etProject
. Pour ce faire, utilisez des caractères génériques (*) pour la valeur de balise dans la politique, ce qui nécessite l'utilisation de l'opérateur de StringLikecondition. -
Le deuxième bloc de condition permet à l'utilisateur de transmettre uniquement la valeur
Engineering
ouMarketing
de la balise de sessionDepartment
. -
Le troisième bloc de condition répertorie l'ensemble maximal de balises que vous pouvez définir comme transitives. L'utilisateur peut choisir de définir un sous-ensemble ou aucune balise comme transitive. Il ne peut pas définir de balises supplémentaires comme transitives. Vous pouvez exiger qu'il définisse au moins une des balises comme transitive en ajoutant un autre bloc de condition qui inclut
"Null":{"sts:TransitiveTagKeys":"false"}
.
-
Transmission de balises de session en utilisant AssumeRole
L'AssumeRole
opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux AWS ressources. Vous pouvez utiliser les informations d'identification de IAM l'utilisateur ou du rôle pour appelerAssumeRole
. Pour transmettre des balises de session tout en assumant un rôle, utilisez l'--tags
AWS CLI option ou le Tags
AWS API paramètre.
Pour définir les balises comme transitives, utilisez l'--transitive-tag-keys
AWS CLI option ou le TransitiveTagKeys
AWS API paramètre. Les balises transitives persistent pendant le chaînage des rôles. Pour plus d'informations, veuillez consulter Chaînage des rôles avec des balises de session.
L'exemple suivant montre un exemple de demande qui utilise AssumeRole
. Dans cet exemple, lorsque vous endossez le rôle my-role-example
, vous créez une session nommée my-session
. Vous ajoutez les paires clé-valeur de balise de session Project
= Automation
, CostCenter
= 12345
et Department
= Engineering
. Vous définissez également les balises Project
et Department
comme transitives en spécifiant leurs clés. Vous devez transmettre une valeur unique pour chaque balise de session. AWS STS ne prend pas en charge les balises de session à valeurs multiples.
Exemple de AssumeRole CLI demande
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/my-role-example \ --role-session-name my-session \ --tags Key=Project,Value=Automation Key=CostCenter,Value=12345 Key=Department,Value=Engineering \ --transitive-tag-keys Project Department \ --external-id Example987
Transmission de balises de session en utilisant AssumeRoleWith SAML
L'AssumeRoleWithSAML
opération s'authentifie à l'aide de la fédération SAML basée. Cette opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux AWS ressources. Pour plus d'informations sur l'utilisation de la fédération SAML basée pour AWS Management Console l'accès, consultezPermettre aux utilisateurs fédérés SAML 2.0 d'accéder au AWS Management Console. Pour en savoir plus sur l' AWS
APIaccès AWS CLI ou pour en savoir plus, consultezSAMLfédération 2.0. Pour un didacticiel sur la configuration de SAML la fédération pour vos utilisateurs d'Active Directory, consultez la section Authentification AWS fédérée avec les services de fédération Active Directory (ADFS)
En tant qu'administrateur, vous pouvez autoriser les membres du répertoire de votre entreprise à se fédérer pour AWS utiliser cette AWS STS AssumeRoleWithSAML
opération. Pour ce faire, effectuez les tâches suivantes :
AWS inclut des fournisseurs d'identité dotés d'une end-to-end expérience certifiée en matière de balises de session dans le cadre de leurs solutions d'identité. Pour savoir comment utiliser ces fournisseurs d'identité pour configurer des balises de session, veuillez consulter Intégrez des fournisseurs de solutions SAML tiers avec AWS.
Pour transmettre SAML des attributs sous forme de balises de session, incluez l'Attribute
élément dont l'Name
attribut est défini surhttps://aws.amazon.com/SAML/Attributes/PrincipalTag:
. Utilisez l'élément {TagKey}
AttributeValue
pour spécifier la valeur de la balise. Incluez un élément Attribute
distinct pour chaque balise de session.
Par exemple, supposons que vous souhaitez transmettre les attributs d'identité suivants en tant que balises de session :
-
Project:Automation
-
CostCenter:12345
-
Department:Engineering
Pour transmettre ces attributs, incluez les éléments suivants dans votre SAML assertion.
Exemple d'extrait d'une assertion SAML
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Automation</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Department"> <AttributeValue>Engineering</AttributeValue> </Attribute>
Pour définir les balises précédentes ci-dessus comme transitives, incluez un autre élément Attribute
dont l'attribut Name
est défini sur https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
. Les balises transitives persistent pendant le chaînage des rôles. Pour plus d'informations, veuillez consulter Chaînage des rôles avec des balises de session.
Pour définir les balises Department
et Project
comme transitives, utilisez l'attribut à valeurs multiples suivant :
Exemple d'extrait d'une assertion SAML
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>Department</AttributeValue> </Attribute>
Transmission de balises de session en utilisant AssumeRoleWithWebIdentity
Utilisez la fédération conforme à OpenID Connect (OIDC) pour authentifier l'opération. AssumeRoleWithWebIdentity
Cette opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux AWS ressources. Pour plus d'informations sur l'utilisation de la fédération d'identité Web pour AWS Management Console l'accès, consultezOIDCfédération.
Pour transmettre des balises de session depuis OpenID Connect (OIDC), vous devez inclure les balises de session dans le jeton JSON Web ()JWT. Incluez les balises de session dans l'espace de noms https://aws.amazon.com/
dans le jeton lorsque vous soumettez la demande AssumeRoleWithWebIdentity
. Pour en savoir plus sur les OIDC jetons et les réclamations, consultez la section Utilisation de jetons avec des groupes d'utilisateurs dans le guide du Amazon Cognito développeur.
Par exemple, le décodé suivant JWT utilise un jeton pour appeler AssumeRoleWithWebIdentity
avec les balisesProject
,CostCenter
, et de Department
session. Le jeton définit également les balises Project
et CostCenter
comme transitives. Les balises transitives persistent pendant le chaînage des rôles. Pour de plus amples informations, veuillez consulter Chaînage des rôles avec des balises de session.
Exemple de jeton JSON Web décodé
{ "sub": "johndoe", "aud": "ac_oic_client", "jti": "ZYUCeRMQVtqHypVPWAN3VB", "iss": "https://xyz.com", "iat": 1566583294, "exp": 1566583354, "auth_time": 1566583292, "https://aws.amazon.com/tags": { "principal_tags": { "Project": ["Automation"], "CostCenter": ["987654"], "Department": ["Engineering"] }, "transitive_tag_keys": [ "Project", "CostCenter" ] } }
Transmission de balises de session en utilisant GetFederationToken
Le GetFederationToken
vous permet de fédérer votre utilisateur. Cette opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux AWS ressources. Pour ajouter des balises à votre session utilisateur fédérée, utilisez l'--tags
AWS CLI option ou le Tags
AWS API paramètre. Vous ne pouvez pas définir les balises de session comme transitives lorsque vous utilisez le GetFederationToken
, car vous ne pouvez pas utiliser les informations d'identification temporaires pour endosser un rôle. Vous ne pouvez pas utiliser le chaînage de rôles dans ce cas.
Voici un exemple de réponse à l'aide de GetFederationToken
. Dans cet exemple, lorsque vous demandez le jeton, vous créez une session nommée my-fed-user
. Vous ajoutez les paires clé-valeur de la balise de session Project
= Automation
et Department
= Engineering
.
Exemple de GetFederationToken CLI demande
aws sts get-federation-token \ --name my-fed-user \ --tags key=Project,value=Automation key=Department,value=Engineering
Lorsque vous utilisez les informations d'identification temporaires renvoyées par l'opération GetFederationToken
, les balises principales de la session incluent les balises de l'utilisateur et les balises de session transmises.
Chaînage des rôles avec des balises de session
Vous pouvez endosser un rôle, puis utiliser les informations d'identification temporaires pour en endosser un autre. Vous pouvez continuer d'une session à une autre. C'est ce qu'on appelle le chaînage des rôles. Lorsque vous transmettez des balises de session en endossant un rôle, vous pouvez définir les clés comme transitives. Cela garantit que ces balises de session sont transmises aux sessions suivantes dans une chaîne de rôles. Vous ne pouvez pas définir les balises de rôle comme transitives. Pour transmettre ces balises aux sessions suivantes, indiquez-les en tant que balises de session.
Note
Les balises transitives persistent durant le chaînage des rôles et remplacent la mise en correspondance de valeurs ResourceTag
après l’évaluation de la politique de confiance de rôle.
L'exemple suivant montre comment transmettre AWS STS les balises de session, les balises transitives et les balises de rôle aux sessions suivantes d'une chaîne de rôles.
Dans cet exemple de scénario de chaînage de rôles, vous utilisez une clé IAM d'accès utilisateur dans le AWS CLI pour assumer un rôle nomméRole1
. Vous utilisez ensuite les informations d'identification de session résultantes pour endosser un second rôle nommé Role2
. Vous pouvez ensuite utiliser les informations d'identification de la deuxième session pour endosser un troisième rôle nommé Role3
. Ces demandes se déroulent sous la forme de trois opérations distinctes. Chaque rôle est déjà taguéIAM. Et lors de chaque demande, vous transmettez des balises de session supplémentaires.
Lorsque vous enchaînez des rôles, vous pouvez vous assurer que les balises d'une session antérieure persistent jusqu'aux sessions ultérieures. Pour ce faire à l'aide de la assume-role
CLI commande, vous devez transmettre la balise en tant que balise de session et définir la balise comme transitive. Vous transmettez la balise Star
= 1
en tant que balise de session. La commande attache également la balise Heart
= 1
au rôle et s'applique en tant que balise principale lorsque vous utilisez la session. Cependant, vous voulez également que la balise Heart
= 1
transmette automatiquement à la deuxième ou troisième session. Pour ce faire, vous l'incluez manuellement en tant que balise de session. Les balises de principal de session résultantes incluent ces deux balises et les définissent comme transitives.
Vous effectuez cette demande à l'aide de la AWS CLI commande suivante :
Exemple de AssumeRole CLI demande
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role1 \ --role-session-name Session1 \ --tags Key=Star,Value=1 Key=Heart,Value=1 \ --transitive-tag-keys Star Heart
Vous utilisez ensuite les informations d'identification pour cette session pour endosser Role2
. La commande attache la balise Sun
= 2
au deuxième rôle et s'applique en tant que balise principale lorsque vous utilisez la deuxième session. Les balises Heart
= Star
héritent des balises de session transitive de la première session. Les balises principales résultantes de la deuxième session sont Heart
= 1
, Star
= 1
et Sun
= 2
. Heart
et Star
continueront d'être transitives. La balise Sun
attachée à Role2
n'est pas marquée comme transitive, car il ne s'agit pas d'une balise de session. Les sessions futures n'héritent pas de cette balise.
Vous effectuez cette deuxième demande à l'aide de la AWS CLI commande suivante :
Exemple de AssumeRole CLI demande
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role2 \ --role-session-name Session2
Vous utilisez ensuite les informations d'identification de la deuxième session pour endosser Role3
. Les balises principales de la troisième session proviennent de toutes les nouvelles balises de session, des balises de session transitive héritées et des balises de rôle. Les balises Heart
= 1
et Star
= 1
de la deuxième session ont été héritées de la balise de session transitive de la première session. Si vous essayez de transmettre la balise de session Sun
= 2
, l'opération échoue. La balise de session Star
= 1 héritée remplace la balise du rôle Star
= 3
. Dans le chaînage des rôles, la valeur d’une balise transitive remplace le rôle correspondant à la valeur ResourceTag
avant l’évaluation de la politique de confiance de rôle. Dans cet exemple, si Role3
utilise Star
en tant que ResourceTag
dans la politique de confiance de rôle, et définit la valeur ResourceTag
à la valeur de balise transitive à partir de la session de rôle appelant. La balise du rôle Lightning
s'applique également à la troisième session et n'est pas définie comme transitive.
Vous effectuez la troisième demande à l'aide de la AWS CLI commande suivante :
Exemple de AssumeRole CLI demande
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role3 \ --role-session-name Session3
Utilisation de balises de session pour ABAC
Le contrôle d'accès basé sur les attributs (ABAC) utilise une stratégie d'autorisation qui définit les autorisations en fonction des attributs des balises.
Si votre entreprise utilise un fournisseur d'identité (IdP) SAML basé sur OIDC ou pour gérer les identités des utilisateurs, vous pouvez configurer votre assertion pour qu'elle transmette les balises de session. AWS Par exemple, dans le cas des identités d'utilisateur d'entreprise, lorsque vos employés se fédérent dans AWS, leurs attributs sont AWS appliqués au principal qui en résulte. Vous pouvez ensuite utiliser ABAC pour autoriser ou refuser des autorisations en fonction de ces attributs. Pour plus de détails, consultez IAMtutoriel : Utiliser les balises de SAML session pour ABAC.
Pour plus d'informations sur l'utilisation IAM d'Identity Center avecABAC, consultez la section Attributs pour le contrôle d'accès dans le guide de AWS IAM Identity Center l'utilisateur.
Afficher les balises de session dans CloudTrail
Vous pouvez l'utiliser AWS CloudTrail pour afficher les demandes utilisées pour assumer des rôles ou fédérer des utilisateurs. Le fichier CloudTrail journal contient des informations sur les principales balises de la session utilisateur assumée ou fédérée. Pour de plus amples informations, veuillez consulter Enregistrement IAM et AWS STS API appels avec AWS CloudTrail.
Supposons, par exemple, que vous fassiez une AWS STS AssumeRoleWithSAML
demande, que vous transmettiez des balises de session et que vous définissiez ces balises comme transitives. Vous trouverez les informations suivantes dans votre CloudTrail journal.
Exemple de AssumeRoleWith SAML CloudTrail journal
"requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyRoleSessionName", "principalTags": { "CostCenter": "987654", "Project": "Unicorn" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "durationSeconds": 3600, "roleArn": "arn:aws:iam::123456789012:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::123456789012:saml-provider/Shibboleth" },
Vous pouvez consulter les exemples de CloudTrail journaux suivants pour visualiser les événements utilisant des balises de session.