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

IAMRollen

Beim Erstellen eines Identitätspools werden Sie aufgefordert, die IAM Rollen zu aktualisieren, die Ihre Benutzer annehmen. IAMRollen funktionieren wie folgt: Wenn sich ein Benutzer bei Ihrer App anmeldet, generiert Amazon Cognito temporäre AWS Anmeldeinformationen für den Benutzer. Diese temporären Anmeldeinformationen sind einer bestimmten IAM Rolle zugeordnet. Mit der IAM Rolle können Sie eine Reihe von Berechtigungen für den Zugriff auf Ihre AWS Ressourcen definieren.

Sie können IAM Standardrollen 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 Zugriff auf Amazon Mobile Analytics und Amazon Cognito Sync ermöglichen. Alternativ können Sie sich dafür entscheiden, vorhandene IAM Rollen zu verwenden.

Ändern Sie IAM Rollen, um den Zugriff auf andere Dienste zuzulassen oder einzuschränken. Melden Sie sich dazu bei der IAM Konsole an. Klicken Sie auf Rollen und wählen Sie eine Rolle aus. Die Richtlinien, die der Rolle zugeordnet sind, werden auf der Registerkarte Permissions aufgeführt. Sie können eine Zugriffsrichtlinie anpassen, indem Sie auf den entsprechenden Link Manage Policy (Richtlinie verwalten) klicken. Weitere Informationen zur Verwendung und Definition von Richtlinien finden Sie unter IAMRichtlinien im Überblick.

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 Grant Least Privilege im IAMBenutzerhandbuch.

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.

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 soziales Token oder ein 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 Verbunddienstprinzipalcognito-identity.amazonaws.com, den aufzurufen. AWS STS API AssumeRoleWithWebIdentity Die Anfrage ist nur erfolgreich, wenn das Identitätspool-Token in der API Anfrage die folgenden Ansprüche hat.

  1. Ein aud-Anspruch auf die Identitätspool-ID us-west-2:abcdefg-1234-5678-910a-0e8443553f95.

  2. Ein amr-Anspruch auf authenticated, 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 Rollenvertrauensrichtlinien für Identitätspools erstellen oder aktualisieren, wird ein Fehler IAM zurückgegeben, 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, denen eine solche Bedingung 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 beliebige IAM Rolle übernehmen, AWS STS sofern der Identitätspool über die richtige Vertrauensrichtlinie verfügt. IAMRollen für Amazon Cognito Cognito-Identitätspools vertrauen darauf, dass der Service Principal 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. Sie können Rollen für Identitätspools nur erstellen oder ändern, wenn mindestens eine der folgenden Bedingungen erfüllt ist.

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 oder unauthenticated (Gast-) Benutzer. Amazon Cognito gibt den Authentifizierungsstatus im amr Anspruch im Identitätspool-Token an.

cognito-identity.amazonaws.com:sub

Beschränkt die Rolle auf einen oder mehrere Benutzer durch. UUID Dies 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 dies UUID im sub 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.

Zusätzliche Überlegungen gelten für Amazon Cognito Cognito-Identitätspools, die kontoübergreifende Rollen IAM übernehmen. Die Vertrauensrichtlinien dieser Rollen müssen den cognito-identity.amazonaws.com Service Principal akzeptieren und die spezifische cognito-identity.amazonaws.com:aud Bedingung enthalten. 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 in einer AssumeRoleWithWebIdentityAPIAnfrage ein Identitätspool-Token AWS STS angeben, wird überprüft, ob sich der ursprüngliche Identitätspool in derselben AWS-Konto 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 der Rolle 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 IAMRichtlinienelemente: 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 Kontextschlüssel IAM und AWS STS Bedingungen 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 Scope-down-Richtlinie fügt den Richtlinien, die Sie AWS Richtlinie für verwaltete Sitzungen auf Ihre Rolle ohne IAM Authentifizierung anwenden, ein Eingebundene Sitzungsrichtlinie und ein hinzu. Da Sie den Zugriff sowohl in den IAM Richtlinien für Ihre Rolle als auch in den Sitzungsrichtlinien gewähren müssen, beschränkt die Scope-down-Richtlinie den Zugriff der Benutzer auf andere Dienste als die in der folgenden Liste aufgeführten.

Anmerkung

Im einfachen (klassischen) Ablauf erstellen Sie Ihren eigenen AssumeRoleWithWebIdentityAPIbeantragen und 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 Anfragen an Amazon Cognito-Identitätspools und Amazon Cognito Sync stellen. Andere AWS-Services könnten den Servicezugriff über Web-Identitäten einschränken.

Bei einer erfolgreichen Anfrage mit dem erweiterten Ablauf stellt Amazon Cognito im Hintergrund eine AssumeRoleWithWebIdentity API Anfrage. In den Parametern in dieser Anforderung schließt Amazon Cognito Folgendes ein.

  1. Die Identitäts-ID Ihres Benutzers.

  2. Die ARN IAM Rolle, die Ihr Benutzer übernehmen möchte.

  3. Einen Parameter policy, der eine eingebundene Sitzungsrichtlinie hinzufügt.

  4. 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 ¹

Amazon Textract¹

Amazon Transcribe

Amazon Translate

Management und Governance

Amazon CloudWatch

CloudWatch Amazon-Protokolle

Netzwerk und Bereitstellung von Inhalten

APIAmazon-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

Encrypt

Decrypt

ReEncrypt

GenerateDataKey

Amazon SageMaker

InvokeEndpoint

Amazon Textract

DetectDocumentText

AnalyzeDocument

Amazon Sumerian

View*

Amazon Location Service

SearchPlaceIndex*

GetPlace

CalculateRoute*

*Geofence

*Geofences

*DevicePosition*

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 NotAuthorizedException Fehler sehen AWS-Services , die aufgrund der Richtlinien, die der IAM Rolle für nicht authentifizierte Benutzer zugewiesen sind, zulässig sind, prüfen Sie, 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:*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "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 Rolle ohne IAM Authentifizierung zuordnen. Die effektiven Berechtigungen eines Benutzers für eine Sitzung mit übernommener 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*" ], "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 im AWS -Mobile-Blog.

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 Using IAM Policy Conditions for Fine-Grained Access Control im Amazon DynamoDB Developer Guide.

{ "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 Amazon Kinesis Data Streams IAM im Amazon Kinesis Data Streams Streams-Entwicklerhandbuch.

{ "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 legt die Richtlinie fest, dass eines der Array-Mitglieder des mehrwertigen amr Anspruchs des Tokens, das durch den Amazon Cognito GetOpenIdToken API Cognito-Vorgang ausgestellt wurde, den Wert hat. unauthenticated

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 so konfigurieren, dass sie Ihrem Identitätspool vertraut, kommt es zu einer Ausnahme in Bezug auf STS Ergebnisse wie die folgende:

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.