View a markdown version of this page

Penggunaan AWS KMS dengan Amazon Redshift Data API - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

Penggunaan AWS KMS dengan Amazon Redshift Data API

Saat Anda mengenkripsi cluster Amazon Redshift atau kelompok kerja Redshift Serverless dengan kunci yang dikelola pelanggan, Amazon Redshift Data API menggunakan kunci yang dikelola pelanggan yang sama untuk menyimpan dan mengenkripsi kueri dan hasil Anda.

Data API mengenkripsi data Anda secara default untuk melindungi informasi sensitif, seperti teks kueri dan hasil kueri. Ini menggunakan kunci AWS KMS enkripsi yang dimiliki oleh AWS untuk perlindungan ini.

Enkripsi default untuk data diam mengurangi biaya operasional dan kompleksitas saat Anda melindungi data sensitif. Pendekatan ini membantu Anda membangun aplikasi aman yang memenuhi kepatuhan enkripsi yang ketat dan persyaratan peraturan.

Menggunakan hibah di AWS KMS

API Data memerlukan hibah untuk menggunakan kunci yang dikelola pelanggan Anda.

Saat Anda menelepon ExecuteStatement atau BatchExecuteStatement melawan cluster yang dienkripsi dengan kunci yang dikelola pelanggan, Amazon Redshift membuat hibah atas nama Anda dengan mengirimkan CreateGrant permintaan ke AWS KMS. AWS KMS menggunakan hibah untuk memberikan akses API Data ke kunci KMS di akun Anda.

API Data memerlukan hibah untuk menggunakan kunci yang dikelola pelanggan Anda untuk operasi berikut:

  • Kirim Encrypt permintaan AWS KMS untuk mengenkripsi metadata kueri dengan kunci yang dikelola pelanggan Anda.

  • Kirim GenerateDataKey permintaan AWS KMS untuk menghasilkan kunci data yang dienkripsi oleh kunci yang dikelola pelanggan Anda.

  • Kirim Decrypt permintaan AWS KMS untuk mendekripsi kunci data terenkripsi sehingga mereka dapat mengenkripsi data Anda.

Anda dapat mencabut akses ke hibah atau menghapus akses Amazon Redshift ke kunci yang dikelola pelanggan kapan saja. Jika Anda melakukannya, API Data tidak dapat lagi mengakses data yang dienkripsi oleh kunci yang dikelola pelanggan Anda, yang memengaruhi operasi yang bergantung pada data tersebut. Misalnya, jika Anda mencoba mengambil hasil kueri atau melacak status kueri setelah mencabut hibah, API Data mengembalikan. AccessDeniedException

Kebijakan utama untuk kunci yang dikelola pelanggan Anda

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki tepat satu kebijakan kunci, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci yang dikelola pelanggan, Anda dapat menentukan kebijakan kunci. Untuk informasi selengkapnya, lihat Kunci yang dikelola pelanggan di Panduan AWS Key Management Service Pengembang.

Untuk menggunakan kunci yang dikelola pelanggan dengan API Data, Anda harus terlebih dahulu mengizinkan akses ke Amazon Redshift. Operasi API berikut harus diizinkan dalam kebijakan utama:

  • kms:CreateGrant— Menambahkan hibah ke kunci yang dikelola pelanggan. Memberikan akses kontrol ke AWS KMS kunci tertentu, yang memungkinkan akses untuk memberikan operasi yang diperlukan Amazon Redshift. Untuk informasi selengkapnya, lihat Menggunakan hibah di AWS KMS.

Berikut ini adalah contoh kebijakan utama:

"Statement":[ { "Sid":"Allow access to principals authorized to use Amazon Redshift", "Effect":"Allow", "Principal":{ "AWS":"*" }, "Action":[ "kms:DescribeKey", "kms:CreateGrant" ], "Resource":"*", "Condition":{ "StringEquals":{ "kms:ViaService":"redshift.amazonaws.com", "kms:CallerAccount":"111122223333" } } }, { "Sid":"AllowKeyAdministratorsAccess", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action":"kms:*", "Resource":"*" }, { "Sid":"AllowKeyUseForExampleRole", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource":"*" } ]

Konteks enkripsi API data

Konteks enkripsi adalah kumpulan pasangan kunci-nilai opsional yang berisi informasi kontekstual tambahan tentang data. AWS KMS menggunakan konteks enkripsi sebagai data terautentikasi tambahan untuk mendukung enkripsi yang diautentikasi. Saat Anda menyertakan konteks enkripsi dalam permintaan untuk mengenkripsi data, AWS KMS mengikat konteks enkripsi ke data terenkripsi. Untuk mendekripsi data, Anda harus menyertakan konteks enkripsi yang sama dalam permintaan.

API Data menggunakan tiga pasangan kunci-nilai konteks enkripsi yang sama di semua operasi AWS KMS kriptografi untuk cluster yang disediakan:

  • aws:redshift:arn— Nama Sumber Daya Amazon (ARN) cluster

  • aws:redshift:createtime- Stempel waktu ketika Anda meminta pembuatan cluster

  • serviceNameRedshiftDataAPI

"EncryptionContextSubset": { "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster", "aws:redshift:createtime": "20250815T0000Z", "serviceName": "RedshiftDataAPI", }

API Data menggunakan dua pasangan kunci-nilai konteks enkripsi di semua operasi AWS KMS kriptografi untuk kelompok kerja tanpa server:

  • aws:redshift-serverless:arn— Nama Sumber Daya Amazon (ARN) dari namespace

  • serviceName— RedshiftData API

"EncryptionContextSubset": { "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012", "serviceName": "RedshiftDataAPI" }

Untuk informasi selengkapnya tentang enkripsi, lihat Peng antar detail kriptografi. AWS KMS Untuk informasi selengkapnya tentang Amazon Redshift dan AWS KMS integrasi, lihat Cara Amazon Redshift menggunakan. AWS KMS