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 mithilfe dieser Beispieldokumente zu JSON Richtlinien finden Sie im IAMBenutzerhandbuch unter IAM Richtlinien erstellen (Konsole).
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.
Inhalt
- Bewährte Methoden für Richtlinien
- Verwenden der QLDB Konsole
- Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
- Datentransaktionen werden ausgeführt
- Standardberechtigungen für PartiQL-Aktionen und Tabellenressourcen
- Voller Zugriff auf alle Aktionen
- Voller Zugriff auf alle Aktionen, die auf Tabellen-Tags basieren
- Lese-/Schreibzugriff
- Schreibgeschützter Zugriff
- Schreibgeschützter Zugriff auf eine bestimmte Tabelle
- Erlaube den Zugriff, um Tabellen zu erstellen
- Erlauben Sie den Zugriff, um Tabellen basierend auf Anforderungs-Tags zu erstellen
- Standardberechtigungen für PartiQL-Aktionen und Tabellenressourcen
- Exportieren eines Journals in einen Amazon S3 S3-Bucket
- Ein Journal zu Kinesis Data Streams streamen
- Aktualisierung von QLDB Ledgern auf der Grundlage von Tags
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 im IAMBenutzerhandbuch unter Überprüfen von Richtlinien mit IAM Access Analyzer.
-
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 Sicherer API Zugriff mit MFA 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 werden ausgeführt
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.
Themen
- Voller Zugriff auf alle Aktionen
- Voller Zugriff auf alle Aktionen, die auf Tabellen-Tags basieren
- Lese-/Schreibzugriff
- Schreibgeschützter Zugriff
- Schreibgeschützter Zugriff auf eine bestimmte Tabelle
- Erlaube den Zugriff, um Tabellen zu erstellen
- Erlauben Sie den Zugriff, um Tabellen basierend auf Anforderungs-Tags zu erstellen
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
" ] } ] }
Erlaube 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,amzn-s3-demo-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 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 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.