Berechtigungsanforderungen für die SSE-KMS-Verschlüsselung von S3-Tabellen - 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-Tabellen

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-Tabellen 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 principal (maintenance.s3tables.amazonaws.com) Berechtigungen kms:GenerateDataKey und kms:Decrypt Berechtigungen für den Schlüssel.

Zusätzliche Berechtigungen

Diese zusätzlichen Berechtigungen sind abhängig von Ihrem 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, und zwar über Methoden wie den Amazon S3 Iceberg REST S3-Tabellen-Endpunkt oder den Amazon S3 S3-Tabellenkatalog fürApache Iceberg, müssen Sie der IAM-Rolle, die Ihr Kunde verwendet, Zugriff auf Ihren Schlüssel gewähren.

  • Berechtigungen für S3-Metadatentabellen — Wenn Sie die SSE-KMS-Verschlüsselung für S3-Metadatentabellen verwenden, müssen Sie dem S3-Metadaten-Service Principal (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, dass externe AWS Konten einen KMS-Schlüssel verwenden können im AWS Key Management Service Service Developer Guide.

Erteilen Sie dem Wartungsdienst S3 Tables Prinzipalberechtigungen für Ihren 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 Dienstprinzipal 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:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>", "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 unterVerwenden 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 während der Integration erstellte S3TablesRoleForLakeFormation Rolle oder auf Ihre eigene IAM-Rolle anwenden.

Das folgende Beispiel für eine Inline-IAM-Richtlinie kann verwendet werden, um der S3TablesRoleForLakeFormation Servicerolle die Erlaubnis 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>" }

Erteilen Sie IAM-Prinzipalen die Rechte, 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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<kms-key-arn>" } ] }
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": "*" }

Erteilen Sie dem S3-Metadatendienst Prinzipalberechtigungen zur Verwendung Ihres KMS-Schlüssels

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 Principals metadata.s3.amazonaws.com und den maintenance.s3tables.amazonaws.com Service Principals, 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:

{ "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": "<kms-key-arn>", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }