Beispiele für identitätsbasierte Richtlinien für Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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.

Beispiele für identitätsbasierte Richtlinien für Amazon QLDB

Standardmäßig sind Benutzer und Rollen nicht berechtigt, QLDB-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mithilfe der API AWS Management Console, AWS Command Line Interface (AWS CLI) oder AWS ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern die Berechtigung erteilen, Aktionen für die Ressourcen auszuführen, die sie benötigen. Der Administrator kann dann die IAM-Richtlinien zu Rollen hinzufügen, und Benutzer können die Rollen annehmen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter Erstellen von IAM-Richtlinien (Konsole) im IAM-Benutzerhandbuch.

Einzelheiten zu den von QLDB definierten Aktionen und Ressourcentypen, einschließlich des Formats ARNs für die einzelnen Ressourcentypen, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon QLDB in der Service Authorization Reference.

Wichtig

Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB-Ledgers zu Amazon Aurora PostgreSQL.

Bewährte Methoden für Richtlinien

Identitätsbasierte Richtlinien legen fest, ob jemand QLDB-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder sie löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Anleitungen und Empfehlungen:

  • Beginnen Sie mit AWS verwalteten Richtlinien und wechseln Sie zu Berechtigungen mit den geringsten Rechten — Verwenden Sie die AWS verwalteten Richtlinien, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um Ihren Benutzern und Workloads zunächst Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter AWS -verwaltete Richtlinien oder AWS -verwaltete Richtlinien für Auftrags-Funktionen im IAM-Benutzerhandbuch.

  • Anwendung von Berechtigungen mit den geringsten Rechten – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter Richtlinien und Berechtigungen in IAM im IAM-Benutzerhandbuch.

  • Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. AWS CloudFormation B. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

  • Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter Richtlinienvalidierung mit IAM Access Analyzer im IAM-Benutzerhandbuch.

  • Multi-Faktor-Authentifizierung (MFA) erforderlich — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter Sicherer API-Zugriff mit MFA im IAM-Benutzerhandbuch.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Verwenden der QLDB-Konsole

Um auf die Amazon QLDB-Konsole zugreifen zu können, benötigen Sie ein Mindestmaß an Berechtigungen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den QLDB-Ressourcen in Ihrem aufzulisten und anzuzeigen. AWS-Konto Wenn Sie eine identitätsbasierte Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Entitäten (Benutzer oder Rollen) mit dieser Richtlinie.

Sie müssen Benutzern, die nur die API AWS CLI oder die API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. AWS Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die die Benutzer ausführen möchten.

Um sicherzustellen, dass Benutzer und Rollen vollen Zugriff auf die QLDB-Konsole und all ihre Funktionen haben, fügen Sie den Entitäten die folgende AWS verwaltete Richtlinie hinzu. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon QLDB und Hinzufügen von Berechtigungen für einen Benutzer im IAM-Benutzerhandbuch.

AmazonQLDBConsoleFullAccess

Verlaufsberechtigungen abfragen

Zusätzlich zu den QLDB-Berechtigungen erfordern einige Konsolenfunktionen Berechtigungen für den Database Query Metadata Service (Dienstpräfix:dbqms). Dies ist ein rein interner Dienst, der Ihre letzten und gespeicherten Abfragen im Konsolenabfrage-Editor für QLDB und andere verwaltet. AWS-ServicesEine vollständige Liste der DBQMS-API-Aktionen finden Sie unter Database Query Metadata Service in der Service Authorization Reference.

Um Berechtigungen für den Abfrageverlauf zu gewähren, können Sie die AWS verwaltete Richtlinie Amazon verwenden QLDBConsoleFullAccess. Diese Richtlinie verwendet einen Platzhalter (dbqms:*), um alle DBQMS-Aktionen für alle Ressourcen zuzulassen.

Sie können auch eine benutzerdefinierte IAM-Richtlinie erstellen und die folgenden DBQMS-Aktionen einbeziehen. Der PartiQL-Abfrage-Editor auf der QLDB-Konsole benötigt Berechtigungen, um diese Aktionen für Abfrageverlaufsfunktionen zu verwenden.

dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery

Konsolenberechtigungen mit vollem Zugriff ohne Abfrageverlauf

