Sitzungs-Tags übergeben AWS STS - AWS Identitäts- und Zugriffsverwaltung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Sitzungs-Tags übergeben AWS STS

Sitzungs-Tags sind Schlüssel-Wert-Paarattribute, die Sie übergeben, wenn Sie eine IAM-Rolle übernehmen oder in AWS STS einen Benutzer in einen Verbund aufnehmen. Sie tun dies, indem Sie eine AWS CLI oder AWS API-Anfrage über AWS STS oder über Ihren Identitätsanbieter (IdP) stellen. Wenn Sie temporäre AWS STS Sicherheitsanmeldedaten anfordern, generieren Sie eine Sitzung. Sitzungen laufen ab und erfordern Anmeldeinformationen, z. B. ein Zugriffsschlüsselpaar und ein Sitzungstoken. Wenn Sie die Sitzungsanmeldeinformationen für eine nachfolgende Anfrage verwenden, enthält der Anforderungskontext den aws:PrincipalTag-Kontextschlüssel. Sie können den aws:PrincipalTag-Schlüssel im Condition-Element ihrer Richtlinien verwenden, um den Zugriff basierend auf diesen Tags zuzulassen oder abzulehnen.

Wenn Sie zur Erstellung einer Anforderung temporäre Anmeldeinformationen verwenden, enthält Ihr Auftraggeber möglicherweise eine Reihe von Tags. Diese Tags stammen aus den folgenden Quellen:

  1. Sitzungs-Tags — Die Tags, die übergeben werden, wenn Sie die Rolle übernehmen oder den Benutzer mithilfe der AWS API AWS CLI oder verbinden. Weitere Informationen zu diesen Operationen finden Sie unter Sitzungs-Tagging-Operationen.

  2. Eingehende transitive Sitzungs-Tags – Diese Tags wurden von einer vorherigen Sitzung in einer Rollenkette übernommen. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags an späterer Stelle in diesem Thema.

  3. IAM-Tags – Die Tags, die an die von IAM übernommene Rolle angehängt sind.

Sitzungs-Tagging-Operationen

Sie können Sitzungs-Tags mithilfe der folgenden AWS CLI oder AWS API-Operationen in AWS STSübergeben. Mit der Funktion „Rolle AWS Management Console wechseln“ können Sie keine Sitzungs-Tags übergeben.

Sie können die Sitzungs-Tags auch als transitiv festlegen. Transitive Tags bleiben während der Rollenverkettung erhalten. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

Vergleichsmethoden zum Übergeben von Sitzungs-Tags
Operation Wer die Rolle annehmen kann Methode zum Übergeben von Tags Methode zum Festlegen von transitiven Tags
assume-role-CLI- oder AssumeRole-API-Operation IAM-Benutzer oder eine Sitzung Tags-API-Parameter oder --tags-CLI-Option TransitiveTagKeys-API-Parameter oder --transitive-tag-keys-CLI-Option
assume-role-with-saml-CLI- oder AssumeRoleWithSAML-API-Operation Jeder Benutzer, der über einen SAML-Identitätsanbieter authentifiziert wird PrincipalTag-SAML-Attribut TransitiveTagKeys-SAML-Attribut
assume-role-with-web-identity-CLI- oder AssumeRoleWithWebIdentity-API-Operation Jeder Benutzer, der über einen OIDC-Anbieter authentifiziert wurde PrincipalTagOIDC-Token TransitiveTagKeysOIDC-Token
get-federation-token-CLI- oder GetFederationToken-API-Operation IAM-Benutzer oder Stammbenutzer Tags-API-Parameter oder --tags-CLI-Option Nicht unterstützt

Operationen, die die Sitzungsmarkierung unterstützen, können fehlschlagen, wenn eine der folgenden Bedingungen zutrifft:

  • Sie übergeben mehr als 50 Sitzungs-Tags.

  • Der Klartext Ihrer Sitzungs-Tag-Schlüssel umfasst mehr als 128 Zeichen.

  • Der Klartext Ihrer Sitzungs-Tag-Werte umfasst mehr als 256 Zeichen.

  • Die Gesamtgröße des Klartexts der Sitzungsrichtlinien umfasst mehr als 2.048 Zeichen.

  • Die gepackte Gesamtgröße der Sitzungsrichtlinien und Sitzungs-Tags ist zu groß. Wenn die Operation fehlschlägt, gibt die Fehlermeldung anhand eines Prozentsatzes an, wie nahe die Richtlinien und Tags zusammengenommen an der oberen Größengrenze liegen.

