View a markdown version of this page

IAM konfigurieren - Amazon Aurora DSQL

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 konfigurieren

Wichtig

Diese Funktion wird als AWS Vorversion bereitgestellt und kann sich ändern. Weitere Informationen finden Sie in Abschnitt 2, Betas und Vorschauen, in den AWS Servicebedingungen. Weitere Informationen zu den Preisen für CDC-Streams finden Sie auf der Aurora DSQL-Preisseite.

Vor der allgemeinen Verfügbarkeit werden wir Ihrer Stream-Payload neue Operationstypen ("op": "u"für Updates) hinzufügen. Um sicherzustellen, dass Ihre Anwendung diese Änderungen unverändert verarbeitet, behandeln Sie jeden unbekannten op Wert als Fehler, indem Sie die Payload übernehmen. after Details dazu finden Sie unter CDC-Datensätze verstehen.

CDC-Streams erfordern zwei separate Sätze von IAM-Berechtigungen:

  • Aufruferberechtigungen — Der IAM-Principal, der die CDC-Stream-API-Operationen (CreateStream,,ListStreams) aufruft GetStreamDeleteStream, benötigt Berechtigungen für diese Aktionen und für. iam:PassRole

  • Servicerolle — Eine IAM-Rolle, die Aurora DSQL zur Laufzeit annimmt, um CDC-Datensätze in Ihr Ziel zu schreiben. Sie erstellen diese Rolle, fügen eine Vertrauensrichtlinie hinzu, die es dem Aurora DSQL-Serviceprinzipal ermöglicht, sie zu übernehmen, und fügen eine Berechtigungsrichtlinie hinzu, die Schreibzugriff auf das Ziel gewährt.

Anmerkung

Die CDC-Servicerolle ist unabhängig von allen ressourcenbasierten Richtlinien auf Ihrem Aurora DSQL-Cluster. Eine auf Clusterressourcen basierende Richtlinie steuert, welche Principals eine Verbindung zum Cluster herstellen und ihn abfragen können. Die CDC-Servicerolle steuert, in welches Ziel Aurora DSQL CDC-Datensätze schreiben kann.

Berechtigungen des Anrufers

Der IAM-Principal, der die CDC-Stream-API-Operationen aufruft, benötigt Berechtigungen für die entsprechenden dsql Aktionen und. iam:PassRole Der CreateStream Vorgang ist erforderlichiam:PassRole, da er den ARN der Servicerolle an Aurora DSQL weitergibt. Folgendes ist eine Beispielrichtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLStreamActions", "Effect": "Allow", "Action": [ "dsql:CreateStream", "dsql:GetStream", "dsql:ListStreams", "dsql:DeleteStream" ], "Resource": [ "arn:aws:dsql:region:your-account-id:cluster/cluster-id", "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" ] }, { "Sid": "PassServiceRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::your-account-id:role/dsql-cdc-role", "Condition": { "StringEquals": { "iam:PassedToService": "dsql.amazonaws.com" } } } ] }

Das Resource Element umfasst sowohl den Cluster-ARN (erforderlich für CreateStream undListStreams) als auch das Stream-ARN-Muster (erforderlich für GetStream undDeleteStream).

Eine vollständige Liste der für jeden Vorgang erforderlichen Berechtigungen finden Sie unter CreateStreamGetStream, DeleteStream, und ListStreamsin der Amazon Aurora SQL API-Referenz.

Service – -Rolle

Die Servicerolle ist die IAM-Rolle, die Aurora DSQL annimmt, um CDC-Datensätze in Ihr Ziel zu schreiben. Sie erstellen diese Rolle und übergeben ihren ARN in das targetDefinition.kinesis.roleArn Feld, wenn Sie anrufenCreateStream. Die Rolle erfordert eine Vertrauensrichtlinie und eine Berechtigungsrichtlinie.

Vertrauensrichtlinie für die Servicerolle

Die Vertrauensrichtlinie muss es dem Aurora DSQL-Serviceprinzipal ermöglichen, die Rolle zu übernehmen. Verwenden Sie die Tasten und aws:SourceArn Condition, um sich vor Angriffen mit verwirrten aws:SourceAccount Stellvertretern zu schützen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLAssumeRole", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" } } } ] }

