Berechtigungsanforderungen für die SSE-KMS-Verschlüsselung von S3 Tables - Amazon Simple Storage Service

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.

Berechtigungsanforderungen für die SSE-KMS-Verschlüsselung von S3 Tables

Wenn Sie serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) für Tabellen in S3-Tabellen-Buckets verwenden, müssen Sie Berechtigungen für verschiedene Identitäten in Ihrem Konto gewähren. Zumindest Ihre Zugriffsidentität und der Wartungsprinzipal für S3 Tables benötigen Zugriff auf Ihren Schlüssel. Die anderen erforderlichen Berechtigungen hängen von Ihrem Anwendungsfall ab.

Erforderliche Berechtigungen

Um auf eine mit einem KMS-Schlüssel verschlüsselte Tabelle zuzugreifen, benötigen Sie die folgenden Berechtigungen für diesen Schlüssel:

  • kms:GenerateDataKey

  • kms:Decrypt

Wichtig

Um SSE-KMS für Tabellen zu verwenden, benötigt der Amazon S3 Tables-Maintenance-Service-Prinzipal (maintenance.s3tables.amazonaws.com) die Berechtigungen kms:GenerateDataKey und kms:Decrypt für den Schlüssel.

Zusätzliche Berechtigungen

Diese zusätzlichen Berechtigungen sind je nach Anwendungsfall erforderlich:

  • Berechtigungen für die AWS Analytics Services-Integration — Wenn Sie mit SSE-KMS-verschlüsselten Tabellen in AWS Analytics Services arbeiten, benötigt Ihre Integrationsrolle die Erlaubnis, Ihren KMS-Schlüssel zu verwenden.

  • Berechtigungen für direkten Zugriff – Wenn Sie direkt mit SSE-KMS-verschlüsselten Tabellen arbeiten, beispielsweise über den Amazon S3 Tables Iceberg REST-Endpunkt oder den Amazon S3 Tables Catalog für Apache Iceberg, müssen Sie der IAM-Rolle, die Ihr Client verwendet, Zugriff auf Ihren Schlüssel gewähren.

  • Berechtigungen für S3-Metadatentabellen – Wenn Sie SSE-KMS-Verschlüsselung für S3-Metadatentabellen verwenden, müssen Sie dem S3-Metadaten-Service-Prinzipal (metadata.s3.amazonaws.com) Zugriff auf Ihren KMS-Schlüssel gewähren. Dadurch können S3-Metadaten verschlüsselte Tabellen aktualisieren, sodass sie Ihre neuesten Datenänderungen widerspiegeln.

Anmerkung

Für kontoübergreifende KMS-Schlüssel benötigt Ihre IAM-Rolle sowohl eine Schlüsselzugriffsberechtigung als auch eine ausdrückliche Autorisierung in der Schlüsselrichtlinie. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter Zulassen der Verwendung eines KMS-Schlüssels durch externe AWS Konten im AWS Key Management Service Service Developer Guide.

Gewähren von Berechtigungen für den S3 Tables-Maintenance-Service-Prinzipal an Ihrem KMS-Schlüssel

Diese Berechtigung ist erforderlich, um SSE-KMS-verschlüsselte Tabellen zu erstellen und die automatische Tabellenverwaltung wie Komprimierung, Snapshot-Verwaltung und Entfernung nicht referenzierter Dateien in den verschlüsselten Tabellen zu ermöglichen.

Anmerkung

Immer wenn Sie eine Anfrage zur Erstellung einer SSE-KMS-verschlüsselten Tabelle stellen, überprüft S3 Tables, ob der maintenance.s3tables.amazonaws.com Prinzipal Zugriff auf Ihren KMS-Schlüssel hat. Um diese Prüfung durchzuführen, wird vorübergehend ein Null-Byte-Objekt in Ihrem Tabellen-Bucket erstellt. Dieses Objekt wird automatisch durch die Wartungsoperationen zum Entfernen nicht referenzierter Dateien entfernt. Wenn der KMS-Schlüssel, den Sie für die Verschlüsselung angegeben haben, keinen Wartungszugriff hat, schlägt der CreateTable-Vorgang fehl.