Wissenswertes über Sitzungs-Tags

Lesen Sie vor der Verwendung von Sitzungs-Tags die folgenden Informationen zu Sitzungen und Tags.

  • Bei der Verwendung von Sitzungs-Tags müssen Vertrauensrichtlinien für alle Rollen, die mit dem Identitätsanbieter (IdP) verbunden sind, der Tags übergibt, die sts:TagSession-Berechtigung haben. Bei Rollen, die diese Berechtigung in der Vertrauensrichtlinie nicht haben, schlägt der AssumeRole-Vorgang fehl.

  • Wenn Sie eine Sitzung anfordern, können Sie Auftraggeber-Tags als Sitzungs-Tags angeben. Die Tags gelten für Anforderungen, die Sie mit den Anmeldeinformationen der Sitzung durchführen.

  • Sitzungs-Tags sind Schlüssel-Wert-Paare. Wenn Sie beispielsweise Kontaktinformationen zu einer Sitzung hinzufügen möchten, können Sie den Sitzungs-Tag-Schlüssel email und den Tag-Wert johndoe@example.com hinzufügen.

  • Sitzungs-Tags müssen den Regeln für die Benennung von Tags in IAM und entsprechen. AWS STS Dieses Thema enthält Informationen zur Unterscheidung von Groß-/Kleinschreibung und zu eingeschränkten Präfixen, die für Ihre Sitzungs-Tags gelten.

  • Neue Sitzungs-Tags überschreiben vorhandene Tags für übernommene Rollen oder Verbundbenutzer mit demselben Tag-Schlüssel, unabhängig von der Groß-/Kleinschreibung.

  • Sie können Sitzungs-Tags nicht mit dem AWS Management Consoleübergeben.

  • Sitzungs-Tags sind nur für die aktuelle Sitzung gültig.

  • Sitzungs-Tags unterstützen Rollenverkettung. Übergibt standardmäßig AWS STS keine Tags an nachfolgende Rollensitzungen. Sie können Sitzungs-Tags jedoch als transitiv festlegen. Transitive Tags bleiben während der Rollenverkettung bestehen und ersetzen übereinstimmende ResourceTag-Werte nach der Auswertung der Rollenvertrauensrichtlinie. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

  • Sie können Sitzungs-Tags verwenden, um den Zugriff auf Ressourcen zu steuern oder zu steuern, welche Tags an eine nachfolgende Sitzung übergeben werden können. Weitere Informationen finden Sie unter IAM-Tutorial: Verwenden von SAML-Sitzungs-Tags für ABAC.

  • Sie können die Auftraggeber-Tags für Ihre Sitzung, einschließlich der zugehörigen Sitzungs-Tags, in den AWS CloudTrail -Protokollen anzeigen. Weitere Informationen finden Sie unter Sitzungs-Tags anzeigen in CloudTrail.

  • Sie müssen für jedes Sitzungs-Tag einen einzelnen Wert übergeben. AWS STS unterstützt keine mehrwertigen Sitzungs-Tags.

  • Sie können maximal 50 Sitzungs-Tags übergeben. Die Anzahl und Größe der IAM-Ressourcen in einem AWS Konto sind begrenzt. Weitere Informationen finden Sie unter IAM und Kontingente AWS STS.

  • Bei einer AWS Konvertierung werden die übergebenen Sitzungsrichtlinien und Sitzungs-Tags in ein komprimiertes Binärformat mit einem separaten Limit komprimiert. Wenn Sie dieses Limit überschreiten, wird in der AWS CLI oder AWS API-Fehlermeldung angezeigt, wie nahe die kombinierten Richtlinien und Tags in Prozent an die obere Größenbeschränkung herankommen.

Erforderliche Berechtigungen zum Hinzufügen von Sitzungs-Tags

Zusätzlich zu der Aktion, die der API-Operation entspricht, muss in Ihrer Richtlinie die folgende reine Berechtigungsaktion enthalten sein:

sts:TagSession
Wichtig

