Transmission des balises de session dans AWS STS - 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.

Transmission des balises de session dans AWS STS

Les balises de session sont des attributs de paire clé-valeur que vous transmettez lorsque vous endossez un rôle IAM ou fédérez un utilisateur dans AWS STS. Pour ce faire, effectuez une requête d'AWS CLI ou d'API AWS via STS ou via votre fournisseur d'identité (IdP). Lorsque vous utilisez AWS STS pour demander des informations 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 requête inclut la clé de contexte aws:PrincipalTag. Vous pouvez utiliser la clé aws:PrincipalTag dans l'élément Condition de vos stratégies 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 mandataire peut inclure un ensemble de balises. Ces balises proviennent des sources suivantes :

  1. Balises de session – Ces balises ont été transmises lorsque vous avez endossé le rôle ou fédéré l'utilisateur à l'aide de l'AWS CLI ou de l'API AWS. Pour de plus amples informations sur ces opérations, veuillez consulter Opérations de balisage de session.

  2. 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.

  3. Balises IAM – Ces balises étaient attachées au rôle IAM que vous avez endossé.

Opérations de balisage de session

Vous pouvez passer des balises de session à l'aide des opérations d'AWS CLI ou d'API AWS suivantes dans AWS STS. La fonctionnalité Changer de rôle AWS Management Console 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, consultez la section Chaînage des rôles avec des balises de session.

Comparaison des méthodes de transmission des balises de session
Method Qui peut assumer le rôle Méthode pour transmettre des balises Méthode pour définir des balises transitives
Opération d'interface de ligne de commande assume-role ou d'API AssumeRole Utilisateur ou session IAM Paramètre d'API Tags ou option d'interface de ligne de commande --tags Paramètre d'API TransitiveTagKeys ou option d'interface de ligne de commande --transitive-tag-keys
Opération d'interface de ligne de commande assume-role-with-saml ou d'API AssumeRoleWithSAML Tout utilisateur authentifié à l'aide d'un fournisseur d'identité SAML Attribut SAML PrincipalTag Attribut SAML TransitiveTagKeys
Opération d'interface de ligne de commande assume-role-with-web-identity ou d'API AssumeRoleWithWebIdentity Tout utilisateur authentifié à l'aide d'un fournisseur d'identité web Jeton d'identité web PrincipalTag Jeton d'identité web TransitiveTagKeys
Opération d'interface de ligne de commande get-federation-token ou d'API GetFederationToken Utilisateur IAM ou utilisateur racine Paramètre d'API Tags ou option d'interface de ligne de commande --tags 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 stratégies de session dépasse 2 048 caractères.

  • La taille totale des stratégies de session et des balises de session combinées est trop grande. Si l'opération échoue, le message d'erreur indique en pourcentage la proximité des stratégies et des balises combinées avec la limite supérieure de taille.

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 stratégies 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 stratégie d'approbation, l'opération AssumeRole échouera.

  • Les balises de session sont des balises mandataires que vous indiquez lorsque vous requérez une session. Les balises s'appliquent aux demandes que vous effectuez à l'aide des informations d'identification de la session.

  • Les balises sont 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 balise johndoe@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.

  • Vous ne pouvez pas transmettre les balises de session à l'aide de l'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, les balises ne sont pas transmises aux sessions de rôle suivantes. Toutefois, vous pouvez 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.

  • 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 de plus amples informations, consultez la section Didacticiel IAM : utilisation de balises de session SAML pour le contrôle ABAC.

  • Vous pouvez afficher les balises principales de votre session, y compris ses balises de session, dans les journaux AWS CloudTrail. Pour de plus amples informations, veuillez consulter Affichage des balises de session dans CloudTrail.

  • Vous devez transmettre une valeur unique pour chaque balise de session. Les balises de session à valeurs multiples ne sont pas prises en charge.

  • Vous pouvez transmettre un maximum de 50 balises de session. Le nombre et la taille des ressources IAM dans un compte AWS sont limités. Pour de plus amples informations, veuillez consulter Quotas IAM et STS.

  • Une conversion AWS compresse les stratégies de session et les balises de session transmises combinées dans un format binaire compressé, qui possède une limite distincte. Si vous dépassez cette limite, le message d'erreur de l'AWS CLI ou de l'API AWS indique, par pourcentage, à quel point les stratégies et les balises combinées sont proches de la limite de taille supérieure.

