IAM-Rollen - 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.

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. 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 zum Verwenden und Definieren von Richtlinien finden Sie unter Übersicht über IAM-Richtlinien.

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.

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.

  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 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 oder unauthenticated (Gast-) Benutzer. Amazon Cognito gibt den Authentifizierungsstatus im amr 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 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.

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.

  1. Die Identitäts-ID Ihres Benutzers.

  2. Den ARN der 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 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

Encrypt

Decrypt

ReEncryptTo

ReEncryptFrom

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

Amazon SageMaker KI

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