Bei der Verwendung von Sitzungs-Tags müssen die Rollenvertrauensrichtlinien für alle Rollen, die mit einem Identitätsanbieter (IdP) verbunden sind, über die sts:TagSession-Berechtigung verfügen. Der AssumeRole-Vorgang schlägt für jede Rolle fehl, die mit einem Identitätsanbieter verbunden ist, der Sitzungs-Tags ohne diese Berechtigung übergibt. Wenn Sie die Vertrauensrichtlinie für Rollen nicht für jede Rolle aktualisieren möchten, können Sie eine separate IdP-Instance zum Übergeben von Sitzungs-Tags verwenden. Fügen Sie dann die sts:TagSession-Berechtigung nur den Rollen hinzu, die mit dem separaten IdP verbunden sind.

Sie können diese sts:TagSession-Aktion mit den folgenden Bedingungsschlüsseln verwenden.

  • aws:PrincipalTag – Verwenden Sie diesen Schlüssel, um das Tag, das dem Auftraggeber angefügt ist, der die Anforderung stellt, mit dem Tag zu vergleichen, das Sie in der Richtlinie angeben. Beispielsweise können Sie einem Auftraggeber nur erlauben, Sitzungs-Tags zu übergeben, wenn der Auftraggeber, der die Anforderung stellt, über die angegebenen Tags verfügt.

  • aws:RequestTag – Verwenden Sie diesen Schlüssel, um das Tag-Schlüssel-Wert-Paar, das in der Anforderung übergeben wurde, mit dem Tag-Paar zu vergleichen, das Sie in der Richtlinie angeben. Sie können dem Auftraggeber beispielsweise gestatten, die angegebenen Sitzungs-Tags zu übergeben, jedoch nur mit den angegebenen Werten.

  • aws:ResourceTag – Verwenden Sie diesen Schlüssel, um das Tag-Schlüssel-Wert-Paar, das Sie in der Richtlinie angeben, mit dem Schlüssel-Wert-Paar zu vergleichen, das der Ressource angefügt ist. Sie können dem Auftraggeber beispielsweise nur gestatten, Sitzungs-Tags zu übergeben, wenn die von ihnen übernommene Rolle die angegebenen Tags enthält.

  • aws:TagKeys – Verwenden Sie diesen Schlüssel, um die Tag-Schlüssel in einer Anforderung mit den Schlüsseln zu vergleichen, die Sie in der Richtlinie angeben. Sie können dem Auftraggeber beispielsweise nur gestatten, Sitzungs-Tags mit den angegebenen Tag-Schlüsseln zu übergeben. Dieser Bedingungsschlüssel begrenzt die maximale Gruppe von Sitzungs-Tags, die übergeben werden können.

  • sts:TransitiveTagKeys - Verwenden Sie diesen Schlüssel, um die transitiven Sitzungs-Tag-Schlüssel in der Anforderung mit den in der Richtlinie angegebenen Schlüsseln zu vergleichen. Beispielsweise können Sie eine Richtlinie schreiben, um einem Auftraggeber nur die Festlegung bestimmter Tags als transitiv zu gestatten. Transitive Tags bleiben während der Rollenverkettung erhalten. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

Mit der folgenden Vertrauensrichtlinie für Rollen kann der test-session-tags-Benutzer beispielsweise die Rolle übernehmen, der die Richtlinie angefügt ist. Wenn dieser Benutzer die Rolle übernimmt, muss er die AWS API AWS CLI oder verwenden, um die drei erforderlichen Sitzungs-Tags und die erforderliche externe ID zu übergeben. Darüber hinaus kann der Benutzer entscheiden, ob er die Project- und Department-Tags als transitiv festlegen möchte.

Beispiel einer Rollenvertrauensrichtlinie für Sitzungs-Tags
{ "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" ] } } } ] }

