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

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, Ressourcen zu erstellen oder zu ändernQLDB. Sie können auch keine Aufgaben mithilfe von AWS Management Console, AWS Command Line Interface (AWS CLI) oder ausführen AWS API. Um Benutzern die Berechtigung zu erteilen, Aktionen mit den Ressourcen durchzuführen, die sie benötigen, kann ein IAM Administrator IAM Richtlinien erstellen. Der Administrator kann dann die IAM Richtlinien zu Rollen hinzufügen, und Benutzer können die Rollen übernehmen.

Informationen zum Erstellen einer IAM identitätsbasierten Richtlinie anhand dieser JSON Beispieldokumente finden Sie unter IAMRichtlinien erstellen im IAMBenutzerhandbuch.

Einzelheiten zu Aktionen und Ressourcentypen, die von definiert wurdenQLDB, einschließlich des Formats von ARNs für jeden der 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 SQL Postgre.

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 AWS im IAMBenutzerhandbuch unter AWS Verwaltete Richtlinien oder Verwaltete Richtlinien für Jobfunktionen.

  • Berechtigungen mit den geringsten Rechten anwenden — Wenn Sie Berechtigungen mit IAM Richtlinien festlegen, gewähren Sie nur die Berechtigungen, die für die Ausfü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 IAM zum Anwenden von Berechtigungen finden Sie IAMim Benutzerhandbuch unter Richtlinien und Berechtigungen. IAM

  • Verwenden Sie Bedingungen in IAM Richtlinien, um den Zugriff weiter einzuschränken — Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen einzuschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um anzugeben, dass alle Anfragen mit gesendet werden müssenSSL. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese über einen bestimmten Zweck verwendet werden AWS -Service, z. AWS CloudFormation B. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter IAMJSONRichtlinienelemente: Bedingung.

  • Verwenden Sie IAM Access Analyzer, um Ihre IAM Richtlinien zu validieren, um sichere und funktionale Berechtigungen zu gewährleisten. IAM Access Analyzer validiert neue und bestehende Richtlinien, sodass die Richtlinien der IAM Richtliniensprache (JSON) und den IAM bewährten Methoden entsprechen. IAMAccess Analyzer bietet mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen, um Sie bei der Erstellung sicherer und funktionaler Richtlinien zu unterstützen. Weitere Informationen finden Sie unter IAMAccess Analyzer-Richtlinienvalidierung im IAMBenutzerhandbuch.

  • Multi-Faktor-Authentifizierung erforderlich (MFA) — Wenn Sie ein Szenario haben, in dem IAM Benutzer oder ein Root-Benutzer erforderlich sind AWS-Konto, aktivieren Sie die Option MFA für zusätzliche Sicherheit. Um festzulegen, MFA wann API Operationen aufgerufen werden, fügen Sie MFA Bedingungen zu Ihren Richtlinien hinzu. Weitere Informationen finden Sie unter Konfiguration des MFA -geschützten API Zugriffs im IAMBenutzerhandbuch.

Weitere Informationen zu bewährten Methoden finden Sie unter Bewährte Sicherheitsmethoden IAM im IAM Benutzerhandbuch. IAM

Verwenden der QLDB-Konsole

Um auf die QLDB Amazon-Konsole zugreifen zu können, benötigen Sie ein Mindestmaß an Berechtigungen. Diese Berechtigungen müssen es Ihnen ermöglichen, Informationen zu den QLDB Ressourcen in Ihrem Verzeichnis aufzulisten und einzusehen 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 Anrufe an AWS CLI oder am tätigen, keine Mindestberechtigungen für die Konsole gewähren AWS API. Erlauben Sie stattdessen nur den Zugriff auf die Aktionen, die dem API Vorgang entsprechen, den sie ausführen möchten.

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

AmazonQLDBConsoleFullAccess

Verlaufsberechtigungen abfragen

Zusätzlich zu den QLDB Berechtigungen benötigen 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 Abfrage-Editor für QLDB und andere der Konsole verwaltet. AWS -Services Eine vollständige Liste der DBQMS API Aktionen finden Sie im Service Authorization Reference unter Database Query Metadata Service.