Um vollen Zugriff auf die QLDB-Konsole ohne Berechtigungen für den Abfrageverlauf zu ermöglichen, können Sie eine benutzerdefinierte IAM-Richtlinie erstellen, die alle DBQMS-Aktionen ausschließt. Das folgende Richtliniendokument erlaubt beispielsweise dieselben Berechtigungen, die durch die AWS verwaltete Richtlinie Amazon gewährt werden, mit Ausnahme von Aktionen QLDBConsoleFullAccess, die mit dem Servicepräfix beginnendbqms.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "qldb:CreateLedger", "qldb:UpdateLedger", "qldb:UpdateLedgerPermissionsMode", "qldb:DeleteLedger", "qldb:ListLedgers", "qldb:DescribeLedger", "qldb:ExportJournalToS3", "qldb:ListJournalS3Exports", "qldb:ListJournalS3ExportsForLedger", "qldb:DescribeJournalS3Export", "qldb:CancelJournalKinesisStream", "qldb:DescribeJournalKinesisStream", "qldb:ListJournalKinesisStreamsForLedger", "qldb:StreamJournalToKinesis", "qldb:GetBlock", "qldb:GetDigest", "qldb:GetRevision", "qldb:TagResource", "qldb:UntagResource", "qldb:ListTagsForResource", "qldb:SendCommand", "qldb:ExecuteStatement", "qldb:ShowCatalog", "qldb:InsertSampleData", "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kinesis:ListStreams", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der API AWS CLI oder AWS .

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Datentransaktionen ausführen

Um mit der QLDB-Transaktionsdaten-API (QLDB-Sitzung) zu interagieren, indem Sie PartiQL-Anweisungen in einem Ledger ausführen, müssen Sie der API-Aktion die Erlaubnis erteilen. SendCommand Das folgende JSON-Dokument ist ein Beispiel für eine Richtlinie, die nur der API-Aktion im Ledger die Erlaubnis erteilt. SendCommand myExampleLedger

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" } ] }

Wenn der ALLOW_ALL Berechtigungsmodus myExampleLedger verwendet wird, gewährt diese Richtlinie Berechtigungen zur Ausführung aller PartiQL-Befehle für jede Tabelle im Ledger.

Sie können auch eine AWS verwaltete Richtlinie verwenden, um vollen Zugriff auf alle QLDB-Ressourcen zu gewähren. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon QLDB.

Standardberechtigungen für PartiQL-Aktionen und Tabellenressourcen

Für Ledger im STANDARD Berechtigungsmodus können Sie sich auf die folgenden IAM-Richtliniendokumente als Beispiele für die Gewährung der entsprechenden PartiQL-Berechtigungen beziehen. Eine Liste der erforderlichen Berechtigungen für jeden PartiQL-Befehl finden Sie unterReferenz zu partiQL-Berechtigungen.

Voller Zugriff auf alle Aktionen

Das folgende JSON-Richtliniendokument gewährt vollen Zugriff auf die Verwendung aller PartiQL-Befehle für alle Tabellen inmyExampleLedger. Diese Richtlinie hat den gleichen Effekt wie die Verwendung des ALLOW_ALL Berechtigungsmodus für das Ledger.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLRedact", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Vollzugriff auf alle Aktionen, die auf Tabellen-Tags basieren

Das folgende JSON-Richtliniendokument verwendet eine Bedingung, die auf Tabellenressourcen-Tags basiert, um vollen Zugriff auf die Verwendung aller PartiQL-Befehle für alle Tabellen in myExampleLedger zu gewähren. Berechtigungen werden nur erteilt, wenn das Tabellen-Tag den Wert environment development hat.

Warnung

Dies ist ein Beispiel für die Verwendung eines Platzhalterzeichens (*), um alle PartiQL-Aktionen zuzulassen, einschließlich Verwaltungs- und Lese-/Schreiboperationen für alle Tabellen in einem QLDB-Ledger. Stattdessen empfiehlt es sich, jede Aktion, die gewährt werden soll, explizit anzugeben und nur das anzugeben, was dieser Benutzer, diese Rolle oder Gruppe benötigt.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissionsBasedOnTags", "Effect": "Allow", "Action": [ "qldb:PartiQL*" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ], "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } } ] }

Lese-/Schreibzugriff

Das folgende JSON-Richtliniendokument gewährt Berechtigungen zum Auswählen, Einfügen, Aktualisieren und Löschen von Daten in allen Tabellen in. myExampleLedger Diese Richtlinie gewährt keine Berechtigungen zum Schwärzen von Daten oder zum Ändern des Schemas, z. B. zum Erstellen und Löschen von Tabellen und Indizes.