Autorisations requises pour ajouter des balises de session

En plus de l'action qui correspond à l'opération d'API, vous devez disposer de l'action d'autorisation suivante dans votre stratégie :

sts:TagSession
Important

Lorsque vous utilisez des balises de session, les stratégies 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 échouera 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 stratégie 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 – Utilisez cette clé pour comparer la balise attachée au mandataire qui effectue la requête avec la balise que vous indiquez dans la stratégie. Par exemple, vous pouvez autoriser un mandataire à transmettre des balises de session uniquement si le mandataire qui effectue la requête possède les balises spécifiées.

  • aws:RequestTag – Utilisez cette clé pour comparer la paire clé-valeur de balise qui a été transmise dans la requête avec la paire de balises que vous indiquez dans la stratégie. Par exemple, vous pouvez autoriser le mandataire à transmettre les balises de session spécifiées, mais uniquement avec les valeurs spécifiées.

  • aws:ResourceTag – Utilisez cette clé pour comparer la paire clé-valeur de balise que vous indiquez dans la stratégie avec la paire clé-valeur attachée à la ressource. Par exemple, vous pouvez autoriser le mandataire à transmettre des balises de session uniquement si le rôle qu'il endosse inclut les balises spécifiées.

  • aws:TagKeys – Utilisez cette clé pour comparer les clés de balise d'une requête avec les clés que vous indiquez dans la stratégie. Par exemple, vous pouvez autoriser le mandataire à 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 - Utilisez cette clé pour comparer les clés des balises de session transitive de la demande avec celles spécifiées dans la stratégie. Par exemple, vous pouvez écrire une stratégie pour permettre à un mandataire de définir uniquement des balises spécifiques 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.

Par exemple, la stratégie d'approbation de rôle suivante permet à l'utilisateur test-session-tags d'endosser le rôle auquel la stratégie est attachée. Lorsque cet utilisateur endosse le rôle, il doit utiliser l'AWS CLI ou l'API AWS 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 Stratégie 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" ] } } } ] }

A quoi sert cette stratégie ?

  • La déclaration AllowIamUserAssumeRole permet à l'utilisateur test-session-tags d'endosser le rôle auquel la stratégie 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 déclaration nécessite que l'utilisateur transmette les balises de session Project, CostCenter et Department. Les valeurs de balise n'ont pas d'importance dans cette déclaration, nous avons donc utilisé 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 échouera. 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.

  • La déclaration AllowPassSessionTagsAndTransitive autorise l'action d'autorisations sts:TagSession. Cette action doit être autorisée avant que l'utilisateur puisse transmettre des balises de session. Si votre stratégie inclut la première déclaration sans la deuxième, l'utilisateur ne peut pas endosser le rôle.

    • Le premier bloc de condition de cette déclaration permet à l'utilisateur de transmettre n'importe quelle valeur pour les balises de session CostCenter et Project. Pour ce faire, utilisez des caractères génériques (*) pour la valeur de balise dans la stratégie, ce qui nécessite d'utiliser l'opérateur de condition StringLike.

    • Le deuxième bloc de condition permet à l'utilisateur de transmettre uniquement la valeur Engineering ou Marketing de la balise de session Department.

    • Le troisième bloc de condition répertorie l'ensemble maximal de balises pouvant être définies comme transitives. L'utilisateur peut choisir de définir un sous-ensemble ou aucune balise comme transitive. Mais 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 avec AssumeRole