Was macht diese Richtlinie?

  • Mit der AllowIamUserAssumeRole-Anweisung kann der test-session-tags-Benutzer die Rolle übernehmen, der die Richtlinie angefügt ist. Wenn dieser Benutzer die Rolle übernimmt, muss er die erforderlichen Sitzungs-Tags und die externe ID übergeben.

    • Der erste Bedingungsblock dieser Anweisung verlangt, dass der Benutzer die Sitzungs-Tags Project, CostCenter und Department übergibt. Die Tag-Werte spielen in dieser Anweisung keine Rolle, daher haben wir Platzhalter (*) für die Tag-Werte verwendet. Dieser Block stellt sicher, dass der Benutzer mindestens diese drei Sitzungs-Tags übergibt, andernfalls schlägt die Operation fehl. Andernfalls schlägt die Operation fehl. Der Benutzer kann zusätzliche Tags übergeben.

    • Der zweite Bedingungsblock verlangt, dass der Benutzer eine externe ID mit dem Wert Example987 übergibt.

  • Die AllowPassSessionTagsAndTransitive-Anweisung lässt die reine Berechtigungsaktion sts:TagSession zu. Diese Aktion muss zulässig sein, damit der Benutzer Sitzungs-Tags übergeben kann. Wenn Ihre Richtlinie die erste, nicht jedoch die zweite Anweisung enthält, kann der Benutzer die Rolle nicht übernehmen.

    • Der erste Bedingungsblock dieser Anweisung ermöglicht es dem Benutzer, einen beliebigen Wert für die Sitzungs-Tags CostCenter und Projectzu übergeben. Dazu verwenden Sie Platzhalter (*) für den Tag-Wert in der Richtlinie, wofür Sie den StringLikeBedingungsoperator verwenden müssen.

    • Der zweite Bedingungsblock ermöglicht es dem Benutzer, nur denEngineering- oder Marketing-Wert oder für das Sitzungs-Tag Department zu übergeben.

    • Der dritte Bedingungsblock listet die maximale Gruppe von Tags auf, die als transitiv festgelegt werden können. Der Benutzer hat die Möglichkeit, eine Teilmenge oder keine Tags als transitiv festzulegen. Es ist jedoch nicht möglich, zusätzliche Tags als transitiv festzulegen. Sie können verlangen, dass mindestens eines der Tags als transitiv festgelegt wird. Zu diesem Zweck müssen Sie einen weiteren Bedingungsblock mit der Angabe "Null":{"sts:TransitiveTagKeys":"false"} hinzufügen.

Übergeben von Sitzungs-Tags mit AssumeRole

Der AssumeRole Vorgang gibt einen Satz temporärer Anmeldeinformationen zurück, mit denen Sie auf AWS Ressourcen zugreifen können. Sie können IAM-Benutzer- oder -Rollenanmeldeinformationen zum Aufrufen von AssumeRole verwenden. Verwenden Sie die --tags AWS CLI Option oder den Tags AWS API-Parameter, um Sitzungs-Tags zu übergeben, während Sie eine Rolle übernehmen.

Um Tags als transitiv festzulegen, verwenden Sie die --transitive-tag-keys AWS CLI Option oder den TransitiveTagKeys AWS API-Parameter. Transitive Tags bleiben während der Rollenverkettung erhalten. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

Das folgende Beispiel zeigt eine Beispielanforderung, bei der AssumeRole verwendet wird. Wenn Sie in diesem Beispiel die Rolle my-role-example übernehmen, erstellen Sie eine Sitzung mit dem Namen my-session. Sie fügen die Sitzungs-Tag-Schlüssel-Wert-Paare Project = Automation, CostCenter = 12345 und Department = Engineering hinzu. Darüber hinaus legen Sie die Project- und Department-Tags als transitiv fest, indem Sie ihre Schlüssel angeben.

Beispiel für eine AssumeRole CLI-Anfrage
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

Übergabe von Sitzungs-Tags mit AssumeRoleWith SAML

Die AssumeRoleWithSAML-Operation wird mit dem SAML-basierten Verbund authentifiziert. Dieser Vorgang gibt einen Satz temporärer Anmeldeinformationen zurück, mit denen Sie auf AWS Ressourcen zugreifen können. Weitere Informationen zur Verwendung eines SAML-basierten Verbunds für den AWS Management Console Zugriff finden Sie unter. Aktivieren des Zugriffs von SAML 2.0-Verbundbenutzern auf AWS Management Console Einzelheiten zum AWS CLI AWS API-Zugriff finden Sie unter. SAML 2.0-Verbund Ein Tutorial zur Konfiguration des SAML-Verbunds für Ihre Active Directory-Benutzer finden Sie unter AWS Verbundauthentifizierung mit Active Directory Federation Services (ADFS) im AWS Sicherheitsblog.

