Verwenden von Attributen für Zugriffskontrolle - Amazon Cognito

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.

Verwenden von Attributen für Zugriffskontrolle

Attributes for Access Control ist die Implementierung der attributebasierten Zugriffskontrolle () in Amazon Cognito Identity Pools. ABAC Sie können IAM Richtlinien verwenden, um den Zugriff auf AWS Ressourcen über Amazon Cognito Cognito-Identitätspools auf der Grundlage von Benutzerattributen zu steuern. Diese Attribute können von Anbietern sozialer Identitäten und Anbietern für Identitäten für Unternehmen bezogen werden. Sie können Attribute in den Zugriffs- und ID-Tokens oder SAML Assertions von Anbietern Tags zuordnen, auf die in den Berechtigungsrichtlinien verwiesen werden kann. IAM

Sie können Standardmappings auswählen oder eigene benutzerdefinierte Mappings in Amazon-Cognito-Identitätspools erstellen. Die Standardzuordnungen ermöglichen es Ihnen, IAM Richtlinien auf der Grundlage eines festen Satzes von Benutzerattributen zu schreiben. Mit benutzerdefinierten Zuordnungen können Sie einen benutzerdefinierten Satz von Benutzerattributen auswählen, auf die in den Berechtigungsrichtlinien verwiesen wird. IAM Die Attributnamen in der Amazon Cognito Cognito-Konsole sind dem Tag-Schlüssel für Principal zugeordnet. Dabei handelt es sich um die Tags, auf die in der IAM Berechtigungsrichtlinie verwiesen wird.

Angenommen, Sie besitzen einen Medien-Streaming-Service mit einer kostenlosen und einer kostenpflichtigen Mitgliedschaft. Sie speichern die Mediendateien in Amazon S3 und markieren sie mit kostenlosen oder Premium-Tags. Sie können Attribute für die Zugriffskontrolle verwenden, um den Zugriff auf kostenlose und kostenpflichtige Inhalte basierend auf der Ebene der Benutzermitgliedschaft zu ermöglichen, die Teil des Benutzerprofils ist. Sie können das Mitgliedschaftsattribut einem Tag-Schlüssel zuordnen, damit der Principal an die IAM Berechtigungsrichtlinie weitergegeben wird. Auf diese Weise können Sie eine einzelne Berechtigungsrichtlinie erstellen und den Zugriff auf Premium-Inhalte basierend auf dem Wert der Mitgliedschaftsstufe und des Tags für die Inhaltsdateien bedingt zulassen.

Das Verwenden von Attributen zum Steuern des Zugriffs bietet mehrere Vorteile:

  • Die Berechtigungsverwaltung ist effizienter, wenn Sie Attribute für die Zugriffskontrolle verwenden. Sie können eine grundlegende Berechtigungsrichtlinie erstellen, die Benutzerattribute verwendet, anstatt mehrere Richtlinien für verschiedene Auftragsfunktionen zu erstellen.

  • Sie müssen Ihre Richtlinien nicht aktualisieren, wenn Sie Ressourcen oder Benutzer für Ihre Anwendung hinzufügen oder entfernen. Die Berechtigungsrichtlinie gewährt den Zugriff nur Benutzern mit den übereinstimmenden Benutzerattributen. Beispielsweise müssen Sie möglicherweise den Zugriff auf bestimmte S3 Buckets basierend auf dem Auftragstitel der Benutzer steuern. In diesem Fall können Sie eine Berechtigungsrichtlinie erstellen, um den Zugriff auf diese Dateien nur Benutzern innerhalb des definierten Auftragstitels zu ermöglichen. Weitere Informationen finden Sie unter IAMTutorial: SAML Sitzungs-Tags verwenden für ABAC.

  • Attribute können als Prinzipal-Tags an eine Richtlinie übergeben werden, die Berechtigungen basierend auf den Werten dieser Attribute zulässt oder verweigert.

Verwenden von Attributen für die Zugriffskontrolle mit Amazon-Cognito-Identitätspools

Bevor Sie Attribute für die Zugriffskontrolle verwenden können, müssen Sie die folgenden Voraussetzungen erfüllen:

Um Attribute für die Zugriffskontrolle zu verwenden, legt die Anforderung, die Sie als Datenquelle angeben, den Wert des von Ihnen ausgewählten Tag-Schlüssels fest. Amazon Cognito wendet den Tag-Schlüssel und den Wert auf die Sitzung Ihres Benutzers an. Ihre IAM Richtlinien können den Zugriff Ihres Benutzers anhand dieser ${aws:PrincipalTag/tagkey} Bedingung bewerten. IAMbewertet den Wert des Tags Ihres Benutzers anhand der Richtlinie.

Sie müssen IAM Rollen vorbereiten, deren Anmeldeinformationen Sie an Ihre Benutzer weitergeben möchten. Die Vertrauensrichtlinie dieser Rollen muss es Amazon Cognito erlauben, die Rolle für Ihren Benutzer zu übernehmen. Bei Attributen für die Zugriffskontrolle müssen Sie Amazon Cognito außerdem erlauben, Prinzipal-Tags auf die temporäre Sitzung Ihres Benutzers anzuwenden. Erteilen Sie mit der Aktion die Erlaubnis, die Rolle zu übernehmen AssumeRoleWithWebIdentity. Erteilen Sie mit der „nur mit Berechtigung“-Aktion sts:TagSession die Berechtigung, die Sitzungen der Benutzer mit Tags zu versehen. Weitere Informationen finden Sie unter Übergeben von Sitzungs-Tags in  AWS Security Token Service im AWS Identity and Access Management -Benutzerhandbuch. Ein Beispiel einer Vertrauensrichtlinie, die dem Service-Prinzipal cognito-identity.amazonaws.com von Amazon Cognito sts:AssumeRoleWithWebIdentity und sts:TagSession-Berechtigungen gewährt, finden Sie unter Verwenden von Attributen für die Zugriffskontrollrichtlinie (Beispiel).

So konfigurieren Sie Attribute für die Zugriffskontrolle in der Konsole
  1. Melden Sie sich bei der Amazon-Cognito-Konsole an und wählen Sie Identitätspools aus. Wählen Sie einen Identitätspool aus.

  2. Wählen Sie die Registerkarte Datenzugriff aus.

  3. Suchen Sie Identitätsanbieter. Wählen Sie den Identitätsanbieter aus, den Sie bearbeiten möchten. Wenn Sie einen neuen IdP hinzufügen möchten, wählen Sie Identitätsanbieter hinzufügen aus.

  4. Um die Prinzipal-Tags zu ändern, die Amazon Cognito Benutzern zuweist, wenn es Anmeldeinformationen an Benutzer ausgibt, die sich bei diesem Anbieter authentifiziert haben, wählen Sie unter Attribute für die Zugriffskontrolle die Option Bearbeiten.

    1. Um keine Prinzipal-Tags anzuwenden, wählen Sie Inaktiv aus.

    2. Wählen Sie Standardzuordnungen verwenden, um Prinzipal-Tags auf der Grundlage von sub- und aud-Anforderungen anzuwenden.

    3. Um Ihr eigenes benutzerdefiniertes Schema von Attributen für Prinzipal-Tags zu erstellen, wählen Sie Benutzerdefinierte Zuordnungen verwenden. Geben Sie dann einen Tag-Schlüssel ein, den Sie aus jeder Anforderung beziehen möchten, die Sie in einem Tag repräsentieren möchten.

  5. Wählen Sie Änderungen speichern aus.

Verwenden von Attributen für die Zugriffskontrollrichtlinie (Beispiel)

Stellen Sie sich ein Szenario vor, in dem ein Mitarbeiter der Rechtsabteilung eines Unternehmens alle Dateien in Buckets auflisten muss, die zu seiner Abteilung gehören und mit ihrer Sicherheitsstufe klassifiziert sind. Angenommen, das Token, das dieser Mitarbeiter vom Identitätsanbieter erhält, enthält die folgenden Ansprüche.

Ansprüche

{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }

Diese Attribute können Tags zugeordnet und in IAM Berechtigungsrichtlinien als Haupttags referenziert werden. Sie können den Zugriff jetzt verwalten, indem Sie das Benutzerprofil beim Identitätsanbieter ändern. Alternativ können Sie Attribute auf der Ressourcenseite ändern, indem Sie Namen oder Tags verwenden, ohne die Richtlinie selbst zu ändern.

Die folgende Berechtigungsrichtlinie bewirkt zweierlei:

  • Ermöglicht den Listenzugriff auf alle S3-Buckets, die mit einem Präfix enden, das dem Abteilungsnamen des Benutzers entspricht.

  • Ermöglicht den Lesezugriff auf Dateien in diesen Buckets, solange das Freigabe-Tag der Datei mit dem Freigabe-Attribut des Benutzers übereinstimmt.

Berechtigungsrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }

Die Vertrauensrichtlinie bestimmt, wer diese Rolle übernehmen kann. Die Vertrauensbeziehungsrichtlinie ermöglicht die Verwendung von sts:AssumeRoleWithWebIdentity und sts:TagSession, um den Zugriff zu ermöglichen. Fügt Bedingungen hinzu, um die Richtlinie auf den von Ihnen erstellten Identitätspool zu beschränken, und stellt sicher, dass sie für eine authentifizierte Rolle bestimmt ist.

Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }

Attribute für die Zugriffskontrolle deaktivieren (Konsole)

Gehen Sie folgendermaßen vor, um Attribute für die Zugriffskontrolle zu deaktivieren.

So deaktivieren Sie Attribute für die Zugriffskontrolle in der Konsole
  1. Melden Sie sich bei der Amazon-Cognito-Konsole an und wählen Sie Identätspools aus. Wählen Sie einen Identitätspool aus.

  2. Wählen Sie die Registerkarte Datenzugriff aus.

  3. Suchen Sie Identitätsanbieter. Wählen Sie den Identitätsanbieter aus, den Sie bearbeiten möchten.

  4. Wählen Sie unter Attribute für die Zugriffskontrolle die Option Bearbeiten aus.

  5. Um keine Prinzipal-Tags anzuwenden, wählen Sie Inaktiv.

  6. Wählen Sie Änderungen speichern aus.

Standard-Anbietermappings

Die folgende Tabelle enthält die Standardzuweisungsinformationen für die Authentifizierungsanbieter, die Amazon Cognito unterstützt.

Anbieter Token-Typ Prinzipal-Tagwerte Beispiel

Amazon-Cognito-Benutzerpool

ID-Token

aud (Client-ID) und sub (Benutzer-ID)

"6jk8ltokc7ac9es6jrtg9q572f", "57e7b692-4f66-480d-98b8-45a6729b4c88"

Facebook

Zugriffstoken

aud (app_id), sub (user_id)

„492844718097981“, „112177216992379“

Google

ID-Token

aud (Client-ID) und sub (Benutzer-ID)

„620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com“, „109220063452404746097“

SAML

Assertionen

„http://schemas.xmlsoap. org/ws/2005/05/identity/claims/nameidentifier" , "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name“

"auth0|5e28d196f8f55a0eaaa95de3", "user123@gmail.com"

Apple

ID-Token

aud (Client-ID) und sub (Benutzer-ID)

„com.amazonaws.ec2-54-80-172-243.compute-1.client“, „001968.a6ca34e9c1e742458a26cf8005854be9.0733“

Amazon

Zugriffstoken

aud (Client-ID auf Amzn Dev Ac), user_id (Benutzer-ID)

„amzn1.application-oa2-client.9d70d9382d3446108aaee3dd763a0fa6", „amzn1.account. AGHNIFJQMFSBG3G6XCPVB35ORQAA“

OIDCStandardanbieter

ID und Zugriffstoken

aud (als Client-ID) und sub (als Benutzer-ID)

„620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com“, „109220063452404746097“

Twitter

Zugriffstoken

aud (App-ID; App-Geheimnis), sub (Benutzer-ID)

“DfwifTtKEX1FiIBRnOTlR0CFK;Xgj5xb8xIrIVCPjXgLIdkW7fXmwcJJrFvnoK9gwZkLexo1y5z1", “1269003884292222976"

DevAuth

Map

Nicht zutreffend

„tag1“, „tag2“

Anmerkung

Die Option für Standard-Attributmappings wird automatisch für den Tag-Schlüssel für Prinzipal und Attributnamen ausgefüllt. Standardmappings können nicht geändert werden.