L'opération AssumeRole renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux ressources AWS. Vous pouvez utiliser l'utilisateur ou les informations d'identification du rôle IAM pour appeler AssumeRole. Pour transmettre des balises de session tout en endossant un rôle, utilisez l'option AWS CLI --tags ou le paramètre d'API AWS Tags.

Pour définir les balises comme transitives, utilisez l'option AWS CLI --transitive-tag-keys ou le paramètre d'API AWS TransitiveTagKeys. 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.

L'exemple suivant montre un exemple de requête 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.

Exemple de demande CLI AssumeRole

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 avec AssumeRoleWithSAML

L'opération AssumeRoleWithSAML est authentifiée à l'aide de la fédération basée sur SAML. Cette opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux ressources AWS. Pour de plus amples informations sur l'utilisation de la fédération basée sur SAML pour l'accès à l'AWS Management Console, veuillez consulter Activation de l'accès des utilisateurs fédérés SAML 2.0 à AWS Management Console. Pour plus d'informations sur l'accès à l'AWS CLI ou à l'API AWS, veuillez consulter À propos de la fédération SAML 2.0. Pour un didacticiel sur la configuration de la fédération SAML pour vos utilisateurs Active Directory, veuillez consulter AWS Federated Authentication with Active Directory Federation Services (ADFS) (Authentification fédérée par AWS avec Active Directory Federation Services (ADFS)) dans le blog de sécurité AWS.

En tant qu'administrateur, vous pouvez autoriser les membres de l'annuaire de votre entreprise à se fédérer dans AWS à l'aide de l'opération AWS STS AssumeRoleWithSAML. Pour ce faire, effectuez les tâches suivantes :

AWS inclut des partenaires qui ont certifié l'expérience de bout en bout pour les balises de session avec leurs solutions d'identité. Pour savoir comment utiliser ces fournisseurs d'identité pour configurer des balises de session, veuillez consulter Intégration de prestataires de solution SAML tiers avec AWS.

Pour transmettre les attributs SAML en tant que balises de session, incluez l'élément Attribute dont l'attribut Name est défini sur https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Utilisez l'élément 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 assertion SAML.

Exemple 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 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 de plus amples 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 avec AssumeRoleWithWebIdentity

L'opération AssumeRoleWithWebIdentity est authentifiée à l'aide de la fédération d'identité Web compatible OpenID Connect (OIDC). Cette opération renvoie un ensemble d'informations d'identification temporaires que vous pouvez utiliser pour accéder aux ressources AWS. Pour de plus amples informations sur l'utilisation de la fédération d'identités Web pour l'accès à AWS Management Console, veuillez consulter À propos de la fédération d'identité web.

Pour transmettre les balises de session depuis OpenID Connect (OIDC), vous devez inclure les balises de session dans le JWT (JSON Web Token). Incluez les balises de session dans l'espace de noms https://aws.amazon.com/tags dans le jeton lorsque vous soumettez la requête AssumeRoleWithWebIdentity. Pour en savoir plus sur les jetons OIDC et les revendications, veuillez consulter Utilisation des jetons avec les groupes d'utilisateurs dans le Guide du développeur Amazon Cognito.

Par exemple, le JWT décodé suivant est un jeton utilisé pour appeler AssumeRoleWithWebIdentity avec les balises de session Project, CostCenter et Department. 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, consultez la section Chaînage des rôles avec des balises de session.

Exemple de jeton web JSON 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 à l'aide de GetFederationToken

Le GetFederationToken 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 ressources AWS. Pour ajouter des balises à votre session utilisateur fédérée, utilisez l'option AWS CLI --tags ou le paramètre d'API AWS Tags. Vous ne pouvez pas définir les balises de session comme transitives lorsque vous utilisez GetFederationToken. En effet, vous ne pouvez pas utiliser les informations d'identification temporaires pour endosser un rôle, ce qui signifie que le chaînage des rôles n'est pas possible.

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 Demande d'interface de ligne de commande GetFederationToken

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.