Als Administrator können Sie es Mitgliedern Ihres Unternehmensverzeichnisses ermöglichen, den Vorgang gemeinsam zu AWS nutzen. AWS STS AssumeRoleWithSAML Hierfür müssen Sie die folgenden Aufgaben ausführen:

AWS schließt Identitätsanbieter mit zertifizierter end-to-end Erfahrung im Bereich Sitzungs-Tags mit ihren Identitätslösungen ein. Weitere Informationen zur Verwendung dieser Identitätsanbieter zum Konfigurieren von Sitzungs-Tags finden Sie unter Integrieren Sie SAML-Lösungsanbieter von Drittanbietern mit AWS.

Um SAML-Attribute als Sitzungs-Tags zu übergeben, schließen Sie das Attribute-Element ein und legen Sie dabei für das Name-Attribut https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey} fest. Verwenden Sie das AttributeValue-Element, um den Wert des Tags anzugeben. Fügen Sie ein separates Attribute-Element für jedes Sitzungs-Tag ein.

Angenommen, Sie möchten die folgenden Identitätsattribute als Sitzungs-Tags übergeben:

  • Project:Automation

  • CostCenter:12345

  • Department:Engineering

Um diese Attribute zu übergeben, schließen Sie die folgenden Elemente in Ihre SAML-Zusicherung ein.

Beispielausschnitt einer SAML-Zusicherung
<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>

Um die oben genannten Tags als transitiv festzulegen, schließen Sie ein weiteres Attribute-Element ein und legen dabei für das Attribut Name den Werthttps://aws.amazon.com/SAML/Attributes/TransitiveTagKeys fest. Transitive Tags bleiben während der Rollenverkettung erhalten. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

Verwenden Sie das folgende Mehrwertattribut, um die Tags Project und Department als transitiv festzulegen:

Beispielausschnitt einer SAML-Zusicherung
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>Department</AttributeValue> </Attribute>

Weitergabe von Sitzungs-Tags mit AssumeRoleWithWebIdentity

Verwenden Sie einen OpenID Connect (OIDC) -kompatiblen Verbund, um den Vorgang zu authentifizieren. AssumeRoleWithWebIdentity Dieser Vorgang gibt einen Satz temporärer Anmeldeinformationen zurück, mit denen Sie auf Ressourcen zugreifen können. AWS Weitere Informationen zur Verwendung des Web-Identitätsverbunds für den AWS Management Console Zugriff finden Sie unterOIDC-Föderation.

Um Sitzungs-Tags von OpenID Connect (OIDC) zu übergeben, müssen Sie die Sitzungs-Tags in das JSON Web Token (JWT) einbeziehen. Fügen Sie Sitzungs-Tags in den https://aws.amazon.com/tags-Namespace in dem Token ein, wenn Sie die AssumeRoleWithWebIdentity-Anforderung senden. Weitere Informationen zu OIDC-Token und Ansprüchen finden Sie unter Verwenden von Token mit Benutzerpools im Amazon Cognito Developer Guide.

Bei dem folgenden dekodierten JWT handelt es sich beispielsweise um ein Token, das zum Aufrufen von AssumeRoleWithWebIdentity mit den Sitzungs-Tags Project, CostCenter und Department verwendet wird. Das Token legt zudem die Tags Project und CostCenter als transitiv fest. Transitive Tags bleiben während der Rollenverkettung erhalten. Weitere Informationen finden Sie unter Verkettung von Rollen mit Sitzungs-Tags.

Beispiel für ein dekodiertes JSON-Web-Token
{ "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" ] } }

Übergabe von Sitzungs-Tags mit GetFederationToken

Mit GetFederationToken können Sie Ihren Benutzer in einen Verbund einbeziehen. Dieser Vorgang gibt einen Satz temporärer Anmeldeinformationen zurück, mit denen Sie auf AWS Ressourcen zugreifen können. Verwenden Sie die --tags AWS CLI Option oder den Tags AWS API-Parameter, um Ihrer Verbundbenutzersitzung Tags hinzuzufügen. Bei der Verwendung von GetFederationToken können Sie Sitzungs-Tags nicht als transitiv festlegen, da Sie die temporären Anmeldeinformationen nicht verwenden können, um eine Rolle zu übernehmen. Sie können in diesem Fall keine Rollenverkettung verwenden.

Das folgende Beispiel zeigt eine Beispielanforderung unter Verwendung von GetFederationToken. Wenn Sie in diesem Beispiel das Token anfordern, erstellen Sie eine Sitzung mit dem Namen my-fed-user. Sie fügen die Sitzungs-Tag-Schlüssel-Wert-Paare Project = Automation und Department = Engineering hinzu.

Beispiel für eine GetFederationToken CLI-Anfrage
aws sts get-federation-token \ --name my-fed-user \ --tags key=Project,value=Automation key=Department,value=Engineering

Wenn Sie die temporären Anmeldeinformationen verwenden, die von der GetFederationToken-Operation zurückgegeben werden, enthalten die Auftraggeber-Tags der Sitzung die Tags des Benutzers und die übergebenen Sitzungs-Tags.

Verkettung von Rollen mit Sitzungs-Tags

Sie können eine Rolle übernehmen und dann die temporären Anmeldeinformationen verwenden, um eine andere Rolle zu übernehmen. Sie können von Sitzung zu Sitzung fortfahren. Dies wird als Rollenverkettung bezeichnet. Wenn Sie Sitzungs-Tags übergeben, während Sie eine Rolle übernehmen, können Sie die Schlüssel als transitiv festlegen. Dadurch wird sichergestellt, dass diese Sitzungs-Tags an nachfolgende Sitzungen in einer Rollenkette übergeben werden. Rollen-Tags können nicht als transitiv festgelegt werden. Um diese Tags an nachfolgende Sitzungen zu übergeben, müssen Sie sie als Sitzungs-Tags angeben.

Anmerkung

Transitive Tags bleiben während der Rollenverkettung bestehen und ersetzen übereinstimmende ResourceTag-Werte nach der Auswertung der Rollenvertrauensrichtlinie.

Das folgende Beispiel zeigt, wie AWS STS Sitzungs-Tags, transitive Tags und Rollentags an nachfolgende Sitzungen in einer Rollenkette weitergegeben werden.

In diesem Beispielszenario zur Rollenverkettung verwenden Sie einen IAM-Benutzerzugriffsschlüssel, AWS CLI um eine Rolle mit dem Namen anzunehmen. Role1 Dann verwenden Sie die resultierenden Sitzungsanmeldeinformationen, um eine zweite Rolle namens Role2 zu übernehmen. Anschließend können Sie die Anmeldeinformationen der zweiten Sitzung verwenden, um eine dritte Rolle namens Role3 zu übernehmen. Diese Anforderungen erfolgen als drei separate Operationen. Jede Rolle ist bereits in IAM markiert. Während jeder Anforderung übergeben Sie zusätzliche Sitzungs-Tags.

Verketten von Rollen

Durch die Verkettung von Rollen können Sie sicherstellen, dass Tags aus einer früheren Sitzung in den späteren Sitzungen bestehen bleiben. Wenn Sie hierfür den CLI-Befehl assume-role verwenden möchten, müssen Sie das Tag als Sitzungs-Tag übergeben und als transitiv festlegen. Sie übergeben das Tag Star = 1 als Sitzungs-Tag. Das Tag Heart = 1 ist an die Rolle angefügt und wird als Auftraggeber-Tag angewendet, wenn Sie die Sitzung verwenden. Sie möchten jedoch auch, dass das Tag Heart = 1 automatisch an die zweite oder dritte Sitzung übergeben wird. Zu diesem Zweck fügen Sie es manuell als Sitzungs-Tag ein. Die resultierenden Sitzungsauftraggeber-Tags enthalten beide Tags und legen sie als transitiv fest.

Übernahme der ersten Rolle in einer Rollenkette

Sie führen diese Anfrage mit dem folgenden Befehl aus: AWS CLI

Beispiel für eine AssumeRole CLI-Anfrage
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

