View a markdown version of this page

Persyaratan izin untuk SSE-KMS enkripsi 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 SSE-KMS enkripsi Tabel S3

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

Izin yang Diperlukan

Untuk mengakses tabel yang dienkripsi dengan kunci KMS, Anda memerlukan izin berikut pada kunci tersebut:

  • kms:GenerateDataKey

  • kms:Decrypt

penting

Untuk digunakan SSE-KMS pada tabel, Amazon S3 Tables maintenance service principal (maintenance.s3tables.amazonaws.com) memerlukan kms:GenerateDataKey dan kms:Decrypt izin pada kunci.

Izin tambahan

Izin tambahan ini diperlukan tergantung pada kasus penggunaan Anda:

  • Izin untuk layanan AWS analitik dan akses langsung — Jika Anda bekerja dengan tabel SSE-KMS terenkripsi melalui layanan AWS analitik atau mesin pihak ketiga yang mengakses tabel S3 secara langsung, peran IAM yang Anda gunakan memerlukan izin untuk menggunakan kunci KMS Anda.

  • Izin dengan Formasi Danau diaktifkan — Jika Anda telah memilih AWS Lake Formation untuk kontrol akses, peran layanan Formasi Danau memerlukan izin untuk menggunakan kunci KMS Anda.

  • Izin untuk tabel Metadata S3 — Jika Anda menggunakan SSE-KMS enkripsi untuk tabel Metadata S3, Anda perlu memberikan akses S3 Metadata service principal (metadata.s3.amazonaws.com) ke kunci KMS Anda. Ini memungkinkan Metadata S3 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 Men gizinkan 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 SSE-KMS terenkripsi dan untuk memungkinkan pemeliharaan tabel otomatis seperti pemadatan, manajemen snapshot, dan penghapusan file tanpa referensi pada tabel terenkripsi.

catatan

Setiap kali Anda membuat permintaan untuk membuat tabel SSE-KMS terenkripsi, Tabel S3 memeriksa untuk memastikan kepala sekolah maintenance.s3tables.amazonaws.com memiliki akses ke kunci KMS Anda. Untuk melakukan pemeriksaan ini, objek zero-byte dibuat sementara di bucket tabel Anda, objek ini akan dihapus secara otomatis 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 SSE-KMS terenkripsi, Anda dapat menggunakan contoh kebijakan kunci berikut. Dalam kebijakan ini, prinsi maintenance.s3tables.amazonaws.com pal layanan diberikan izin untuk menggunakan kunci KMS tertentu untuk mengenkripsi dan mendekripsi tabel dalam bucket tabel tertentu. Untuk menggunakan kebijakan, ganti user input placeholders dengan informasi Anda sendiri:

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

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

Untuk bekerja dengan tabel S3 di layanan AWS analitik, Anda mengintegrasikan bucket tabel Anda dengan AWS Glue Data Catalog. Integrasi ini memungkinkan layanan AWS analitik untuk secara otomatis menemukan dan mengakses data tabel. Untuk informasi lebih lanjut tentang integrasi, lihatMengintegrasikan Tabel Amazon S3 dengan AWS layanan analitik.

Saat Anda bekerja dengan tabel SSE-KMS terenkripsi melalui layanan AWS analitik atau mesin sumber terbuka dan pihak ketiga yang mengakses tabel S3 secara langsung, peran IAM yang Anda gunakan memerlukan izin untuk menggunakan AWS KMS kunci Anda untuk operasi enkripsi.

Anda dapat memberikan akses kunci KMS melalui kebijakan IAM yang dilampirkan pada peran Anda atau melalui kebijakan kunci KMS.

IAM policy

Lampirkan kebijakan sebaris ini ke peran IAM yang Anda gunakan untuk membuat kueri untuk mengizinkan akses kunci KMS. Ganti kunci KMS ARN dengan milik Anda sendiri.

{ "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

Atau, lampirkan pernyataan ini ke kebijakan kunci KMS Anda untuk mengizinkan peran IAM yang ditentukan menggunakan kunci tersebut. Ganti peran ARN dengan peran IAM yang Anda gunakan untuk kueri.

{ "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 kepada prinsipal IAM untuk bekerja dengan tabel terenkripsi saat Formasi Danau diaktifkan

Jika Anda telah memilih AWS Lake Formation untuk kontrol akses pada integrasi Tabel S3, peran layanan Lake Formation memerlukan izin untuk menggunakan AWS KMS kunci Anda untuk operasi enkripsi. Lake Formation menggunakan peran ini untuk menjual kredensi atas nama kepala sekolah yang mengakses tabel Anda.

Contoh kebijakan kunci KMS berikut memberikan izin peran layanan Lake Formation untuk menggunakan kunci KMS tertentu di akun Anda untuk operasi enkripsi. Ganti nilai placeholder dengan milik 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 utama layanan Metadata S3 untuk menggunakan kunci KMS Anda

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

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