Menghasilkan kunci data - AWS Key Management Service

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

Menghasilkan kunci data

Pengguna yang berwenang dapat menggunakan GenerateDataKey API (dan terkait APIs) untuk meminta jenis kunci data tertentu atau kunci acak dengan panjang arbitrer. Topik ini memberikan tampilan yang disederhanakan dari operasi API ini. Untuk detailnya, lihat GenerateDataKey APIs di Referensi AWS Key Management Service API.

Berikut hasil sintaks permintaan GenerateDataKey.

{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }

Permintaan menerima data berikut dalam format JSON.

KeyId

Pengenal kunci kunci yang digunakan untuk mengenkripsi kunci data. Nilai ini harus mengidentifikasi kunci KMS enkripsi simetris.

Parameter ini diperlukan.

NumberOfBytes

Integer yang berisi jumlah byte yang dihasilkan. Parameter ini diperlukan.

Pemanggil harus menyediakan KeySpec atau NumberOfBytes, tapi tidak keduanya.

EncryptionContext

(Opsional) Pasangan nama-nilai yang berisi data tambahan untuk diautentikasi selama proses enkripsi dan dekripsi yang menggunakan kunci.

GrantTokens

(Opsional) Daftar token bantuan yang mewakili grants yang memberikan izin untuk menghasilkan atau menggunakan kunci. Untuk informasi selengkapnya tentang hibah dan token hibah, lihat Otentikasi dan kontrol akses untuk AWS KMS di Panduan AWS Key Management Service Pengembang.

Setelah mengautentikasi perintah, AWS KMS, memperoleh EKT aktif saat ini yang terkait dengan kunci KMS. Ini meneruskan EKT bersama dengan permintaan yang Anda berikan dan konteks enkripsi apa pun ke HSM melalui sesi yang dilindungi antara AWS KMS host dan HSM di domain.

Program ini melakukan hal-hal berikut:

  1. Menghasilkan materi rahasia yang diminta dan menahannya dalam memori yang mudah berubah.

  2. Mendekripsi EKT yang cocok dengan ID kunci dari kunci KMS yang ditentukan dalam permintaan untuk mendapatkan HBK = Decrypt aktif (DK, EKT). i

  3. Menghasilkan nonce acak N.

  4. Membuat kunci enkripsi AES-GCM 256-bit K dari HBK dan N.

  5. Mengenkripsi materi rahasia ciphertext = Enkripsi (K, konteks, rahasia).

GenerateDataKeymengembalikan materi rahasia plaintext dan ciphertext kepada Anda melalui saluran aman antara AWS KMS host dan HSM. AWS KMS kemudian mengirimkannya kepada Anda melalui sesi TLS. AWS KMS tidak mempertahankan plaintext atau ciphertext. Tanpa memiliki ciphertext, konteks enkripsi, dan otorisasi untuk menggunakan kunci KMS, rahasia yang mendasarinya tidak dapat dikembalikan.

Berikut ini adalah sintaks responsnya.

{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }

Pengelolaan kunci data diserahkan kepada Anda sebagai developer aplikasi. Untuk enkripsi sisi klien praktik terbaik dengan kunci AWS KMS data (tetapi bukan pasangan kunci data), Anda dapat menggunakan file. AWS Encryption SDK

Kunci data dapat diputar pada frekuensi apa pun. Selanjutnya, kunci data dapat dienkripsi ulang di bawah kunci KMS yang berbeda atau kunci KMS yang diputar menggunakan operasi API. ReEncrypt Untuk detailnya, lihat ReEncryptdi Referensi AWS Key Management Service API.