Anmerkung

Für eine UPDATE Anweisung sind Berechtigungen sowohl für die Aktionen als auch für die qldb:PartiQLUpdate qldb:PartiQLSelect Aktionen in der Tabelle erforderlich, die geändert wird. Wenn Sie eine UPDATE Anweisung ausführen, führt sie zusätzlich zum Aktualisierungsvorgang einen Lesevorgang aus. Wenn beide Aktionen erforderlich sind, wird sichergestellt, dass nur Benutzern, die den Inhalt einer Tabelle lesen dürfen, UPDATE Berechtigungen erteilt werden.

In ähnlicher Weise erfordert eine DELETE Anweisung Berechtigungen sowohl für die qldb:PartiQLDelete als auch für die qldb:PartiQLSelect Aktionen.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadWritePermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Schreibgeschützter Zugriff

Das folgende JSON-Richtliniendokument gewährt nur Leseberechtigungen für alle Tabellen in. myExampleLedger Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie myExampleLedger im Beispiel123456789012, und durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Schreibgeschützter Zugriff auf eine bestimmte Tabelle

Das folgende JSON-Richtliniendokument gewährt nur Leseberechtigungen für eine bestimmte Tabelle in. myExampleLedger In diesem Beispiel lautet die Tabellen-ID. Au1EiThbt8s0z9wM26REZN

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie 123456789012myExampleLedger,, und Au1EiThbt8s0z9wM26REZN im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissionsOnTable", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

Erlauben Sie den Zugriff, um Tabellen zu erstellen

Das folgende JSON-Richtliniendokument gewährt die Erlaubnis zum Erstellen von Tabellen inmyExampleLedger. Für die qldb:PartiQLCreateTable Aktion sind Berechtigungen für den Ressourcentyp Tabelle erforderlich. Die Tabellen-ID einer neuen Tabelle ist jedoch zum Zeitpunkt der Ausführung einer CREATE TABLE Anweisung nicht bekannt. Daher muss eine Richtlinie, die die qldb:PartiQLCreateTable Berechtigung erteilt, einen Platzhalter (*) in der Tabelle ARN verwenden, um die Ressource anzugeben.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ] } ] }

Erlauben Sie den Zugriff, um Tabellen auf der Grundlage von Anforderungstags zu erstellen

Das folgende JSON-Richtliniendokument verwendet eine auf dem aws:RequestTag Kontextschlüssel basierende Bedingung, um die Erlaubnis zum Erstellen von Tabellen zu erteilenmyExampleLedger. Berechtigungen werden nur erteilt, wenn das Anforderungs-Tag den Wert environment hatdevelopment. Das Markieren von Tabellen bei der Erstellung erfordert Zugriff auf die qldb:TagResource Aktionen qldb:PartiQLCreateTable und. Informationen darüber, wie Sie Tabellen bei der Erstellung taggen, finden Sie unterTabellen taggen.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable", "qldb:TagResource" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ], "Condition": { "StringEquals": { "aws:RequestTag/environment": "development" } } } ] }

Exportieren eines Journals in einen Amazon S3 S3-Bucket

Schritt 1: Exportberechtigungen für QLDB-Journale

Im folgenden Beispiel gewähren Sie einem Benutzer in Ihren AWS-Konto Berechtigungen, die qldb:ExportJournalToS3 Aktion an einer QLDB-Ledger-Ressource auszuführen. Sie gewähren auch Berechtigungen zum Ausführen der iam:PassRole Aktion für die IAM-Rollenressource, die Sie an den QLDB-Dienst übergeben möchten. Dies ist für alle Journal-Exportanfragen erforderlich.

Um diese Richtlinie zu verwendenus-east-1, ersetzen Sie 123456789012myExampleLedger,, und qldb-s3-export im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportPermission", "Effect": "Allow", "Action": "qldb:ExportJournalToS3", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Schritt 2: Amazon S3 S3-Bucket-Berechtigungen

Im folgenden Beispiel verwenden Sie eine IAM-Rolle, um QLDB-Zugriff zu gewähren, um in einen Ihrer Amazon S3 S3-Buckets zu schreiben. amzn-s3-demo-bucket Dies ist auch für alle QLDB-Journalexporte erforderlich.

Zusätzlich zur Erteilung der s3:PutObject Berechtigung gewährt die Richtlinie auch die s3:PutObjectAcl Erlaubnis, die Zugriffssteuerungsliste (ACL) -Berechtigungen für ein Objekt festzulegen.

Um diese Richtlinie zu verwenden, ersetzen Sie amzn-s3-demo-bucket im Beispiel durch Ihren Amazon S3 S3-Bucket-Namen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Anschließend fügen Sie diese Berechtigungsrichtlinie einer IAM-Rolle hinzu, die QLDB für den Zugriff auf Ihren Amazon S3 S3-Bucket übernehmen kann. Das folgende JSON-Dokument ist ein Beispiel für eine Vertrauensrichtlinie, die es QLDB ermöglicht, die IAM-Rolle nur für jede QLDB-Ressource im Konto zu übernehmen. 123456789012

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1 und 123456789012 im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Ein Journal zu Kinesis Data Streams streamen

Schritt 1: QLDB-Journal-Stream-Berechtigungen

Im folgenden Beispiel gewähren Sie einem Benutzer in Ihren AWS-Konto Rechten, die qldb:StreamJournalToKinesis Aktion für alle QLDB-Stream-Unterressourcen in einem Ledger auszuführen. Sie gewähren auch Berechtigungen zum Ausführen der iam:PassRole Aktion für die IAM-Rollenressource, die Sie an den QLDB-Dienst übergeben möchten. Dies ist für alle Journalstream-Anforderungen erforderlich.

Um diese Richtlinie zu verwenden, ersetzen Sieus-east-1, 123456789012myExampleLedger, und qldb-kinesis-stream im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalStreamPermission", "Effect": "Allow", "Action": "qldb:StreamJournalToKinesis", "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Schritt 2: Kinesis Data Streams Streams-Berechtigungen

Im folgenden Beispiel verwenden Sie eine IAM-Rolle, um QLDB-Zugriff zu gewähren, um Datensätze in Ihren Amazon Kinesis Kinesis-Datenstream zu schreiben. stream-for-qldb Dies ist auch für alle QLDB-Journal-Streams erforderlich.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1123456789012, und stream-for-qldb im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb" } ] }

Anschließend fügen Sie diese Berechtigungsrichtlinie einer IAM-Rolle hinzu, die QLDB für den Zugriff auf Ihren Kinesis-Datenstream übernehmen kann. Das folgende JSON-Dokument ist ein Beispiel für eine Vertrauensrichtlinie, die es QLDB ermöglicht, eine IAM-Rolle für jeden QLDB-Stream im Konto 123456789012 nur für das Ledger zu übernehmen. myExampleLedger

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1123456789012, und myExampleLedger im Beispiel durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Aktualisierung von QLDB-Ledgern basierend auf Tags

Sie können Bedingungen in Ihrer identitätsbasierten Richtlinie verwenden, um den Zugriff auf QLDB-Ressourcen auf der Grundlage von Tags zu steuern. Dieses Beispiel zeigt, wie Sie eine Richtlinie erstellen könnten, die die Aktualisierung eines Ledgers gestattet. Die Erlaubnis wird jedoch nur erteilt, wenn das Ledger-Tag den Wert des Benutzernamens dieses Benutzers Owner hat. Diese Richtlinie gewährt auch die Berechtigungen, die für die Ausführung dieser Aktion auf der Konsole erforderlich sind.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListLedgersInConsole", "Effect": "Allow", "Action": "qldb:ListLedgers", "Resource": "*" }, { "Sid": "UpdateLedgerIfOwner", "Effect": "Allow", "Action": "qldb:UpdateLedger", "Resource": "arn:aws:qldb:*:*:ledger/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

Sie können diese Richtlinie den -Benutzern in Ihrem Konto zuweisen. Wenn ein benannter Benutzer richard-roe versucht, ein QLDB-Ledger zu aktualisieren, muss das Ledger mit oder gekennzeichnet sein. Owner=richard-roe owner=richard-roe Andernfalls wird der Zugriff abgelehnt. Der Tag-Schlüssel Owner der Bedingung stimmt sowohl mit Owner als auch mit owner überein, da die Namen von Bedingungsschlüsseln nicht zwischen Groß- und Kleinschreibung unterscheiden. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.