Um Wartungszugriff auf SSE-KMS-verschlüsselte Tabellen zu gewähren, können Sie die folgende Beispielschlüsselrichtlinie verwenden. In dieser Richtlinie wird dem maintenance.s3tables.amazonaws.com Service-Prinzipal die Berechtigung erteilt, einen bestimmten KMS-Schlüssel zum Verschlüsseln und Entschlüsseln von Tabellen in einem bestimmten Tabellen-Bucket zu verwenden. Um die Richtlinie zu verwenden, ersetzen Sie sie user input placeholders durch Ihre eigenen Informationen:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }

Erteilen von Berechtigungen für IAM-Prinzipale, mit verschlüsselten Tabellen in integrierten AWS Analysediensten zu arbeiten

Um mit S3-Tabellen in AWS Analysediensten zu arbeiten, integrieren Sie Ihre Tabellen-Buckets in Amazon SageMaker Lakehouse. Diese Integration ermöglicht es AWS Analysediensten, Tabellendaten automatisch zu erkennen und darauf zuzugreifen. Weitere Informationen zur Integration finden Sie unter Integration von Amazon S3 S3-Tabellen mit AWS Analysediensten.

Wenn Sie in diesen Diensten mit SSE-KMS-verschlüsselten Tabellen arbeiten, benötigt die Rolle, die Sie verwenden, die Berechtigung, Ihren AWS KMS Schlüssel für Verschlüsselungsvorgänge zu verwenden. Sie können diese Berechtigungen auf die S3TablesRoleForLakeFormation Rolle anwenden, die während der Integration erstellt wurde, oder auf Ihre eigene IAM-Rolle.

Das folgende Beispiel für eine Inline-IAM-Richtlinie kann verwendet werden, um der S3TablesRoleForLakeFormation Servicerolle die Berechtigung zu erteilen, einen bestimmten KMS-Schlüssel in Ihrem Konto für Verschlüsselungsvorgänge zu verwenden. Um die Richtlinie zu verwenden, ersetzen Sie die input placeholder values durch Ihre eigene.

{ "Sid": "AllowTableRoleAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>" }

Gewähren von Berechtigungen für IAM-Prinzipalen, direkt mit verschlüsselten Tabellen zu arbeiten

Wenn Sie mit verschlüsselten Tabellen arbeiten, die Methoden von Drittanbietern oder Direktzugriff verwenden, müssen Sie der Rolle, die Sie verwenden, Zugriff auf Ihren KMS-Schlüssel gewähren. Die folgenden Beispiele zeigen, wie Sie Zugriff über eine IAM-Richtlinie oder eine KMS-Schlüsselrichtlinie gewähren.

IAM policy

Fügen Sie diese Inline-Richtlinie Ihrer IAM-Rolle hinzu, um den KMS-Schlüsselzugriff zu ermöglichen. Um diese Richtlinie zu verwenden, ersetzen Sie den input placeholder values durch Ihren eigenen KMS-Schlüssel arn.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowKMSKeyUsage", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
KMS key policy

Hängen Sie diese Inline-Richtlinie an einen KMS-Schlüssel an, damit die angegebene AWS KMS Rolle den Schlüssel verwenden kann. Um diese Richtlinie zu verwenden, ersetzen Sie die input placeholder values durch Ihre IAM-Rolle.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*" }

Gewähren von Berechtigungen für IAM-Prinzipale zur Arbeit mit verschlüsselten Tabellen in integrierten AWS-Analytik-Services

Damit Amazon S3 mit SSE-KMS verschlüsselte Metadatentabellen aktualisieren und Wartungsarbeiten an diesen Metadatentabellen durchführen kann, können Sie die folgende Beispielschlüsselrichtlinie verwenden. In dieser Richtlinie gestatten Sie den Service-Prinzipalen metadata.s3.amazonaws.com und den maintenance.s3tables.amazonaws.com, Tabellen in einem bestimmten Tabellen-Bucket mithilfe eines bestimmten Schlüssels zu verschlüsseln und zu entschlüsseln. Um die Richtlinie zu verwenden, ersetzen Sie sie user input placeholders durch Ihre eigenen Informationen:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": [ "maintenance.s3tables.amazonaws.com", "metadata.s3.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }