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.
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.
Das folgende Beispiel für eine Rollenvertrauensrichtlinie ermöglicht es dem Verbunddienstprinzipal, die API aufzurufen. cognito-identity.amazonaws.com
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.
{ "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" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }
Vertrauensrichtlinien für IAM-Rollen bei der Standardauthentifizierung (Classic)
Sie müssen mindestens eine Bedingung anwenden, die die Vertrauensrichtlinien für Rollen einschränkt, die Sie mit Identitätspools verwenden. Wenn Sie Richtlinien zur Rollenvertrauensstellung für Identitätspools erstellen oder aktualisieren, gibt IAM einen Fehler zurück, wenn Sie versuchen, Ihre Änderungen ohne mindestens einen Bedingungsschlüssel zu speichern, der Quellidentitäten einschränkt. AWS STS erlaubt keine kontenübergreifenden AssumeRoleWithWebIdentityOperationen von Identitätspools zu IAM-Rollen, für die eine Bedingung dieser Art fehlt.
Dieses Thema umfasst mehrere Bedingungen, die Quellidentitäten für Identitätspools einschränken. Eine vollständige Liste finden Sie unter Verfügbare Schlüssel für den AWS Web-Identitätsverbund.
Bei der einfachen oder klassischen Authentifizierung mit einem Identitätspool können Sie jede IAM-Rolle übernehmen, AWS STS sofern sie über die richtige Vertrauensrichtlinie verfügt. IAM-Rollen für Amazon Cognito-Identitätspools vertrauen darauf, dass der Service-Prinzipal cognito-identity.amazonaws.com
die Rolle übernimmt. Diese Konfiguration reicht nicht aus, um Ihre IAM-Rollen vor unbeabsichtigtem Zugriff auf Ressourcen zu schützen. Für Rollen dieses Typs muss eine zusätzliche Bedingung für die Rollenvertrauensrichtlinie gelten. Ohne mindestens eine der folgenden Bedingungen können Sie keine Rollen für Identitätspools erstellen oder ändern.
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.
Für die Enhanced-Flow-Authentifizierung muss sich die IAM-Rolle im selben AWS-Konto Identitätspool befinden. Dies ist jedoch bei der Standardauthentifizierung nicht der Fall.
Für Amazon-Cognito-Identitätspools, die kontenübergreifende IAM-Rollen übernehmen, gelten zusätzliche Überlegungen. Die Vertrauensrichtlinien dieser Rollen müssen den cognito-identity.amazonaws.com
Dienstprinzipal akzeptieren und die spezifische Bedingung enthalten. cognito-identity.amazonaws.com:aud
Um einen unbeabsichtigten Zugriff auf Ihre AWS Ressourcen zu verhindern, beschränkt der aud
Bedingungsschlüssel die Rolle auf Benutzer aus den Identitätspools im Bedingungswert.
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 derartigen Bedingungen erfüllt sind. 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.
Zusätzliche Bedingungen für die Vertrauensrichtlinie
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
Im einfachen (klassischen) Ablauf erstellen Sie Ihren eigenen AssumeRoleWithWebIdentityAPI-Anfrage und Sie können diese Einschränkungen auf die Anfrage 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. In anderen AWS-Services Fällen kann der Zugriff auf Dienste über Web-Identitäten eingeschränkt werden.
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 |
Amazon GameLift |
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:*", "logs:*", "dynamodb:*", "kinesis:*", "mobileanalytics:*", "s3:*", "ses:*", "sns:*", "sqs:*", "lambda:*", "machinelearning:*", "execute-api:*", "iot:*", "gamelift:*", "scs:*", "cognito-identity:*", "cognito-idp:*", "lex:*", "polly:*", "comprehend:*", "translate:*", "transcribe:*", "rekognition:*", "mobiletargeting:*", "firehose:*", "appsync:*", "personalize:*", "sagemaker:InvokeEndpoint", "cognito-sync:*", "sumerian:View*", "codewhisperer:*", "textract:DetectDocumentText", "textract:AnalyzeDocument", "sdb:*" ], "Resource": [ "*" ] } ] }
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.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "rum:PutRumEvents", "polly:*", "comprehend:*", "translate:*", "transcribe:*", "rekognition:*", "mobiletargeting:*", "firehose:*", "personalize:*", "sagemaker:InvokeEndpoint", "geo:GetMap*", "geo:SearchPlaceIndex*", "geo:GetPlace", "geo:CalculateRoute*", "geo:*Geofence", "geo:*Geofences", "geo:*DevicePosition*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKey", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" }] }
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.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::
amzn-s3-demo-bucket
/assets/my_picture.jpg"] } ] }
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
.
{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::
amzn-s3-demo-bucket
"], "Condition": {"StringLike": {"s3:prefix": ["${cognito-identity.amazonaws.com:sub}/*"]}} }, { "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket
/${cognito-identity.amazonaws.com:sub}/*"] } ] }
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 .
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MyTable" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"] } } } ] }
Einer Identität die Berechtigung zum Aufrufen einer Lambda-Funktion zuweisen
Die folgende Zugriffsrichtlinie erteilt einer Identität Berechtigungen zum Aufrufen einer Lambda-Funktion.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:us-west-2:123456789012:function:MyFunction" ] } ] }
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesis:PutRecord", "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/stream1" ] } ] }
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.
{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":"cognito-sync:*", "Resource":["arn:aws:cognito-sync:us-east-1:123456789012:identitypool/${cognito-identity.amazonaws.com:aud}/identity/${cognito-identity.amazonaws.com:sub}/*"] }] }
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:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-corner-cafe-123456790ab" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }
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.