Persyaratan izin untuk enkripsi SSE-KMS Tabel S3 - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Persyaratan izin untuk enkripsi SSE-KMS Tabel S3

Saat Anda menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS) untuk tabel di bucket tabel S3, Anda harus memberikan izin untuk identitas yang berbeda di akun Anda. Minimal identitas akses Anda dan prinsip pemeliharaan Tabel S3 memerlukan akses ke kunci Anda, izin lain yang diperlukan bergantung pada kasus penggunaan Anda.

Izin yang Diperlukan

Untuk mengakses tabel yang dienkripsi dengan kunci KMS, Anda memerlukan izin ini pada kunci itu:

  • kms:GenerateDataKey

  • kms:Decrypt

penting

Untuk menggunakan SSE-KMS pada tabel, prinsipal (maintenance.s3tables.amazonaws.com) layanan pemeliharaan Tabel Amazon S3 membutuhkan kms:GenerateDataKey dan kms:Decrypt izin pada kunci.

Izin tambahan

Izin tambahan ini diperlukan tergantung pada kasus penggunaan Anda:

  • Izin untuk integrasi layanan AWS analitik — Jika Anda bekerja dengan tabel terenkripsi SSE-KMS dalam layanan AWS analitik, peran integrasi Anda memerlukan izin untuk menggunakan kunci KMS Anda.

  • Izin untuk akses langsung - Jika Anda bekerja dengan tabel terenkripsi SSE-KMS secara langsung, melalui metode seperti Tabel Amazon S3 Iceberg REST titik akhir atau Katalog Tabel Amazon S3 untuk Apache Iceberg, Anda perlu memberikan peran IAM yang digunakan klien Anda mengakses kunci Anda.

  • Izin untuk tabel Metadata S3 — Jika Anda menggunakan enkripsi SSE-KMS untuk tabel Metadata S3, Anda harus memberikan akses utama layanan S3 Metadata () ke kunci KMS Anda. metadata.s3.amazonaws.com Hal ini memungkinkan Metadata S3 untuk memperbarui tabel terenkripsi sehingga mereka akan mencerminkan perubahan data terbaru Anda.

catatan

Untuk kunci KMS lintas akun, peran IAM Anda memerlukan izin akses kunci dan otorisasi eksplisit dalam kebijakan kunci. Untuk informasi selengkapnya tentang izin lintas akun untuk kunci KMS, lihat Mengizinkan AWS akun eksternal menggunakan kunci KMS di Panduan Pengembang AWS Key Management Service Layanan.

Memberikan izin utama layanan pemeliharaan Tabel S3 ke kunci KMS Anda

Izin ini diperlukan untuk membuat tabel terenkripsi SSE-KMS dan untuk memungkinkan pemeliharaan tabel otomatis seperti pemadatan, manajemen snapshot, dan penghapusan file yang tidak direferensikan pada tabel terenkripsi.

catatan

Setiap kali Anda membuat permintaan untuk membuat tabel terenkripsi SSE-KMS, Tabel S3 memeriksa untuk memastikan maintenance.s3tables.amazonaws.com kepala sekolah memiliki akses ke kunci KMS Anda. Untuk melakukan pemeriksaan ini, objek zero-byte dibuat sementara di bucket tabel Anda, objek ini akan secara otomatis dihapus oleh operasi pemeliharaan penghapusan file yang tidak direferensikan. Jika kunci KMS yang Anda tentukan untuk enkripsi tidak memiliki akses pemeliharaan, operasi CreateTable akan gagal.

Untuk memberikan akses pemeliharaan pada tabel terenkripsi SSE-KMS, Anda dapat menggunakan contoh kebijakan kunci berikut. Dalam kebijakan ini, kepala maintenance.s3tables.amazonaws.com layanan diberikan izin untuk menggunakan kunci KMS tertentu untuk mengenkripsi dan mendekripsi tabel dalam keranjang tabel tertentu. Untuk menggunakan kebijakan ini, ganti user input placeholders dengan informasi Anda sendiri:

{ "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>/*" } } } ] }

Memberikan izin kepada prinsipal IAM untuk bekerja dengan tabel terenkripsi dalam layanan analitik terintegrasi AWS

Untuk bekerja dengan tabel S3 dalam layanan AWS analitik, Anda mengintegrasikan bucket tabel Anda dengan Amazon SageMaker Lakehouse. Integrasi ini memungkinkan layanan AWS analitik untuk secara otomatis menemukan dan mengakses data tabel. Untuk informasi lebih lanjut tentang integrasi, lihatMenggunakan Tabel Amazon S3 dengan layanan analitik AWS.

Saat Anda bekerja dengan tabel terenkripsi SSE-KMS di layanan tersebut, peran yang Anda gunakan harus memiliki izin untuk menggunakan kunci Anda AWS KMS untuk operasi enkripsi. Anda dapat menerapkan izin ini ke S3TablesRoleForLakeFormation peran yang dibuat selama integrasi, atau ke peran IAM Anda sendiri.

Contoh kebijakan IAM inline berikut dapat digunakan untuk memberikan izin peran S3TablesRoleForLakeFormation layanan untuk menggunakan kunci KMS tertentu di akun Anda untuk operasi enkripsi. Untuk menggunakan kebijakan, ganti input placeholder values dengan kebijakan Anda sendiri.

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

Memberikan izin kepada prinsipal IAM untuk bekerja dengan tabel terenkripsi secara langsung

Ketika Anda bekerja dengan tabel terenkripsi menggunakan pihak ketiga atau metode akses langsung, Anda harus memberikan peran yang Anda gunakan akses ke kunci KMS Anda. Contoh berikut menunjukkan cara memberikan akses melalui kebijakan IAM atau kebijakan kunci KMS.

IAM policy

Lampirkan kebijakan inline ini ke peran IAM Anda untuk mengizinkan akses kunci KMS. Untuk menggunakan kebijakan ini ganti input placeholder values dengan kunci KMS Anda sendiri.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<kms-key-arn>" } ] }
KMS key policy

Lampirkan kebijakan inline ini ke kunci KMS untuk memungkinkan AWS KMS peran yang ditentukan menggunakan kunci tersebut. Untuk menggunakan kebijakan ini ganti input placeholder values dengan peran IAM Anda.

{ "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": "*" }

Memberikan izin utama layanan Metadata S3 untuk menggunakan kunci KMS Anda

Untuk mengizinkan Amazon S3 memperbarui tabel metadata terenkripsi SSE-KMS, dan melakukan pemeliharaan pada tabel metadata tersebut, Anda dapat menggunakan kebijakan kunci contoh berikut. Dalam kebijakan ini, Anda mengizinkan kepala sekolah metadata.s3.amazonaws.com dan maintenance.s3tables.amazonaws.com layanan mengenkripsi dan mendekripsi tabel dalam keranjang tabel tertentu menggunakan kunci tertentu. Untuk menggunakan kebijakan ini, ganti user input placeholders dengan informasi Anda sendiri:

{ "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>/*" } } } ] }