L'exemple suivant vous aidera à comprendre comment les balises de session, les balises transitives et les balises de rôle sont transmises aux sessions suivantes d'une chaîne de rôles.

Dans l'exemple de scénario de chaînage de rôles suivant, vous utilisez les clés d'accès d'un utilisateur IAM dans l'AWS CLI pour endosser 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 requêtes se déroulent sous la forme de trois opérations distinctes. Chaque rôle est déjà balisé dans IAM. Et lors de chaque requête, vous transmettez des balises de session supplémentaires.


        Création de chaînes de rôles

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 commande de l'interface de ligne de commande assume-role , vous devez transmettre la balise en tant que balise de session et la définir comme transitive. Vous transmettez la balise Star = 1 en tant que balise de session. La balise Heart = 1 est attachée au rôle et s'appliquera 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. De cette façon, les balises principales de la session résultante incluent ces deux balises, et elles sont définies comme transitives.


        Endosser le premier rôle dans une chaîne de rôles

Vous effectuez cette requête à l'aide de la commande d'AWS CLI suivante :

Exemple de demande CLI AssumeRole

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 balise Sun = 2 est attachée au deuxième rôle et s'appliquera en tant que balise principale lorsque vous utilisez la deuxième session. Les balises Heart = Star sont héritées 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. Cette balise ne sera pas héritée par les sessions futures.


        Endosser le deuxième rôle dans une chaîne de rôles

Vous effectuez cette deuxième requête à l'aide de la commande d'AWS CLI suivante :

Exemple de demande CLI AssumeRole

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 Heart = 3, l'opération échouera. La balise de session Star = 1 héritée remplace la balise du rôle Star = 3. La balise du rôle Lightning s'applique également à la troisième session et n'est pas définie comme transitive.


        Endosser le troisième rôle dans une chaîne de rôles

Vous effectuez la troisième requête à l'aide de la commande d'AWS CLI suivante :

Exemple de demande CLI AssumeRole

aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role3 \ --role-session-name Session3

Utilisation des balises de session pour ABAC

Le contrôle d'accès basé sur les attributs (ABAC) est une stratégie d'autorisation qui définit les autorisations en fonction des attributs de balise.

Si votre entreprise utilise un fournisseur d'identité basé sur OIDC ou SAML (IdP) pour gérer les identités d'utilisateurs, vous pouvez configurer votre assertion pour transmettre les balises de session à AWS. Par exemple, avec les identités d'utilisateurs d'entreprise, lorsque vos employés se fédèrent dans AWS, leurs attributs sont appliqués à leur mandataire dans AWS . Vous pouvez ensuite utiliser l'ABAC pour autoriser ou refuser des autorisations sur la base de ces attributs. Pour plus d'informations, consultez Didacticiel IAM : utilisation de balises de session SAML pour le contrôle ABAC.

Pour plus d'informations sur l'utilisation de AWS SSO avec ABAC, consultez la section Attributs pour le contrôle d'accès du Guide de l'utilisateur de Authentification unique AWS.

Affichage des balises de session dans CloudTrail

Vous pouvez utiliser AWS CloudTrail pour afficher les requêtes faites pour endosser des rôles ou fédérer des utilisateurs. Le fichier journal CloudTrail contient des informations sur les balises principales de la session utilisateur endossée ou fédérée. Pour de plus amples informations, veuillez consulter Journalisation des appels d'API IAM et AWS STS avec AWS CloudTrail.

Par exemple, supposons que vous effectuiez une requête AWS STS AssumeRoleWithSAML, que vous transmettiez des balises de session et que vous définissiez ces balises comme transitives. Vous trouverez les informations suivantes dans votre journal CloudTrail.

Exemple de journal CloudTrail AssumeRoleWithSAML

"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 afficher les exemples de journaux CloudTrail suivants pour afficher les événements qui utilisent des balises de session.