Dann verwenden Sie die Anmeldeinformationen für diese Sitzung, um Role2 zu übernehmen. Das Tag Sun = 2 ist an die zweite Rolle angefügt und gilt als Auftraggeber-Tag, wenn Sie die zweite Sitzung verwenden. Die Tags Heart und Star werden von den transitiven Sitzungs-Tags in der ersten Sitzung übernommen. Die resultierenden Auftraggeber-Tags der zweiten Sitzung sind Heart = 1, Star = 1 und Sun = 2. Heart und Star bleiben weiterhin transitiv. Das Tag Sun, das an Role2 angefügt wurde, ist nicht als transitiv markiert, da es sich nicht um ein Sitzungs-Tag handelt. Dieses Tag wird nicht von zukünftigen Sitzungen übernommen.

Übernahme der zweiten Rolle in einer Rollenkette

Sie führen diese zweite Anfrage mit dem folgenden AWS CLI Befehl aus:

Beispiel für eine AssumeRole CLI-Anfrage
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role2 \ --role-session-name Session2

Dann verwenden Sie die Anmeldeinformationen für die zweite Sitzung, um Role3 zu übernehmen. Die Auftraggeber-Tags für die dritte Sitzung stammen aus neuen Sitzungs-Tags, den übernommenen transitiven Sitzungs-Tags und den Rollen-Tags. Die Tags Heart = 1 und Star = 1 in der zweiten Sitzung wurden von dem transitiven Sitzungs-Tag in der ersten Sitzung übernommen. Wenn Sie versuchen, das Sitzungs-Tag Sun = 2 zu übergeben, schlägt die Operation fehl. Das geerbte Sitzungs-Tag Star = 1 hat Vorrang vor dem Tag role Star = 3. Bei der Rollenverkettung überschreibt der Wert eines transitiven Tags die Rolle, die dem ResourceTag-Wert nach der Bewertung der Rollenvertrauensrichtlinie. In diesem Beispiel verwendet Role3 Star als ResourceTag in der Vertrauensrichtlinie der Rolle und setzt den Wert ResourceTag auf den Wert des transitiven Tags der aufrufenden Rollensitzung. Das Tag Lightning der Rolle gilt auch für die dritte Sitzung und ist nicht als transitiv festgelegt.

Übernahme der dritten Rolle in einer Rollenkette

Sie führen die dritte Anfrage mit dem folgenden AWS CLI Befehl aus:

Beispiel für eine AssumeRole CLI-Anfrage
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role3 \ --role-session-name Session3

Verwenden von Sitzungs-Tags für ABAC

Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, bei der Berechtigungen basierend auf Tag-Attributen definiert werden.

Wenn Ihr Unternehmen einen SAML-basierten Identitätsanbieter (IdP) für Unternehmens-Benutzeridentitäten verwendet, können Sie Ihre SAML-Zusicherung so konfigurieren, dass Sitzungs-Tags an AWSübergeben werden. Bei Benutzeridentitäten in Unternehmen werden beispielsweise, wenn sich Ihre Mitarbeiter zusammenschließen AWS, ihre Attribute auf den resultierenden Prinzipal AWS angewendet. Sie können dann ABAC verwenden, um Berechtigungen basierend auf diesen Attributen zuzulassen oder abzulehnen. Details hierzu finden Sie unter IAM-Tutorial: Verwenden von SAML-Sitzungs-Tags für ABAC.

Weitere Informationen zur Verwendung von IAM Identity Center mit ABAC finden Sie unter Attribute für die Zugriffssteuerung im AWS IAM Identity Center -Leitfaden.

Sitzungs-Tags anzeigen in CloudTrail

Sie können AWS CloudTrail damit die Anfragen anzeigen, die zur Übernahme von Rollen oder zum Zusammenführen von Benutzern verwendet wurden. Die CloudTrail Protokolldatei enthält Informationen über die wichtigsten Tags für die Sitzung mit übernommener Rolle oder Verbundbenutzer. Weitere Informationen finden Sie unter Protokollierung von IAM- und AWS STS API-Aufrufen mit AWS CloudTrail.

Nehmen wir beispielsweise an, dass Sie eine AWS STS AssumeRoleWithSAML Anfrage stellen, Sitzungs-Tags übergeben und diese Tags als transitiv festlegen. Sie finden die folgenden Informationen in Ihrem CloudTrail Protokoll.

Beispiel für ein AssumeRoleWith SAML-Protokoll CloudTrail
"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" },

Sie können sich die folgenden CloudTrail Beispielprotokolle ansehen, um Ereignisse anzuzeigen, die Sitzungs-Tags verwenden.