Um Berechtigungen für den Abfrageverlauf zu gewähren, können Sie die AWS verwaltete Richtlinie A verwenden mazonQLDBConsoleFullAccess. 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-Abfrageeditor auf der QLDB Konsole benötigt Berechtigungen, um diese Aktionen für Funktionen zum Abfrageverlauf verwenden zu können.

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 Zugriffsrechte 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 A gewährt werden, mit Ausnahme von Aktionen mazonQLDBConsoleFullAccess, die mit dem Dienstpräfix dbqms beginnen.

{ "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

Dieses Beispiel zeigt, wie Sie eine Richtlinie erstellen könnten, die es IAM Benutzern ermöglicht, die Inline- und verwalteten Richtlinien einzusehen, die mit ihrer Benutzeridentität verknüpft sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe von oder. AWS CLI AWS API

{ "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 den QLDB Transaktionsdaten API (QLDBSitzung) zu interagieren, indem Sie PartiQL-Anweisungen in einem Ledger ausführen, müssen Sie der Aktion die Erlaubnis erteilen. SendCommand API Das folgende JSON Dokument ist ein Beispiel für eine Richtlinie, die nur für die SendCommand API Aktion im Ledger eine Genehmigung erteilt. myExampleLedger

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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" ] } ] }

Voller Zugriff auf alle Aktionen, die auf Tabellen-Tags basieren

Das folgende JSON Richtliniendokument verwendet eine Bedingung, die auf Tabellenressourcentags 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 Ledger. QLDB Stattdessen hat es sich bewährt, 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 verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 verwenden, ersetzen Sie us-east-1, 123456789012, myExampleLedger, und Au1EiThbt8s0z9wM26REZN im Beispiel mit Ihren 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 erteilt 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 verwendenARN, um die Ressource anzugeben.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 basierend auf Anforderungs-Tags zu erstellen

Das folgende JSON Richtliniendokument verwendet eine auf dem aws:RequestTag Kontextschlüssel basierende Bedingung, um die Erlaubnis zum Erstellen von Tabellen in 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 verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 QLDB für Journale

Im folgenden Beispiel gewähren Sie einem Benutzer in Ihren AWS-Konto Rechten die Berechtigung, die qldb:ExportJournalToS3 Aktion an einer QLDB Ledger-Ressource durchzufü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 Journalexportanfragen erforderlich.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, myExampleLedger, und qldb-s3-export im Beispiel mit Ihren 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 auf das Schreiben in einen Ihrer Amazon S3 S3-Buckets zu gewähren. DOC-EXAMPLE-BUCKET Dies ist auch für alle QLDB Journalexporte erforderlich.

Die Richtlinie gewährt nicht nur die s3:PutObject Berechtigung, sondern auch die s3:PutObjectAcl Erlaubnis, die Zugriffssteuerungsliste (ACL) -Berechtigungen für ein Objekt festzulegen.

Um diese Richtlinie zu verwenden, ersetzen Sie DOC - EXAMPLE - 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:::DOC-EXAMPLE-BUCKET/*" } ] }

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

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1 and 123456789012 im Beispiel mit Ihren 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: Berechtigungen QLDB für Journal-Streams

Im folgenden Beispiel gewähren Sie einem Benutzer die AWS-Konto Berechtigung, 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 Dienst übergeben möchten. QLDB Dies ist für alle Journalstream-Anforderungen erforderlich.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, myExampleLedger, und qldb-kinesis-stream im Beispiel mit Ihren 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 auf das Schreiben von Datensätzen in Ihren Amazon Kinesis Kinesis-Datenstream zu gewähren. stream-for-qldb. Dies ist auch für alle QLDB Journal-Streams erforderlich.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, und stream-for-qldb im Beispiel mit Ihren 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 den Zugriff auf Ihren Kinesis-Datenstrom übernehmen QLDB 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 nur 123456789012 für das Ledger myExampleLedger zu übernehmen.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren 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 auf der Grundlage von Tags

Sie können Bedingungen in Ihrer identitätsbasierten Richtlinie verwenden, um den Zugriff auf QLDB Ressourcen anhand 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 werden. 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 IAMJSONRichtlinienelemente: Bedingung im IAMBenutzerhandbuch.