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.
IAM-Rollen
Während der Erstellung eines Identitätspools werden Sie aufgefordert, die von Ihren Benutzern übernommenen IAM-Rollen zu aktualisieren. IAM-Rollen funktionieren folgendermaßen: Wenn ein Benutzer sich bei einer App anmeldet, generiert Amazon Cognito temporäre AWS -Anmeldeinformationen für ihn. Diese temporären Anmeldeinformationen sind mit einer bestimmten IAM-Rolle verknüpft. Mit der IAM-Rolle können Sie eine Gruppe von Berechtigungen für den Zugriff auf Ihre AWS -Ressourcen definieren.
Sie können unterschiedliche Standard-IAM-Rollen für authentifizierte und nicht authentifizierte Benutzer angeben. Zusätzlich können Sie Regeln definieren, um die Rollen der einzelnen Benutzer basierend auf den Ansprüchen im ID-Token eines Benutzers auszuwählen. Weitere Informationen finden Sie unter Verwenden der rollenbasierten Zugriffskontrolle.
Standardmäßig erstellt die Amazon-Cognito-Konsole IAM-Rollen, die den Zugriff auf Amazon Mobile Analytics und Amazon Cognito Sync ermöglichen. Alternativ können Sie vorhandene IAM-Rollen verwenden.
Ändern Sie IAM-Rollen, um den Zugriff auf andere Services zu ermöglichen oder einzuschränken. Melden Sie sich bei der IAM-Konsole an
Anmerkung
Es hat sich bewährt, Richtlinien zu definieren, die dem Prinzip für das Erteilen der geringsten Rechte folgen. Anders ausgedrückt enthalten die Richtlinien nur diejenigen Berechtigungen, die Benutzer zum Ausführen ihrer Aufgaben benötigen. Weitere Informationen finden Sie unter Gewähren von geringsten Rechten im IAM-Benutzerhandbuch.
Nicht authentifizierte Identitäten werden von Benutzern angenommen, die sich nicht in Ihrer App anmelden. In der Regel sollten Sie nicht authentifizierten Identitäten geringere Berechtigungen zuweisen als authentifizierten Identitäten.
Themen
Einrichten einer Vertrauensrichtlinie
Amazon Cognito verwendet IAM-Rollen, um temporäre Anmeldeinformationen für die Benutzer Ihrer Anwendung zu generieren. Der Zugriff auf die Berechtigungen wird von den Rollenvertrauensstellungen bestimmt. Weitere Informationen zu Vertrauensstellungen und Berechtigungen für Rollen. Amazon Cognito vermittelt Verbindungen zwischen einem AWS STS Identitätspool IdPs.
Das Token, dem präsentiert AWS STS wird, wird von einem Identitätspool generiert, der einen Benutzerpool, ein Social- oder OIDC-Provider-Token oder eine SAML-Assertion in ein eigenes Token übersetzt. Das Identitätspool-Token enthält einen aud
-Anspruch, der die Identitätspool-ID ist.
Wenn es sich bei Principal
der Vertrauensrichtlinie einer IAM-Rolle um einen Dienstprinzipal für Identitätspools handeltcognito-identity.amazonaws.com
, können Sie keine Rollenvertrauensrichtlinien so erstellen oder ändern, dass sie es jedem Identitätspool ermöglichen, die Rolle zu übernehmen. Beim Identitätspool-Prinzipal muss das Action
Element über eine Condition
Funktion verfügen, die nur von Ihren Identitätspools ausgeführt AssumeRoleWithWebIndentity
werden muss, wie durch einen Bedingungsschlüssel wie cognito-identity.amazonaws.com:aud
angegeben. Andere Bedingungsschlüssel sind verfügbar, aber aud
erforderlich. Wenn Sie versuchen, eine Rollenvertrauensrichtlinie ohne eine Bedingung dieses Typs zu speichern, gibt IAM einen Fehler zurück.
Weitere Informationen zu OIDC-Verbundschlüsseln (Web-Identität) finden Sie unter Verfügbare Schlüssel für AWS den OIDC-Verbund.
Im Folgenden sind die OIDC-Verbundbedingungsschlüssel für Amazon Cognito verfügbar.
cognito-identity.amazonaws.com:aud
-
Beschränkt die Rolle auf Operationen aus einem oder mehreren Identitätspools. Amazon Cognito gibt den Quell-Identitätspool im
aud
Anspruch im Identitätspool-Token an. cognito-identity.amazonaws.com:amr
-
Beschränkt die Rolle entweder auf Benutzer
authenticated
oderunauthenticated
(Gast-) Benutzer. Amazon Cognito gibt den Authentifizierungsstatus imamr
Anspruch im Identitätspool-Token an. cognito-identity.amazonaws.com:sub
-
Schränkt die Rolle anhand der UUID auf einen oder mehrere Benutzer ein. Diese UUID ist die Identitäts-ID des Benutzers im Identitätspool. Dieser Wert entspricht nicht dem
sub
Wert des ursprünglichen Identitätsanbieters des Benutzers. Amazon Cognito gibt diese UUID imsub
Antrag im Identitätspool-Token an.
Das folgende Beispiel für eine Rollenvertrauensrichtlinie ermöglicht es dem Verbunddienstprinzipal, die API cognito-identity.amazonaws.com
aufzurufen. AWS STS AssumeRoleWithWebIdentity
Die Anfrage ist nur dann erfolgreich, wenn das Identitätspool-Token in der API-Anforderung die folgenden Ansprüche hat.
-
Ein
aud
-Anspruch auf die Identitätspool-IDus-west-2:abcdefg-1234-5678-910a-0e8443553f95
. -
Ein
amr
-Anspruch aufauthenticated
, der hinzugefügt wird, wenn sich der Benutzer angemeldet hat und kein Gastbenutzer ist.
Vertrauensrichtlinien für IAM-Rollen bei der Standardauthentifizierung (Classic)
Übersicht
Identitätspools können im Standardauthentifizierungsablauf nur dann Rollen im Namen von Benutzern übernehmen, wenn die Vertrauensrichtlinie der Zielrolle die aud
Bedingung enthält.
Bei der Standardauthentifizierung gelten dieselben Einschränkungen für unsichere Richtlinien zur Rollenvertrauensstellung wie für die erweiterte Authentifizierung: Sie können keine Rollenvertrauensrichtlinie speichern, die die unterstützten Identitätspools nicht einschränkt, wenn eine aud
Bedingung erfüllt ist. Diese Einschränkung wurde beim Start des Dienstes nicht durchgesetzt. Vor der Durchsetzung dieser Anforderung konnten Sie Richtlinien für Rollenvertrauensstellungen erstellen, die keine zusätzlichen Sicherheitsbedingungen enthielten. Nach der Durchsetzung dieser Anforderung können AWS STS Web-Identitäten Rollen annehmen, die nicht durch Bedingungen gesichert sind. Diese Rollen können jedoch nicht geändert werden, ohne dass diese Bedingungen eingeführt werden.
Für die Enhanced-Flow-Authentifizierung muss sich die IAM-Rolle im selben AWS-Konto
Identitätspool befinden. Bei der Standardauthentifizierung, bei der Ihre Anwendung die AssumeRoleWithWebIdentity
Anfrage verfasst, kann Ihre Anwendung jedoch beantragen, eine Rolle in einem anderen Konto zu übernehmen. Ihre kontoübergreifende Anfrage zur Übernahme einer Rolle schlägt jedoch fehl, wenn für die Zielrolle eine veraltete Vertrauensrichtlinie gilt, die diese Bedingung nicht erzwingt. aud
Das Token, das ein Identitätspool für eine Identität ausgibt, enthält Informationen über den Ursprung AWS-Konto des Identitätspools. Wenn Sie ein Identitätspool-Token in einer AssumeRoleWithWebIdentityAPI-Anfrage angeben, wird AWS STS überprüft, ob sich der ursprüngliche Identitätspool in derselben Rolle AWS-Konto wie die IAM-Rolle befindet. Wenn AWS STS festgestellt wird, dass es sich bei der Anfrage um eine kontoübergreifende Anfrage handelt, wird geprüft, ob die Vertrauensrichtlinie für Rollen eine aud
Bedingung erfüllt. Der Aufruf zur Rollenübernahme schlägt fehl, wenn in der Richtlinie zur Rollenvertrauensstellung keine solche Bedingung enthalten ist. Wenn es sich bei der Anfrage nicht um eine kontoübergreifende Anfrage handelt, wird diese AWS STS Einschränkung nicht durchgesetzt. Es hat sich bewährt, immer eine Bedingung dieses Typs auf die Vertrauensrichtlinien Ihrer Identitätspool-Rollen anzuwenden.
Im Folgenden finden Sie ein Beispiel für eine Vertrauensrichtlinie, die die Mindestanforderungen für eine IAM-Rolle für die Standardauthentifizierung mit mehreren Identitätspools erfüllt. Es hat sich bewährt, auch nur authentifizierte Identitäten mit einer "cognito-identity.amazonaws.com:amr": "authenticated"
Bedingung zuzulassen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": [ "us-west-2:abcdefg-1234-5678-910a-0e8443553f95", "us-west-2:hijklmo-5678-9101-112b-0e4221776g96", "us-west-2:pqrstuv-9101-1121-314c-0e2110887h97" ] } } } ] }
Zusätzliche Bedingungen für die Vertrauenspolitik
Wiederverwenden von Rollen über Identitäten-Pools hinweg
Wenn Sie eine Rolle übergreifend für mehrere Identitätspools verwenden möchten, da sie einen gemeinsamen Berechtigungssatz haben, können Sie die Identitätspools wie folgt hinzufügen:
"StringEquals": { "cognito-identity.amazonaws.com:aud": [ "us-east-1:12345678-abcd-abcd-abcd-123456790ab", "us-east-1:98765432-dcba-dcba-dcba-123456790ab" ] }
Einschränken des Zugriffs auf bestimmte Identitäten
Erstellen Sie eine Richtlinie, die nur für eine bestimmte Gruppe von App-Benutzern gilt, indem Sie den Wert von prüfen cognito-identity.amazonaws.com:sub
:
"StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab", "cognito-identity.amazonaws.com:sub": [ "us-east-1:12345678-1234-1234-1234-123456790ab", "us-east-1:98765432-1234-1234-1243-123456790ab" ] }
Einschränken des Zugriffs auf bestimmte Anbieter
Erstellen Sie eine Richtlinie nur für die Benutzer, die sich über einen bestimmten Anbieter angemeldet haben (eventuell Ihr eigener Anmeldeanbieter), indem Sie den Wert für überprüfen cognito-identity.amazonaws.com:amr
:
"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "login.myprovider.myapp" }
Zum Beispiel hat eine App, die nur Facebook vertraut, die folgende AMR-Klausel:
"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "graph.facebook.com" }
Zugriffsrichtlinien
Die Berechtigungen, die Sie einer Rolle zuweisen, gelten für alle Benutzer, die diese Rolle übernehmen. Um den Zugriff Ihrer Benutzer aufzuteilen, verwenden Sie Richtlinienbedingungen und Variablen. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags. Sie können die sub
Bedingung verwenden, um Aktionen IDs in Ihren Zugriffsrichtlinien auf die Amazon Cognito Cognito-Identität zu beschränken. Verwenden Sie diese Option mit Vorsicht, insbesondere für nicht authentifizierte Identitäten ohne konsistente Benutzer-ID. Weitere Informationen zu den IAM-Richtlinienvariablen für den Webverbund mit Amazon Cognito finden Sie unter IAM- und AWS STS Bedingungskontextschlüssel im AWS Identity and Access Management
Benutzerhandbuch.
Um zusätzliche Sicherheit zu bieten, wendet Amazon Cognito eine Eingrenzungsrichtlinie auf Anmeldeinformationen an, die Sie Ihren nicht authentifizierten Benutzern im erweiterten Authentifizierungsablauf unter Verwendung von GetCredentialsForIdentity
zuweisen. Die Eingrenzungsrichtlinie fügt den IAM-Richtlinien, die Sie auf Ihre nicht authentifizierte Rolle anwenden, eine Eingebundene Sitzungsrichtlinie und einen AWS Richtlinie für verwaltete Sitzungen hinzu. Da Sie sowohl in den IAM-Richtlinien für Ihre Rolle als auch in den Sitzungsrichtlinien Zugriff gewähren müssen, beschränkt die Eingrenzungsrichtlinie den Zugriff der Benutzer auf nicht in der folgenden Liste aufgeführte Services.
Anmerkung
Beim einfachen (klassischen) Ablauf stellen Sie Ihre eigene API-Anforderung AssumeRoleWithWebIdentity und können diese Einschränkungen auf die Anforderung anwenden. Laut einer bewährten Sicherheitsmethode sollten Sie nicht authentifizierten Benutzern keine über diese Eingrenzungsrichtlinie hinausgehenden Berechtigungen zuweisen.
Amazon Cognito verhindert außerdem, dass authentifizierte und nicht authentifizierte Benutzer API-Anforderungen an Amazon-Cognito-Identitätspools und Amazon Cognito Sync stellen. Andere AWS-Services könnten den Zugriff auf Dienste über Web-Identitäten einschränken.
Bei einer erfolgreichen Anforderung mit dem erweiterten Authentifizierungsablauf stellt Amazon Cognito im Hintergrund eine API-Anforderung AssumeRoleWithWebIdentity
. In den Parametern in dieser Anforderung schließt Amazon Cognito Folgendes ein.
-
Die Identitäts-ID Ihres Benutzers.
-
Den ARN der IAM-Rolle, die Ihr Benutzer übernehmen möchte.
-
Einen Parameter
policy
, der eine eingebundene Sitzungsrichtlinie hinzufügt. -
Ein
PolicyArns.member.N
Parameter, dessen Wert eine AWS verwaltete Richtlinie ist, die zusätzliche Berechtigungen in Amazon gewährt CloudWatch.
Services, auf die nicht authentifizierte Benutzer zugreifen können
Wenn Sie den erweiterten Ablauf verwenden, verhindern die Scope-down-Richtlinien, die Amazon Cognito auf die Sitzung Ihres Benutzers anwendet, dass dieser andere als die in der folgenden Tabelle aufgeführten Services nutzt. Für einen Teil der Services sind nur bestimmte Aktionen zulässig.
Kategorie | Service |
---|---|
Analysen |
Amazon Data Firehose Amazon Managed Service für Apache Flink |
Anwendungsintegration |
Amazon Simple Queue Service |
AR und VR |
Amazon Sumerian¹ |
Geschäftsanwendungen |
Amazon Mobile Analytics Amazon Simple Email Service |
Datenverarbeitung |
AWS Lambda |
Kryptografie und PKI |
AWS Key Management Service¹ |
Datenbank |
Amazon-DynamoDB Amazon SimpleDB |
Front-End Web und Mobil |
AWS AppSync Amazon Location Service Amazon Simple Notification Service Amazon Pinpoint Amazon Location Service |
Entwicklung von Spielen |
GameLift Amazon-Server |
Internet of Things (IoT) |
AWS IoT |
Machine Learning |
Amazon CodeWhisperer Amazon Comprehend Amazon Lex Amazon Machine Learning Amazon Personalize Amazon Polly Amazon Rekognition Amazon SageMaker KI¹ Amazon Textract¹ Amazon Transcribe Amazon Translate |
Management und Governance |
Amazon CloudWatch CloudWatch Amazon-Protokolle |
Netzwerk und Bereitstellung von Inhalten |
Amazon API Gateway |
Sicherheit, Identität und Compliance |
Amazon-Cognito-Benutzerpools |
Speicher |
Amazon Simple Storage Service |
¹ Für die AWS-Services in der folgenden Tabelle aufgeführten Fälle gewährt die Inline-Richtlinie eine Teilmenge von Aktionen. In der Tabelle werden die jeweils verfügbaren Aktionen angezeigt.
AWS-Service | Maximale Berechtigungen für nicht authentifizierte Benutzer mit erweitertem Authentifizierungsablauf |
---|---|
AWS Key Management Service |
|
Amazon SageMaker KI |
|
Amazon Textract |
|
Amazon Sumerian |
|
Amazon Location Service |
|
Um Zugriff zu gewähren, der AWS-Services über diese Liste hinausgeht, aktivieren Sie den grundlegenden (klassischen) Authentifizierungsablauf in Ihrem Identitätspool. Wenn Ihre Benutzer aufgrund der Richtlinien AWS-Services , die der IAM-Rolle für nicht authentifizierte Benutzer zugewiesen sind, NotAuthorizedException
Fehler feststellen, sollten Sie prüfen, ob Sie diesen Dienst aus Ihrem Anwendungsfall entfernen können. Wenn dies nicht möglich ist, wechseln Sie zum Basisablauf.
Die Inline-Sitzungsrichtlinie für Gastbenutzer
Amazon Cognito wendet zunächst eine Inline-Richtlinie in der Anforderung von IAM-Anmeldeinformationen an. Die eingebundene Sitzungsrichtlinie beschränkt die effektiven Berechtigungen Ihres Benutzers auf die AWS-Services in der folgenden Liste. Sie müssen diesen auch AWS-Services in den Richtlinien, die Sie für die IAM-Rolle des Benutzers anwenden, Berechtigungen erteilen. Die effektiven Berechtigungen eines Benutzers für eine Sitzung mit übernommener Rolle entsprechen der Schnittmenge der seiner Rolle zugewiesenen Richtlinien und seiner Sitzungsrichtlinie. Weitere Informationen finden Sie unter Sitzungsrichtlinien im Benutzerhandbuch zu AWS Identity and Access Management .
Amazon Cognito fügt die folgende Inline-Richtlinie zu Sitzungen für Ihre Benutzer in AWS-Regionen hinzu, die standardmäßig aktiviert sind. Einen Überblick über die Gesamtwirkung der Inline-Richtlinie und anderer Sitzungsrichtlinien finden Sie unterServices, auf die nicht authentifizierte Benutzer zugreifen können.
Für alle anderen Regionen umfasst die Inline-Scope-down-Richtlinie alles, was in den Standardregionen aufgeführt ist, mit Ausnahme der folgenden Action
-Anweisungen.
"cognito-sync:*", "sumerian:View*", "codewhisperer:*", "textract:DetectDocumentText", "textract:AnalyzeDocument", "sdb:*"
Die Richtlinie für AWS verwaltete Sitzungen für Gäste
Amazon Cognito wendet auch eine AWS verwaltete Richtlinie als Sitzungsrichtlinie auf Enhanced-Flow-Sitzungen von nicht authentifizierten Gästen an. Diese Richtlinie schränkt den Umfang der Berechtigungen nicht authentifizierter Benutzer mit der Richtlinie ein. AmazonCognitoUnAuthedIdentitiesSessionPolicy
Sie müssen diese Berechtigung auch in den Richtlinien gewähren, die Sie Ihrer nicht authentifizierten IAM-Rolle zuordnen. Die effektiven Berechtigungen eines Benutzers für eine Sitzung mit angenommener Rolle ergeben sich aus der Schnittmenge der seiner Rolle zugewiesenen IAM-Richtlinien und der Sitzungsrichtlinien. Weitere Informationen finden Sie unter Sitzungsrichtlinien im Benutzerhandbuch zu AWS Identity and Access Management .
Einen Überblick über die Gesamtwirkung dieser AWS verwalteten Richtlinie und anderer Sitzungsrichtlinien finden Sie unter. Services, auf die nicht authentifizierte Benutzer zugreifen können
Die verwaltete AmazonCognitoUnAuthedIdentitiesSessionPolicy
-Richtlinie enthält die folgenden Berechtigungen.
Beispiele für Zugriffsrichtlinien
In diesem Abschnitt finden Sie Beispiele für Amazon-Cognito-Zugriffsrichtlinien, die Ihren Benutzern nur die grundlegenden Berechtigungen gewähren, die zum Ausführen einer bestimmten Operation erforderlich sind. Sie können die Berechtigungen für eine bestimmte Identitäts-ID weiter einschränken, indem Sie nach Möglichkeit Richtlinienvariablen verwenden. Beispiel: Verwenden Sie ${cognito-identity.amazonaws.com:sub}. Weitere Informationen finden Sie unter Grundlegendes zur Amazon-Cognito-Authentifizierung, Teil 3: Rollen und Richtlinien
Anmerkung
Als bewährte Sicherheitsmethode sollten Richtlinien nur die Berechtigungen enthalten, die Benutzer zum Ausführen ihrer Aufgaben benötigen. Das bedeutet, dass Sie versuchen sollten, den Zugriff nach Möglichkeit immer auf eine einzelne Identität für Objekte zu beschränken.
Einer Identität Lesezugriff auf ein einzelnes Objekt in Amazon S3 gewähren
Die folgende Zugriffsrichtlinie erteilt einer Identität Leseberechtigungen für den Abruf eines einzigen Objekts aus einem bestimmten S3-Bucket.
Einer Identität sowohl Lese- als auch Schreibzugriff auf identitätsspezifische Pfade in Amazon S3 gewähren
Die folgende Zugriffsrichtlinie gewährt Lese- und Schreibberechtigungen für den Zugriff auf ein bestimmtes Präfix "folder" in einem S3-Bucket, indem das Präfix der Variablen zugeordnet wird.
Mit dieser Richtlinie kann eine über us-east-1:12345678-1234-1234-1234-123456790ab
eingefügte Identität wie ${cognito-identity.amazonaws.com:sub}
Objekte in arn:aws:s3:::amzn-s3-demo-bucket/us-east-1:12345678-1234-1234-1234-123456790ab
abrufen, ablegen und auflisten. Allerdings wird der Identität kein Zugriff auf andere Objekte in gewährt arn:aws:s3:::amzn-s3-demo-bucket
.
Ein ähnliches Zugriffsmodell wird mit Amazon S3 Access Grants erreicht.
Zuweisen des differenzierten Zugriffs von Identitäten auf Amazon DynamoDB
Die folgende Zugriffsrichtlinie bietet eine differenzierte Zugriffskontrolle auf DynamoDB-Ressourcen mithilfe von Amazon Cognito-Umgebungsvariablen. Diese Variablen erteilen Zugriff auf Elemente in DynamoDB anhand der Identitäts-ID. Weitere Informationen finden Sie unter Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle im Entwicklerhandbuch für Amazon DynamoDB .
Einer Identität die Berechtigung zum Aufrufen einer Lambda-Funktion zuweisen
Die folgende Zugriffsrichtlinie erteilt einer Identität Berechtigungen zum Aufrufen einer Lambda-Funktion.
Einer Identität die Berechtigung zur Veröffentlichung von Kinesis-Daten-Streams zuweisen
Die folgende Zugriffsrichtlinie erlaubt es einer Identität, die Operation PutRecord
bei einem beliebigen Kinesis Data Stream einzusetzen. Sie kann auf Benutzer angewendet werden, die Datensätze zu allen Streams in einem Konto hinzufügen müssen. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Amazon Kinesis Data Streams-Ressourcen mithilfe von IAM im Amazon Kinesis Data Streams-Entwicklerleitfaden.
Einer Identität Zugriff auf ihre Daten im Amazon-Cognito-Sync-Speicher zuweisen
Die folgende Zugriffsrichtlinie erteilt einer Identität nur Berechtigungen auf ihre eigenen Daten im Amazon-Cognito-Sync-Speicher.
Vertrauensstellungen und Berechtigungen für Rollen
Diese Rollen unterscheiden sich in ihren Vertrauensstellungen. Im folgenden Beispiel wird eine Vertrauensrichtlinie für eine nicht authentifizierte Rolle dargestellt:
Die Richtlinie erteilt Verbundbenutzer aus cognito-identity.amazonaws.com
(Aussteller des OpenID Connect-Tokens) die Berechtigung, diese Rolle zu übernehmen. Darüber hinaus schränkt die Richtlinie den aud
-Anspruch des Tokens (in diesem Fall die Identitäten-Pool-ID) dahingehend ein, dass er mit dem Identitäten-Pool übereinstimmen muss. Schließlich gibt die Richtlinie an, dass eines der Array-Mitglieder des mehrwertigen amr
-Anspruchs des Tokens, das von der Amazon Cognito GetOpenIdToken
-API-Operation ausgegeben wird, den Wert unauthenticated
hat.
Wenn Amazon Cognito ein Token erstellt, wird die amr
des Tokens entweder als unauthenticated
oder authenticated
festgelegt. Wenn amr
authenticated
ist, enthält das Token alle Anbieter, die während der Authentifizierung verwendet werden. Das bedeutet, dass Sie eine Rolle erstellen können, die nur Benutzern vertraut, die sich über Facebook angemeldet haben, indem Sie wie folgt die amr
-Bedingung ändern:
"ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "graph.facebook.com" }
Gehen Sie bei der Änderung von Vertrauensstellungen für Ihre Rollen oder der übergreifenden Verwendung von Rollen für mehrere Identitätspools sorgfältig vor. Wenn Sie Ihre Rolle nicht korrekt konfigurieren, damit sie dem Identitätspool korrekt vertraut, wird Ihnen eine STS-Ausnahme wie die Folgende angezeigt:
AccessDenied -- Not authorized to perform sts:AssumeRoleWithWebIdentity
Wenn Sie diese Nachricht sehen, überprüfen Sie noch einmal, ob Sie die richtige Rolle für den Identitätspool und die Authentifizierungsart verwenden.