Die aws:SourceArn Bedingung beschränkt die Rolle auf Streams in einem bestimmten Cluster. Sie müssen den Platzhalter (stream/*) verwenden, wenn Sie einen Stream erstellen, da Aurora DSQL die Stream-ID noch nicht zugewiesen hat. Nachdem Sie einen Stream erstellt haben, können Sie die Bedingung auf den exakten Stream-ARN (arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/stream-id) beschränken, wenn die Rolle einen einzelnen Stream bedient.

Um die Rolle mit Streams auf einem beliebigen Cluster in Ihrem Konto zu verwenden, verwenden Sie einen breiteren Platzhalter:. arn:aws:dsql:region:your-account-id:cluster/*/stream/*

Weitere Informationen zur Prävention verwirrter Stellvertreter finden Sie Cross-service Prävention bei verwirrtem Stellvertreter in diesem Leitfaden.

Richtlinie für Berechtigungen für Servicerollen

Die Berechtigungsrichtlinie gewährt der Servicerolle Zugriff, um Datensätze in Ihren Kinesis-Datenstrom zu schreiben. Die folgende Richtlinie umfasst sowohl Kinesis-Schreibberechtigungen als auch AWS KMS Berechtigungen. Die KMSAccess Anweisung ist nur erforderlich, wenn Ihr Kinesis-Datenstream einen vom AWS KMS Kunden verwalteten Schlüssel verwendet. Sie können ihn jedoch präventiv einbeziehen, sodass Ihr CDC-Stream nicht unterbrochen wird, wenn Sie später einen vom Kunden verwalteten Schlüssel hinzufügen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KinesisAccess", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:DescribeStreamSummary", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:your-account-id:stream/kinesis-stream-name" }, { "Sid": "KMSAccess", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringEquals": { "kms:ViaService": "kinesis.region.amazonaws.com", "kms:EncryptionContext:aws:kinesis:arn": "arn:aws:kinesis:region:your-account-id:stream/kinesis-stream-name", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

Die Bedingungen in der AWS KMS Erklärung bieten die folgenden Schutzmaßnahmen:

  • kms:ViaService— Beschränkt die Schlüsselnutzung auf Anfragen, die über den Kinesis-Service in der angegebenen Region eingehen.

  • kms:EncryptionContext:aws:kinesis:arn— Beschränkt die Schlüsselverwendung auf Verschlüsselungsvorgänge für den angegebenen Kinesis-Datenstrom.

  • aws:ResourceAccount— Der Schlüssel muss zu demselben AWS Konto gehören wie der aufrufende Prinzipal, wodurch eine kontoübergreifende Schlüsselnutzung verhindert wird.

Anmerkung

Der AWS KMS Schlüssel, auf den hier verwiesen wird, ist der Verschlüsselungsschlüssel im Kinesis-Datenstream, nicht der AWS KMS Schlüssel des Clusters. Der Verschlüsselungsschlüssel des Clusters schützt CDC-Daten innerhalb der Aurora DSQL-Grenze. Der Kinesis-Verschlüsselungsschlüssel schützt CDC-Daten, nachdem Aurora DSQL sie in den Kinesis-Datenstrom geschrieben hat.

Datenschutz

Aurora DSQL verwendet Transport Layer Security (TLS), um CDC-Daten bei der Übertragung zwischen Aurora DSQL und Ihrem Ziel zu verschlüsseln. Innerhalb der Aurora DSQL-Grenze verschlüsselt Aurora DSQL CDC-Daten im Ruhezustand mithilfe des Verschlüsselungsschlüssels des Clusters.

Wenn der Cluster einen vom AWS KMS Kunden verwalteten Schlüssel verwendet und auf diesen Schlüssel nicht mehr zugegriffen werden kann, wird in einem ACTIVE IMPAIRED Oder-Stream der Fehlercode angezeigt. IMPAIRED CLUSTER_CMK_INACCESSIBLE Wenn auf den Schlüssel nicht mehr zugegriffen werden kann, bevor die Erstellung des Streams abgeschlossen ist, wechselt der Stream direkt zu. FAILED

Eine ausführliche Erläuterung der Verschlüsselung in Aurora DSQL finden Sie unter Datenverschlüsselung für Amazon Aurora DSQL in diesem Handbuch.