Konsep AWS KMS - AWS Key Management Service

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

Konsep AWS KMS

Pelajari istilah dan konsep dasar yang digunakan dalam AWS Key Management Service (AWS KMS) dan bagaimana mereka bekerja sama untuk membantu melindungi data Anda.

AWS KMS keys

AWS KMS keys(Kunci KMS) adalah sumber daya utama diAWS KMS. Anda dapat menggunakan kunci KMS untuk mengenkripsi, mendekripsi, dan mengenkripsi ulang data. Ini juga dapat menghasilkan kunci data yang dapat Anda gunakan di luar AWS KMS. Biasanya, Anda akan menggunakan kunci KMS enkripsi simetris, tetapi Anda dapat membuat dan menggunakan kunci KMS asimetris untuk enkripsi atau penandatanganan, dan membuat dan menggunakan kunci KMS HMAC untuk menghasilkan dan memverifikasi tag HMAC.

catatan

AWS KMSmengganti istilah customer master key (CMK) dengan AWS KMS keydan kunci KMS. Konsepnya tidak berubah. Untuk mencegah perubahan yang melanggar, AWS KMS adalah menjaga beberapa variasi dari istilah ini.

An AWS KMS keyadalah representasi logis dari kunci kriptografi. Kunci KMS berisi metadata, seperti ID kunci, spesifikasi kunci, penggunaan kunci, tanggal pembuatan, deskripsi, dan status kunci. Yang paling penting, ini berisi referensi ke bahan utama yang digunakan ketika Anda melakukan operasi kriptografi dengan kunci KMS.

Anda dapat membuat kunci KMS dengan materi kunci kriptografi yang dihasilkan dalam modul keamanan perangkat keras yang divalidasi AWS KMS FIPS. Bahan kunci untuk kunci KMS simetris dan kunci pribadi kunci KMS asimetris tidak pernah dibiarkan tidak terenkripsi. AWS KMS Untuk menggunakan atau mengelola kunci KMS Anda, Anda harus menggunakanAWS KMS. Untuk informasi tentang membuat dan mengelola kunci KMS, lihatMengelola kunci. Untuk informasi tentang penggunaan kunci KMS, lihat Referensi AWS Key Management Service API.

Secara default, AWS KMS membuat materi kunci untuk kunci KMS. Anda tidak dapat mengekstrak, mengekspor, melihat, atau mengelola material kunci ini. Satu-satunya pengecualian adalah kunci publik dari asymmetric key pair, yang dapat Anda ekspor untuk digunakan di luar. AWS Selain itu, Anda tidak dapat menghapus materi kunci ini; Anda harus menghapus kunci KMS. Namun, Anda dapat mengimpor materi kunci Anda sendiri ke dalam kunci KMS, atau menggunakan penyimpanan kunci khusus untuk membuat kunci KMS yang menggunakan materi kunci di AWS CloudHSM klaster Anda, atau materi kunci di pengelola kunci eksternal yang Anda miliki dan kelola di luar. AWS

AWS KMSjuga mendukung kunci Multi-wilayah, yang memungkinkan Anda mengenkripsi data dalam satu Wilayah AWS dan mendekripsi dalam yang berbeda. Wilayah AWS

Untuk informasi tentang membuat dan mengelola kunci KMS, lihatMengelola kunci. Untuk informasi tentang penggunaan kunci KMS, lihat Referensi AWS Key Management Service API.

Kunci dan AWS kunci pelanggan

Kunci KMS yang Anda buat adalah kunci yang dikelola pelanggan. Layanan AWSyang menggunakan kunci KMS untuk mengenkripsi sumber daya layanan Anda sering membuat kunci untuk Anda. Kunci KMS yang Layanan AWS dibuat di AWS akun Anda adalah Kunci yang dikelola AWS. Kunci KMS yang Layanan AWS dibuat di akun layanan adalah Kunci milik AWS.

Jenis kunci KMS Dapat melihat metadata kunci KMS Dapat mengelola kunci KMS Digunakan hanya untuk Akun AWS saya Rotasi otomatis Penetapan Harga
Kunci yang dikelola pelanggan Ya Ya Ya Opsional. Setiap tahun (sekitar 365 hari)

Biaya bulanan (pro-rated per jam)

Biaya per penggunaan

Kunci yang dikelola AWS Ya Tidak Ya Wajib. Setiap tahun (sekitar 365 hari)

Tidak ada biaya bulanan

Biaya per penggunaan (beberapa Layanan AWS membayar biaya ini untuk Anda)

Kunci milik AWS Tidak Tidak Tidak Bervariasi Tidak ada biaya

AWSlayanan yang terintegrasi dengan AWS KMS berbeda dalam dukungan mereka untuk kunci KMS. Beberapa AWS layanan mengenkripsi data Anda secara default dengan Kunci milik AWS atau fileKunci yang dikelola AWS. Beberapa AWS layanan mendukung kunci yang dikelola pelanggan. AWSLayanan lain mendukung semua jenis kunci KMS untuk memungkinkan Anda kemudahanKunci milik AWS, visibilitasKunci yang dikelola AWS, atau kontrol kunci yang dikelola pelanggan. Untuk informasi mendetail tentang opsi enkripsi yang ditawarkan layanan AWS, lihat topik Enkripsi Saat Istirahat dalam panduan pengguna atau panduan developer untuk layanan.

Kunci yang dikelola pelanggan

Kunci KMS yang Anda buat adalah kunci yang dikelola pelanggan. Kunci yang dikelola pelanggan adalah kunci KMS Akun AWS yang Anda buat, miliki, dan kelola. Anda memiliki kontrol penuh atas kunci KMS ini, termasuk membuat dan memelihara kebijakan utama mereka, kebijakan IAM, dan hibah, mengaktifkan danmenonaktifkannya, memutar materi kriptografi mereka, menambahkan tag, membuat alias yang merujuk ke kunci KMS, dan menjadwalkan kunci KMS untuk dihapus.

Kunci terkelola pelanggan muncul di halaman kunci terkelola Pelanggan AWS Management Console untukAWS KMS. Untuk mengidentifikasi kunci yang dikelola pelanggan secara definitif, gunakan operasi. DescribeKey Untuk kunci yang dikelola pelanggan, nilai KeyManager bidang DescribeKey respons adalahCUSTOMER.

Anda dapat menggunakan kunci yang dikelola pelanggan Anda dalam operasi kriptografi dan penggunaan audit di AWS CloudTrail log. Selain itu, banyak AWSlayanan yang terintegrasi dengan AWS KMS memungkinkan Anda menentukan kunci yang dikelola pelanggan untuk melindungi data yang disimpan dan dikelola untuk Anda.

Kunci yang dikelola pelanggan dikenakan biaya bulanan dan biaya untuk penggunaan melebihi tingkat gratis. Biaya tersebut dihitung terhadap kuota AWS KMS untuk akun Anda. Untuk detailnya, lihat Harga AWS Key Management Service dan Kuota.

Kunci yang dikelola AWS

Kunci yang dikelola AWSadalah kunci KMS di akun Anda yang dibuat, dikelola, dan digunakan atas nama Anda oleh AWSlayanan yang terintegrasi dengannya AWS KMS.

Beberapa AWS layanan memungkinkan Anda memilih Kunci yang dikelola AWS atau kunci yang dikelola pelanggan untuk melindungi sumber daya Anda dalam layanan itu. Secara umum, kecuali Anda diminta untuk mengontrol kunci enkripsi yang melindungi sumber daya Anda, an Kunci yang dikelola AWS adalah pilihan yang baik. Anda tidak perlu membuat atau mempertahankan kunci atau kebijakan utamanya, dan tidak pernah ada biaya bulanan untuk sebuahKunci yang dikelola AWS.

Anda memiliki izin untuk melihat akun Anda, melihat kebijakan utama mereka, dan mengaudit penggunaannya di AWS CloudTrail log. Kunci yang dikelola AWS Namun, Anda tidak dapat mengubah properti apa punKunci yang dikelola AWS, memutarnya, mengubah kebijakan utamanya, atau menjadwalkannya untuk dihapus. Dan, Anda tidak dapat menggunakan Kunci yang dikelola AWS dalam operasi kriptografi secara langsung; layanan yang membuatnya menggunakannya atas nama Anda.

Kunci yang dikelola AWSmuncul di Kunci yang dikelola AWShalaman AWS Management Console forAWS KMS. Anda juga dapat mengidentifikasi Kunci yang dikelola AWS dengan alias mereka, yang memiliki formataws/service-name, sepertiaws/redshift. Untuk mengidentifikasi secara definitifKunci yang dikelola AWS, gunakan operasi. DescribeKey SebabKunci yang dikelola AWS, nilai KeyManager bidang DescribeKey responsnya adalahAWS.

Semua Kunci yang dikelola AWS secara otomatis diputar setiap tahun. Anda tidak dapat mengubah jadwal rotasi ini.

catatan

Pada Mei 2022, AWS KMS mengubah jadwal rotasi Kunci yang dikelola AWS dari setiap tiga tahun (sekitar 1.095 hari) menjadi setiap tahun (sekitar 365 hari).

Kunci yang dikelola AWS baru secara otomatis dirotasi satu tahun setelah dibuat, dan kira-kira setiap tahun setelahnya.

Kunci yang dikelola AWS yang ada secara otomatis dirotasi satu tahun setelah rotasi terbarunya, dan setiap tahun setelahnya.

Tidak ada biaya bulanan untukKunci yang dikelola AWS. Penggunaan CMK tersebut dapat dikenakan biaya jika melebihi dari tingkat gratis, tetapi beberapa layanan AWS menutup biaya ini untuk Anda. Untuk detail selengkapnya, lihat topik Enkripsi Tidak Aktif di panduan pengguna atau panduan developer untuk layanan tersebut. Untuk detail selengkapnya, lihat Harga AWS Key Management Service.

Kunci yang dikelola AWSjangan dihitung terhadap kuota sumber daya pada jumlah kunci KMS di setiap Wilayah akun Anda. Tetapi ketika digunakan atas nama prinsipal di akun Anda, kunci KMS dihitung terhadap kuota permintaan. Untuk detailnya, lihat Kuota.

Kunci milik AWS

Kunci milik AWSadalah kumpulan kunci KMS yang dimiliki dan dikelola AWS layanan untuk digunakan dalam beberapa. Akun AWS Meskipun tidak Kunci milik AWS ada dalam AndaAkun AWS, AWS layanan dapat menggunakan Kunci milik AWS untuk melindungi sumber daya di akun Anda.

Beberapa AWS layanan memungkinkan Anda memilih Kunci milik AWS atau kunci yang dikelola pelanggan. Secara umum, kecuali Anda diminta untuk mengaudit atau mengontrol kunci enkripsi yang melindungi sumber daya Anda, a Kunci milik AWS adalah pilihan yang baik. Kunci milik AWSbenar-benar gratis (tidak ada biaya bulanan atau biaya penggunaan), mereka tidak dihitung terhadap AWS KMSkuota untuk akun Anda, dan mereka mudah digunakan. Anda tidak perlu membuat atau mempertahankan kunci atau kebijakan utamanya.

Rotasi Kunci milik AWS bervariasi antar layanan. Untuk informasi tentang rotasi tertentuKunci milik AWS, lihat topik Enkripsi saat Istirahat di panduan pengguna atau panduan pengembang untuk layanan.

Kunci KMS enkripsi simetris

Saat Anda membuatAWS KMS key, secara default, Anda mendapatkan kunci KMS untuk enkripsi simetris. Ini adalah jenis kunci KMS dasar dan paling umum digunakan.

DalamAWS KMS, kunci KMS enkripsi simetris mewakili kunci enkripsi AES-GCM 256-bit, kecuali di Wilayah China, di mana ia mewakili kunci enkripsi SM4 128-bit. Bahan kunci simetris tidak pernah dibiarkan tidak AWS KMS terenkripsi. Untuk menggunakan kunci KMS enkripsi simetris, Anda harus menelepon. AWS KMS Kunci enkripsi simetris digunakan dalam enkripsi simetris, di mana kunci yang sama digunakan untuk enkripsi dan dekripsi. Kecuali tugas Anda secara eksplisit memerlukan enkripsi asimetris, kunci KMS enkripsi simetris, yang tidak pernah dibiarkan AWS KMS tidak terenkripsi, adalah pilihan yang baik.

AWSlayanan yang terintegrasi dengan hanya AWS KMS menggunakan kunci KMS enkripsi simetris untuk mengenkripsi data Anda. Layanan ini tidak mendukung enkripsi dengan kunci KMS asimetris. Untuk bantuan menentukan apakah kunci KMS simetris atau asimetris, lihat. Mengidentifikasi kunci KMS asimetris

Secara teknis, spesifikasi kunci untuk kunci simetris adalah SYMMETRIC_DEFAULT, penggunaan kuncinya adalah ENCRYPT_DECRYPT, dan algoritma enkripsi adalah SYMMETRIC_DEFAULT. Untuk detailnya, lihat Spesifikasi kunci SYMMETRIC_DEFAULT.

Anda dapat menggunakan kunci KMS enkripsi simetris AWS KMS untuk mengenkripsi, mendekripsi, dan mengenkripsi ulang data, dan menghasilkan kunci data dan pasangan kunci data. Anda dapat membuat kunci KMS enkripsi simetris multi-wilayah, mengimpor materi kunci Anda sendiri ke kunci KMS enkripsi simetris, dan membuat kunci KMS enkripsi simetris di toko kunci khusus. Untuk tabel yang membandingkan operasi yang dapat Anda lakukan pada kunci KMS dari berbagai jenis, lihatReferensi tipe kunci.

Tombol Asymmetric KMS

Anda dapat membuat kunci KMS asimetris di. AWS KMS Kunci KMS asimetris mewakili kunci publik yang terkait secara matematis dan private key pair. Kunci privat tidak pernah membiarkan AWS KMS tidak terenkripsi. Untuk menggunakan kunci privat, Anda harus memanggil AWS KMS. Anda dapat menggunakan kunci publik di dalam AWS KMS dengan memanggil operasi AWS KMS API, atau Anda dapat mengunduh kunci publik dan menggunakannya di luarAWS KMS. Anda juga dapat membuat kunci KMS asimetris Multi-wilayah.

Anda dapat membuat kunci KMS asimetris yang mewakili pasangan kunci RSA atau pasangan kunci SM2 (hanya Wilayah China) untuk enkripsi atau penandatanganan dan verifikasi kunci publik, atau pasangan kunci kurva elips untuk penandatanganan dan verifikasi.

Untuk informasi selengkapnya tentang membuat dan menggunakan kunci KMS asimetris, lihat. Kunci asimetris di AWS KMS

Kunci HMAC KMS

Kunci KMS HMAC mewakili kunci simetris dengan panjang yang bervariasi yang digunakan untuk menghasilkan dan memverifikasi kode otentikasi pesan berbasis hash (HMAC). Materi kunci untuk kunci HMAC tidak pernah dibiarkan tidak AWS KMS terenkripsi. Untuk menggunakan kunci HMAC, panggil operasi GenerateMacatau VerifyMacAPI.

Anda juga dapat membuat kunci KMS HMAC Multi-wilayah.

Untuk informasi selengkapnya tentang membuat dan menggunakan kunci HMAC KMS, lihat. Kunci HMAC di AWS KMS

Kunci data

Kunci data adalah kunci simetris yang dapat Anda gunakan untuk mengenkripsi data, termasuk sejumlah besar data dan kunci enkripsi data lainnya. Tidak seperti kunci KMS simetris, yang tidak dapat diunduh, kunci data dikembalikan kepada Anda untuk digunakan di luar. AWS KMS

Saat AWS KMS menghasilkan kunci data, ia mengembalikan kunci data plaintext untuk segera digunakan (opsional) dan salinan kunci data terenkripsi yang dapat Anda simpan dengan aman bersama data. Ketika Anda siap untuk mendekripsi data, pertama-tama Anda meminta AWS KMS untuk mendekripsi kunci data terenkripsi.

AWS KMSmenghasilkan, mengenkripsi, dan mendekripsi kunci data. Namun, AWS KMS tidak menyimpan, mengelola, atau melacak kunci data Anda, atau melakukan operasi kriptografi dengan kunci data. Anda harus menggunakan dan mengelola kunci data di luar AWS KMS. Untuk bantuan menggunakan kunci data dengan aman, lihat. AWS Encryption SDK

Membuat kunci data

Untuk membuat kunci data, panggil GenerateDataKeyoperasi. AWS KMSmenghasilkan kunci data. Kemudian mengenkripsi salinan kunci data di bawah kunci KMS enkripsi simetris yang Anda tentukan. Operasi mengembalikan salinan plaintext dari kunci data dan salinan kunci data yang dienkripsi di bawah kunci KMS. Gambar berikut menunjukkan operasi ini.

Menghasilkan kunci data

AWS KMSjuga mendukung GenerateDataKeyWithoutPlaintextoperasi, yang mengembalikan hanya kunci data terenkripsi. Jika Anda perlu menggunakan kunci data, minta AWS KMS untuk mendekripsinya.

Mengenkripsi data dengan kunci data

AWS KMS tidak dapat menggunakan kunci data untuk mengenkripsi data. Tetapi Anda bisa menggunakan kunci data di luar AWS KMS, seperti menggunakan OpenSSL atau pustaka kriptografi seperti AWS Encryption SDK.

Setelah menggunakan kunci data plaintext untuk mengenkripsi data, hapus kunci data dari memori sesegera mungkin. Anda dapat dengan aman menyimpan kunci data terenkripsi dengan data terenkripsi sehingga tersedia untuk mendekripsi data.

Mengenkripsi data pengguna di luar AWS KMS

Mendekripsi data dengan kunci data

Untuk mendekripsi data Anda, teruskan kunci data terenkripsi ke operasi Dekripsi. AWS KMSmenggunakan kunci KMS Anda untuk mendekripsi kunci data dan kemudian mengembalikan kunci data plaintext. Gunakan kunci data plaintext untuk mendekripsi data Anda kemudian hapus kunci data plaintext dari memori sesegera mungkin.

Diagram berikut menunjukkan cara menggunakan operasi Decrypt untuk mendekripsi kunci data terenkripsi.

Mendekripsi kunci data

Bagaimana kunci KMS yang tidak dapat digunakan memengaruhi kunci data

Ketika kunci KMS menjadi tidak dapat digunakan, efeknya hampir seketika (tergantung pada konsistensi akhirnya). Status kunci dari perubahan kunci KMS untuk mencerminkan kondisi barunya, dan semua permintaan untuk menggunakan kunci KMS dalam operasi kriptografi gagal.

Namun, efek pada kunci data yang dienkripsi oleh kunci KMS, dan pada data yang dienkripsi oleh kunci data, ditunda hingga kunci KMS digunakan lagi, seperti untuk mendekripsi kunci data.

Kunci KMS dapat menjadi tidak dapat digunakan karena berbagai alasan, termasuk tindakan berikut yang mungkin Anda lakukan.

Efek ini sangat penting bagi banyak orang Layanan AWS yang menggunakan kunci data untuk melindungi sumber daya yang dikelola layanan. Contoh berikut menggunakan Amazon Elastic Block Store (Amazon EBS) dan Amazon Elastic Compute Cloud (Amazon EC2). Berbeda Layanan AWS menggunakan kunci data dengan cara yang berbeda. Untuk detailnya, lihat bagian Perlindungan data pada bagian Keamanan untuk bagianLayanan AWS.

Misalnya, pertimbangkan skenario ini:

  1. Anda membuat volume EBS terenkripsi dan menentukan kunci KMS untuk melindunginya. Amazon EBS meminta AWS KMS untuk menggunakan kunci KMS Anda untuk menghasilkan kunci data terenkripsi untuk volume. Amazon EBS menyimpan kunci data terenkripsi dengan metadata volume.

  2. Saat Anda melampirkan volume EBS ke instans EC2, Amazon EC2 menggunakan kunci KMS Anda untuk mendekripsi kunci data terenkripsi volume EBS. Amazon EC2 menggunakan kunci data di perangkat keras Nitro, yang bertanggung jawab untuk mengenkripsi semua disk I/O ke volume EBS. Kunci data tetap ada di perangkat keras Nitro sementara volume EBS dilampirkan ke instans EC2.

  3. Anda melakukan tindakan yang membuat kunci KMS tidak dapat digunakan. Ini tidak memiliki efek langsung pada instans EC2 atau volume EBS. Amazon EC2 menggunakan kunci data—bukan kunci KMS—untuk mengenkripsi semua disk I/O saat volume dilampirkan ke instans.

  4. Namun, saat volume EBS terenkripsi dicopot dari instans EC2, Amazon EBS menghapus kunci data dari perangkat keras Nitro. Pada saat volume EBS yang terenkripsi dilampirkan ke instans EC2, pelampiran akan gagal karena Amazon EBS tidak dapat menggunakan kunci KMS untuk mendekripsi kunci data terenkripsi dari volume tersebut. Untuk menggunakan volume EBS lagi, Anda harus membuat kunci KMS dapat digunakan lagi.

Pasangan kunci data

Pasangan kunci data adalah kunci data asimetris yang terdiri dari kunci publik dan kunci pribadi yang terkait secara matematis. Mereka dirancang untuk digunakan dalam enkripsi sisi klien dan dekripsi atau penandatanganan dan verifikasi di luar. AWS KMS

Berbeda dengan pasangan kunci data yang dihasilkan alat seperti OpenSSLAWS KMS, melindungi kunci pribadi di setiap data key pair di bawah kunci KMS enkripsi simetris yang Anda tentukan. AWS KMS Namun, AWS KMS tidak menyimpan, mengelola, atau melacak pasangan kunci data Anda, atau melakukan operasi kriptografi dengan pasangan kunci data. Anda harus menggunakan dan mengelola pasangan kunci data di luar AWS KMS.

AWS KMS mendukung jenis pasangan kunci data berikut:

  • Pasangan kunci RSA: RSA_2048, RSA_3072, dan RSA_4096

  • Pasangan kunci kurva elips: ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, dan ECC_SECG_P256K1

  • Pasangan kunci SM (hanya Wilayah China): SM2

Jenis pasangan kunci data yang Anda pilih biasanya bergantung pada kasus penggunaan atau persyaratan peraturan Anda. Sebagian besar sertifikat memerlukan kunci RSA. Kunci kurva elips sering digunakan untuk tanda tangan digital. Kunci ECC_SECG_P256K1 umumnya digunakan untuk cryptocurrency. AWS KMSmerekomendasikan agar Anda menggunakan pasangan kunci ECC untuk menandatangani, dan menggunakan pasangan kunci RSA untuk enkripsi atau penandatanganan, tetapi tidak keduanya. Namun, AWS KMS tidak dapat menerapkan pembatasan apa pun pada penggunaan pasangan kunci data di luar AWS KMS.

Membuat pasangan kunci data

Untuk membuat data key pair, panggil GenerateDataKeyPairor GenerateDataKeyPairWithoutPlaintextoperations. Tentukan kunci KMS enkripsi simetris yang ingin Anda gunakan untuk mengenkripsi kunci pribadi.

GenerateDataKeyPair mengembalikan kunci publik plaintext, kunci privat plaintext, dan kunci privat terenkripsi. Gunakan operasi ini ketika Anda memerlukan kunci privat plaintext segera, seperti untuk menghasilkan tanda tangan digital.

GenerateDataKeyPairWithoutPlaintext mengembalikan kunci publik plaintext dan kunci privat terenkripsi, tetapi bukan kunci privat plaintext. Gunakan operasi ini ketika Anda tidak memerlukan kunci privat plaintext segera, seperti ketika Anda mengenkripsi dengan kunci publik. Kemudian, ketika Anda membutuhkan kunci privat plaintext untuk mendekripsi data, Anda dapat memanggil operasi Decrypt.

Gambar berikut menunjukkan operasi GenerateDataKeyPair. Operasi GenerateDataKeyPairWithoutPlaintext menghilangkan kunci privat plaintext.

Menghasilkan pasangan kunci data

Mengenkripsi data dengan pasangan kunci data

Ketika Anda mengenkripsi dengan pasangan kunci data, Anda menggunakan kunci publik pasangan untuk mengenkripsi data dan kunci privat pasangan yang sama untuk mendekripsi data. Biasanya, Anda menggunakan pasangan kunci data ketika banyak pihak perlu mengenkripsi data yang hanya pihak dengan kunci pribadi dapat mendekripsi.

Pihak dengan kunci publik menggunakan kunci tersebut untuk mengenkripsi data, seperti yang ditunjukkan dalam diagram berikut.

Mengenkripsi data pengguna dengan kunci publik dari pasangan kunci data di luar AWS KMS

Mendekripsi data dengan pasangan kunci data

Untuk mendekripsi data Anda, gunakan kunci privat dalam pasangan kunci data. Agar operasi berhasil, kunci publik dan privat harus berasal dari pasangan kunci data yang sama, dan Anda harus menggunakan algoritme enkripsi yang sama.

Untuk mendekripsi kunci privat terenkripsi, berikan kunci untuk operasi Decrypt. Gunakan kunci privat plaintext untuk mendekripsi data. Kemudian, hapus kunci privat plaintext dari memori sesegera mungkin.

Diagram berikut menunjukkan cara menggunakan kunci privat dalam pasangan kunci data untuk mendekripsi ciphertext.

Mendekripsi data dengan kunci privat dalam pasangan kunci data di luar AWS KMS.

Menandatangani pesan dengan pasangan kunci data

Untuk menghasilkan tanda tangan kriptografi untuk suatu pesan, gunakan kunci privat dalam pasangan kunci data. Siapa pun yang memiliki kunci publik dapat menggunakannya untuk memverifikasi bahwa pesan telah ditandatangani dengan kunci privat Anda dan bahwa pesan tersebut tidak berubah sejak ditandatangani.

Jika Anda mengenkripsi kunci pribadi Anda, teruskan kunci pribadi terenkripsi ke operasi Dekripsi. AWS KMSmenggunakan kunci KMS Anda untuk mendekripsi kunci data dan kemudian mengembalikan kunci pribadi plaintext. Gunakan kunci privat plaintext untuk menghasilkan tanda tangan. Kemudian, hapus kunci privat plaintext dari memori sesegera mungkin.

Untuk menandatangani pesan, buat intisari pesan menggunakan fungsi hash kriptografi, seperti perintah dgstdi OpenSSL. Kemudian, berikan kunci privat plaintext Anda untuk algoritme penandatanganan. Hasilnya adalah tanda tangan yang mewakili isi pesan. (Anda mungkin dapat menandatangani pesan yang lebih singkat tanpa terlebih dahulu membuat intisari. Ukuran pesan maksimum bervariasi dengan alat penandatanganan yang Anda gunakan.)

Diagram berikut menunjukkan cara menggunakan kunci privat dalam pasangan kunci data untuk menandatangani pesan.

Menghasilkan tanda tangan kriptografi dengan kunci privat dalam pasangan kunci data di luar AWS KMS.

Memverifikasi tanda tangan dengan pasangan kunci data

Siapa pun yang memiliki kunci publik dalam pasangan kunci data Anda dapat menggunakannya untuk memverifikasi tanda tangan yang Anda hasilkan dengan kunci privat Anda. Verifikasi mengonfirmasi bahwa pengguna yang diotorisasi menandatangani pesan tersebut dengan kunci privat dan algoritme penandatanganan yang ditentukan, dan pesan tersebut tidak berubah sejak ditandatangani.

Agar berhasil, pihak yang memverifikasi tanda tangan harus menghasilkan jenis intisari yang sama, menggunakan algoritme yang sama, dan menggunakan kunci publik yang sesuai dengan kunci privat yang digunakan untuk menandatangani pesan.

Diagram berikut menunjukkan cara menggunakan kunci publik dalam pasangan kunci data untuk memverifikasi pesan.

Memverifikasi tanda tangan kriptografi dengan kunci publik dalam pasangan kunci data di luar AWS KMS.

Alias

Gunakan alias sebagai nama ramah untuk kunci KMS. Misalnya, Anda dapat merujuk ke kunci KMS sebagai kunci uji, bukan 1234abcd-12ab-34cd-56ef-1234567890ab.

Alias membuatnya lebih mudah untuk mengidentifikasi kunci KMS di. AWS Management Console Anda dapat menggunakan alias untuk mengidentifikasi kunci KMS dalam beberapa AWS KMS operasi, termasuk operasi kriptografi. Dalam aplikasi, Anda dapat menggunakan satu alias untuk merujuk ke kunci KMS yang berbeda di masing-masing. Wilayah AWS

Anda juga dapat mengizinkan dan menolak akses ke kunci KMS berdasarkan aliasnya tanpa mengedit kebijakan atau mengelola hibah. Fitur ini adalah bagian dari dukungan AWS KMS untuk kontrol akses berbasis atribut (ABAC). Untuk rincian selengkapnya, lihat ABAC untuk AWS KMS.

DalamAWS KMS, alias adalah sumber daya independen, bukan properti kunci KMS. Dengan demikian, Anda dapat menambahkan, mengubah, dan menghapus alias tanpa mempengaruhi kunci KMS terkait.

penting

Jangan sertakan informasi rahasia atau sensitif dalam nama alias. Alias dapat muncul dalam plaintext di CloudTrail log dan output lainnya.

Pelajari lebih lanjut:

Penyimpanan kunci kustom

Toko kunci khusus adalah AWS KMS sumber daya yang didukung oleh manajer kunci di luar AWS KMS yang Anda miliki dan kelola. Ketika Anda menggunakan kunci KMS di toko kunci khusus untuk operasi kriptografi, operasi kriptografi sebenarnya dilakukan di manajer kunci Anda menggunakan kunci kriptografinya.

AWS KMSmendukung penyimpanan AWS CloudHSM kunci yang didukung oleh AWS CloudHSM cluster dan penyimpanan kunci eksternal yang didukung oleh manajer kunci eksternal di luarAWS.

Untuk informasi selengkapnya, lihat Penyimpanan kunci kustom.

Operasi kriptografi

DalamAWS KMS, operasi kriptografi adalah operasi API yang menggunakan kunci KMS untuk melindungi data. Karena kunci KMS tetap berada di dalamAWS KMS, Anda harus memanggil AWS KMS untuk menggunakan kunci KMS dalam operasi kriptografi.

Untuk melakukan operasi kriptografi dengan kunci KMS, gunakan AWS SDK, AWS Command Line Interface (AWS CLI), atau. AWS Tools for PowerShell Anda tidak dapat melakukan operasi kriptografi di konsol AWS KMS. Untuk contoh memanggil operasi kriptografi dalam beberapa bahasa pemrograman, lihat Memprogram API AWS KMS.

Tabel berikut mencantumkan operasi kriptografis AWS KMS. Ini juga menunjukkan jenis kunci dan persyaratan penggunaan kunci untuk kunci KMS yang digunakan dalam operasi.

Operasi Tipe Kunci Penggunaan kunci
Dekripsi Simetris atau asimetris ENCRYPT_DECRYPT
Enkripsi Simetris atau asimetris ENCRYPT_DECRYPT
GenerateDataKey Simetris ENCRYPT_DECRYPT
GenerateDataKeyPair Simetris [1]

Tidak didukung pada kunci KMS di toko kunci khusus.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Simetris [1]

Tidak didukung pada kunci KMS di toko kunci khusus.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Simetris ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/A. Operasi ini tidak menggunakan kunci KMS. N/A
ReEncrypt Simetris atau asimetris ENCRYPT_DECRYPT
Tanda Asimetris SIGN_VERIFY
Verifikasi Asimetris SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Menghasilkan data key pair asimetris yang dilindungi oleh kunci KMS enkripsi simetris.

Untuk informasi tentang izin untuk operasi kriptografi, lihat AWS KMS izin.

Untuk membuat AWS KMS responsif dan sangat fungsional untuk semua pengguna, AWS KMS menetapkan kuota pada jumlah operasi kriptografi yang disebut dalam setiap detik. Untuk detailnya, lihat Kuota bersama untuk operasi kriptografis.

Pengidentifikasi kunci () KeyId

Pengidentifikasi kunci bertindak seperti nama untuk kunci KMS Anda. Mereka membantu Anda mengenali kunci KMS Anda di konsol. Anda menggunakannya untuk menunjukkan kunci KMS mana yang ingin Anda gunakan dalam operasi AWS KMS API, kebijakan utama, kebijakan IAM, dan hibah. Nilai pengidentifikasi kunci sama sekali tidak terkait dengan materi kunci yang terkait dengan kunci KMS.

AWS KMS menentukan beberapa pengidentifikasi kunci. Ketika Anda membuat kunci KMS, AWS KMS menghasilkan kunci ARN dan kunci ID, yang merupakan properti dari kunci KMS. Saat Anda membuat alias, AWS KMS menghasilkan alias ARN berdasarkan nama alias yang Anda tentukan. Anda dapat melihat pengidentifikasi kunci dan alias dalam AWS Management Console dan dalam AWS KMS API.

Di AWS KMS konsol, Anda dapat melihat dan memfilter kunci KMS berdasarkan ARN kunci mereka, ID kunci, atau nama alias, dan mengurutkan berdasarkan ID kunci dan nama alias. Untuk bantuan menemukan pengenal kunci di konsol, lihatMenemukan ID kunci dan kunci ARN.

Di AWS KMS API, parameter yang Anda gunakan untuk mengidentifikasi kunci KMS diberi nama KeyId atau variasi, seperti TargetKeyId atauDestinationKeyId. Namun, nilai-nilai parameter tersebut tidak terbatas pada ID kunci. Beberapa dapat mengambil pengidentifikasi kunci yang valid. Untuk informasi tentang nilai untuk setiap parameter, lihat deskripsi parameter di Referensi AWS Key Management Service API.

catatan

Saat menggunakan AWS KMS API, hati-hati terkait pengidentifikasi kunci yang Anda gunakan. API yang berbeda memerlukan pengidentifikasi kunci yang berbeda. Secara umum, gunakan pengenal kunci paling lengkap dan praktis untuk tugas Anda.

AWS KMS mendukung pengidentifikasi kunci berikut.

ARN kunci

Kunci ARN adalah Nama Sumber Daya Amazon (ARN) dari kunci KMS. Ini adalah pengidentifikasi unik dan sepenuhnya memenuhi syarat untuk kunci KMS. Sebuah ARN kunci termasuk Akun AWS, Wilayah, dan ID kunci. Untuk bantuan menemukan ARN kunci dari kunci KMS, lihat. Menemukan ID kunci dan kunci ARN

Format ARN kunci adalah sebagai berikut:

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

Berikut ini adalah contoh kunci ARN untuk kunci KMS Single-region.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Elemen key-id dari ARN kunci dari kunci multi-Wilayah dimulai dengan prefiks mrk-. Berikut ini adalah contoh kunci ARN untuk kunci Multi-region.

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
ID Kunci

ID kunci secara unik mengidentifikasi kunci KMS dalam akun dan Wilayah. Untuk bantuan menemukan ID kunci dari kunci KMS, lihatMenemukan ID kunci dan kunci ARN.

Berikut ini adalah ID kunci contoh untuk kunci KMS Single-region.

1234abcd-12ab-34cd-56ef-1234567890ab

ID kunci dari kunci multi-Wilayah dimulai dengan prefiks mrk-. Berikut ini adalah ID kunci contoh untuk kunci Multi-region.

mrk-1234abcd12ab34cd56ef1234567890ab
ARN Alias

ARN alias adalah Amazon Resource Name (ARN) dari alias AWS KMS. Ini adalah pengidentifikasi unik yang sepenuhnya memenuhi syarat untuk alias, dan untuk kunci KMS yang diwakilinya. ARN alias termasuk Akun AWS, Wilayah, dan nama alias.

Pada waktu tertentu, alias ARN mengidentifikasi satu kunci KMS tertentu. Namun, karena Anda dapat mengubah kunci KMS yang terkait dengan alias, alias ARN dapat mengidentifikasi kunci KMS yang berbeda pada waktu yang berbeda. Untuk bantuan menemukan alias ARN dari kunci KMS, lihat. Menemukan nama alias dan ARN alias

Format ARN alias adalah sebagai berikut:

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

Berikut ini adalah ARN alias untuk ExampleAlias fiktif.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
Nama alias

Nama alias adalah satu string berisi hingga 256 karakter. Ini secara unik mengidentifikasi kunci KMS terkait dalam akun dan Wilayah. Dalam AWS KMS API, nama alias selalu diawali dengan alias/. Untuk bantuan menemukan nama alias kunci KMS, lihat. Menemukan nama alias dan ARN alias

Format nama alias adalah sebagai berikut:

alias/<alias-name>

Sebagai contoh:

alias/ExampleAlias

aws/Awalan untuk nama alias dicadangkan untuk. Kunci yang dikelola AWS Anda tidak dapat membuat alias dengan prefiks ini. Misalnya, nama alias Kunci yang dikelola AWS untuk Amazon Simple Storage Service (Amazon S3) Simple Storage Service S3) adalah sebagai berikut.

alias/aws/s3

Material kunci

Materi kunci adalah string bit yang digunakan dalam algoritma kriptografi. Materi kunci rahasia harus dirahasiakan untuk melindungi operasi kriptografi yang menggunakannya. Materi kunci publik dirancang untuk dibagikan.

Setiap kunci KMS menyertakan referensi ke materi utamanya dalam metadatanya. Asal material kunci kunci KMS enkripsi simetris dapat bervariasi. Anda dapat menggunakan material kunci yang dihasilkan AWS KMS, material kunci yang dihasilkan dalam klaster AWS CloudHSM dari penyimpanan kunci kustom, atau impor material kunci Anda sendiri. Jika Anda menggunakan bahan AWS KMS kunci untuk kunci KMS enkripsi simetris Anda, Anda dapat mengaktifkan rotasi otomatis materi kunci Anda.

Secara default, setiap kunci KMS memiliki bahan kunci yang unik. Namun, Anda dapat membuat satu set kunci multi-wilayah dengan material kunci yang sama.

Asal material kunci

Asal material utama adalah properti kunci KMS yang mengidentifikasi sumber bahan kunci dalam kunci KMS. Anda memilih asal bahan utama saat Anda membuat kunci KMS, dan Anda tidak dapat mengubahnya. Sumber material utama mempengaruhi keamanan, daya tahan, ketersediaan, latensi, dan karakteristik throughput kunci KMS.

Untuk menemukan asal material kunci dari kunci KMS, gunakan DescribeKeyoperasi, atau lihat nilai Origin pada tab konfigurasi Cryptographic pada halaman detail untuk kunci KMS di konsol. AWS KMS Untuk bantuan, lihat Melihat Kunci.

Kunci KMS dapat memiliki salah satu nilai asal material utama berikut.

AWS_KMS

AWS KMSmembuat dan mengelola materi kunci untuk kunci KMS di toko kuncinya sendiri. Ini adalah nilai default dan yang direkomendasikan untuk sebagian besar kunci KMS.

Untuk bantuan dalam membuat kunci dengan material kunci dari AWS KMS, lihat Membuat kunci.

EXTERNAL (Import key material)

Kunci KMS telah mengimpor bahan kunci. Saat Anda membuat kunci KMS dengan asal material External kunci, kunci KMS tidak memiliki materi kunci. Nanti, Anda dapat mengimpor materi kunci ke kunci KMS. Jika Anda menggunakan material kunci impor, Anda perlu mengamankan dan mengelola material kunci tersebut di luar AWS KMS, termasuk mengganti material kunci jika masa berlakunya berakhir. Untuk detail, lihat Tentang material kunci yang diimpor.

Untuk bantuan membuat kunci KMS untuk materi kunci impor, lihatLangkah 1: Buat kunci KMS tanpa bahan kunci.

AWS_CLOUDHSM

AWS KMSmembuat materi kunci di AWS CloudHSM cluster untuk toko AWS CloudHSM kunci Anda.

Untuk bantuan membuat kunci KMS di toko AWS CloudHSM kunci, lihatMembuat kunci KMS di toko AWS CloudHSM kunci.

EXTERNAL_KEY_STORE

Materi utamanya adalah kunci kriptografi di manajer kunci eksternal di luar. AWS Asal ini hanya didukung untuk kunci KMS di toko kunci eksternal.

Untuk bantuan membuat kunci KMS di toko kunci eksternal, lihatMembuat kunci KMS di toko kunci eksternal.

Spesifikasi kunci

Spesifikasi kunci adalah properti yang mewakili konfigurasi kriptografi kunci. Arti dari spesifikasi kunci berbeda dengan tipe kunci.

  • AWS KMSkunciSpesifikasi kunci menentukan apakah kunci KMS simetris atau asimetris. Ini juga menentukan jenis bahan utamanya, dan algoritma yang didukungnya. Anda memilih spesifikasi kunci ketika Anda membuat kunci KMS, dan Anda tidak dapat mengubahnya. Spesifikasi kunci default, SYMMETRIC_DEFAULT, mewakili kunci enkripsi simetris 256-bit.

    catatan

    Kunci KeySpec untuk KMS dikenal sebagai aCustomerMasterKeySpec. CustomerMasterKeySpecParameter CreateKeyoperasi tidak digunakan lagi. Sebagai gantinya, gunakan KeySpec parameter, yang bekerja dengan cara yang sama. Untuk mencegah perubahan yang melanggar, respons CreateKey dan DescribeKeyoperasi sekarang mencakup keduanya KeySpec dan CustomerMasterKeySpec anggota dengan nilai yang sama.

    Untuk daftar spesifikasi kunci dan membantu memilih spesifikasi kunci, lihat Memilih spesifikasi kunci. Untuk menemukan spesifikasi kunci kunci KMS, gunakan DescribeKeyoperasi, atau lihat tab konfigurasi Kriptografi pada halaman detail untuk kunci KMS di konsol. AWS KMS Untuk bantuan, lihat Melihat Kunci.

    Untuk membatasi spesifikasi kunci yang dapat digunakan prinsipal saat membuat kunci KMS, gunakan kunci kondisi kms:. KeySpec Anda juga dapat menggunakan tombol kms:KeySpec kondisi untuk mengizinkan prinsipal memanggil AWS KMS operasi hanya pada kunci KMS dengan spesifikasi kunci tertentu. Misalnya, Anda dapat menolak izin untuk menjadwalkan penghapusan kunci KMS apa pun dengan spesifikasi kunci. RSA_4096

  • Data keys (GenerateDataKey) — Spesifikasi kunci menentukan panjang kunci data AES.

  • Data keys pairs (GenerateDataKeyPair) — Spesifikasi key pair menentukan jenis material kunci dalam data key pair.

Penggunaan kunci

Penggunaan kunci adalah properti yang menentukan operasi kriptografi yang didukung kunci. Kunci KMS dapat memiliki penggunaan kunciENCRYPT_DECRYPT,SIGN_VERIFY, atauGENERATE_VERIFY_MAC. Setiap kunci KMS hanya dapat memiliki satu penggunaan kunci. Menggunakan kunci KMS untuk lebih dari satu jenis operasi membuat produk dari kedua operasi lebih rentan terhadap serangan.

Untuk bantuan memilih penggunaan kunci untuk kunci KMS Anda, lihatMemilih penggunaan kunci. Untuk menemukan penggunaan kunci kunci KMS, gunakan DescribeKeyoperasi, atau pilih tab konfigurasi Kriptografi pada halaman detail untuk kunci KMS di konsol. AWS KMS Untuk bantuan, lihat Melihat Kunci.

Enkripsi amplop

Saat Anda mengenkripsi data, data Anda terlindungi, tetapi Anda harus melindungi kunci enkripsi. Salah satu strateginya adalah dengan mengenkripsikannya. Enkripsi amplop adalah praktik mengenkripsi data plaintext dengan kunci data, kemudian mengenkripsi kunci data di bawah kunci lain.

Anda bahkan dapat mengenkripsi kunci enkripsi data di bawah kunci enkripsi lain, dan mengenkripsi kunci enkripsi tersebut di bawah kunci enkripsi lain. Namun pada akhirnya, satu kunci harus tetap dalam plaintext sehingga Anda dapat mendekripsi kunci dan data Anda. Kunci enkripsi kunci plaintext tingkat atas ini dikenal sebagai kunci root.

Enkripsi amplop

AWS KMSmembantu Anda melindungi kunci enkripsi Anda dengan menyimpan dan mengelolanya dengan aman. Kunci root yang disimpan diAWS KMS, yang dikenal sebagai AWS KMS keys, tidak pernah membiarkan modul keamanan perangkat keras yang divalidasi AWS KMS FIPS tidak terenkripsi. Untuk menggunakan kunci KMS, Anda harus meneleponAWS KMS.

Enkripsi amplop dengan beberapa kunci enkripsi kunci

Enkripsi amplop menawarkan beberapa manfaat:

  • Melindungi kunci data

    Saat mengenkripsi kunci data, Anda tidak perlu khawatir menyimpan kunci data terenkripsi, karena kunci data terlindung secara inheren oleh enkripsi. Anda dapat menyimpan kunci data terenkripsi dengan aman di samping data yang dienkripsi.

  • Mengenkripsi data yang sama di bawah beberapa kunci

    Operasi enkripsi dapat sangat memakan waktu, terutama ketika data yang dienkripsi adalah objek berukuran besar. Alih-alih mengenkripsi ulang data mentah beberapa kali dengan kunci yang berbeda, Anda dapat mengenkripsi ulang hanya kunci data yang melindungi data mentah.

  • Menggabungkan kekuatan beberapa algoritma

    Secara umum, algoritme kunci simetris lebih cepat dan menghasilkan ciphertext yang lebih kecil dari algoritme kunci publik. Namun algoritme kunci publik memberikan pemisahan peran yang melekat dan manajemen kunci yang lebih mudah. Enkripsi amplop memungkinkan Anda menggabungkan kekuatan masing-masing strategi.

Konteks enkripsi

Semua operasi AWS KMS kriptografi dengan kunci KMS enkripsi simetris menerima konteks enkripsi, satu set opsional pasangan nilai kunci non-rahasia yang dapat berisi informasi kontekstual tambahan tentang data. AWS KMSmenggunakan konteks enkripsi sebagai data otentikasi tambahan (AAD) untuk mendukung enkripsi yang diautentikasi.

Ketika Anda menyertakan konteks enkripsi dalam permintaan enkripsi, itu terikat pada ciphertext secara kriptografis sehingga konteks enkripsi yang sama diperlukan untuk mendekripsi (atau mendekripsi dan mengenkripsi ulang) data. Jika konteks enkripsi yang disediakan dalam permintaan dekripsi tidak tepat, cocok huruf besar/kecil, permintaan dekripsi gagal. Hanya urutan pasangan kunci-nilai dalam konteks enkripsi yang dapat bervariasi.

catatan

Anda tidak dapat menentukan konteks enkripsi dalam operasi kriptografi dengan kunci KMS asimetris atau kunci KMS HMAC. Algoritma asimetris dan algoritma MAC tidak mendukung konteks enkripsi.

Konteks enkripsi tidak rahasia dan tidak dienkripsi. Konteks enkripsi muncul dalam plaintext di Log AWS CloudTrail, sehingga Anda dapat menggunakannya untuk mengidentifikasi dan mengategorikan operasi kriptografi Anda. Konteks enkripsi Anda tidak boleh menyertakan informasi sensitif. Sebaiknya konteks enkripsi Anda menjelaskan data yang dienkripsi atau didekripsi. Misalnya, ketika mengenkripsi file, Anda mungkin menggunakan bagian dari jalur file sebagai konteks enkripsi.

"encryptionContext": { "department": "10103.0" }

Misalnya, saat mengenkripsi volume dan snapshot yang dibuat dengan operasi Amazon Elastic Block Store (Amazon EBS) CreateSnapshot, Amazon EBS menggunakan ID volume sebagai nilai konteks enkripsi.

"encryptionContext": { "aws:ebs:id": "vol-abcde12345abc1234" }

Anda juga dapat menggunakan konteks enkripsi untuk memperbaiki atau membatasi akses ke AWS KMS keys akun Anda. Anda dapat menggunakan konteks enkripsi sebagai batasan dalam hibah dan sebagai kondisi dalam pernyataan kebijakan.

Untuk mempelajari cara menggunakan konteks enkripsi untuk melindungi integritas data terenkripsi, lihat posting Cara Melindungi Integritas Data Terenkripsi Anda dengan Menggunakan AWS Key Management Service dan EncryptionContext di Blog Keamanan. AWS

Lebih lanjut tentang konteks enkripsi.

AWS KMSmemberlakukan aturan berikut untuk kunci dan nilai konteks enkripsi.

  • Kunci dan nilai dalam pasangan konteks enkripsi harus berupa string literal sederhana. Jika Anda menggunakan jenis yang berbeda, seperti bilangan bulat atau float, AWS KMS menafsirkannya sebagai string.

  • Kunci dan nilai dalam konteks enkripsi dapat mencakup karakter Unicode. Jika konteks enkripsi menyertakan karakter yang tidak diizinkan dalam kebijakan utama atau kebijakan IAM, Anda tidak akan dapat menentukan konteks enkripsi dalam kunci kondisi kebijakan, seperti kms:EncryptionContext:context-keydan kms:EncryptionContextKeys. Untuk detail tentang aturan dokumen kebijakan utama, lihatFormat kebijakan utama. Untuk detail tentang aturan dokumen kebijakan IAM, lihat Persyaratan nama IAM di Panduan Pengguna IAM.

Konteks enkripsi digunakan terutama untuk memverifikasi integritas dan keaslian. Tetapi Anda juga dapat menggunakan konteks enkripsi untuk mengontrol akses ke enkripsi simetris AWS KMS keys dalam kebijakan utama dan kebijakan IAM.

Kunci EncryptionContextKeys kondisi kms:EncryptionContext: dan kms: mengizinkan (atau menolak) izin hanya jika permintaan menyertakan kunci konteks enkripsi tertentu atau pasangan kunci-nilai.

Misalnya, pernyataan kebijakan kunci berikut memungkinkan RoleForExampleApp peran untuk menggunakan kunci KMS dalam Decrypt operasi. Ini menggunakan kunci kms:EncryptionContext:context-key kondisi untuk mengizinkan izin ini hanya ketika konteks enkripsi dalam permintaan menyertakan pasangan konteks AppName:ExampleApp enkripsi.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Untuk informasi lebih lanjut tentang kunci kondisi konteks enkripsi, lihat Kunci kondisi untuk AWS KMS.

Saat Anda membuat hibah, Anda dapat menyertakan batasan hibah yang menetapkan kondisi untuk izin hibah. AWS KMS mendukung dua batasan hibah, EncryptionContextEquals dan EncryptionContextSubset, yang keduanya melibatkan konteks enkripsi dalam permintaan untuk operasi kriptografi. Ketika Anda menggunakan batasan hibah ini, izin dalam hibah hanya efektif ketika konteks enkripsi dalam permintaan untuk operasi kriptografi memenuhi persyaratan batasan hibah.

Misalnya, Anda dapat menambahkan batasan EncryptionContextEquals hibah ke hibah yang memungkinkan operasi. GenerateDataKey Dengan batasan ini, hibah memungkinkan operasi hanya ketika konteks enkripsi dalam permintaan cocok huruf besar/kecil untuk konteks enkripsi dalam batasan hibah.

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}

Permintaan seperti berikut dari prinsipal penerima hibah akan memenuhi batasan EncryptionContextEquals.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test

Untuk detail tentang batasan hibah, lihat Menggunakan batas pemberian izin. Untuk informasi mendetail tentang hibah, lihat Hibah di AWS KMS.

AWS KMSdigunakan AWS CloudTrail untuk mencatat konteks enkripsi sehingga Anda dapat menentukan kunci dan data KMS mana yang telah diakses. Entri log menunjukkan dengan tepat kunci KMS mana yang digunakan untuk mengenkripsi atau mendekripsi data tertentu yang direferensikan oleh konteks enkripsi dalam entri log.

penting

Karena konteks enkripsi dicatat, konteks tidak boleh berisi informasi sensitif.

Untuk menyederhanakan penggunaan konteks enkripsi ketika Anda memanggil operasi Decrypt atau ReEncrypt, Anda dapat menyimpan konteks enkripsi bersama data terenkripsi. Sebaiknya Anda hanya menyimpan konteks enkripsi yang mencukupi untuk membantu Anda membuat konteks enkripsi penuh ketika Anda membutuhkannya untuk enkripsi atau dekripsi.

Misalnya, jika konteks enkripsi sepenuhnya memenuhi syarat untuk file, simpan hanya bagian dari jalur tersebut dengan konten file terenkripsi. Kemudian, ketika Anda membutuhkan konteks enkripsi penuh, rekonstruksi konteks dari fragmen yang disimpan. Jika seseorang merusak file, seperti mengganti namanya atau memindahkannya ke lokasi lain, perubahan nilai konteks enkripsi dan permintaan dekripsi akan gagal.

Kebijakan kunci

Saat Anda membuat kunci KMS, Anda menentukan siapa yang dapat menggunakan dan mengelola kunci KMS itu. Izin ini disertakan dalam dokumen yang disebut kebijakan kunci. Anda dapat menggunakan kebijakan kunci untuk menambah, menghapus, atau mengubah izin kapan saja untuk kunci yang dikelola pelanggan. Tetapi Anda tidak dapat mengedit kebijakan kunci untuk fileKunci yang dikelola AWS. Untuk informasi selengkapnya, lihat Kebijakan utama di AWS KMS.

Pemberian Izin

Hibah adalah instrumen kebijakan yang memungkinkan AWS prinsipal untuk digunakan AWS KMS keys dalam operasi kriptografi. Hal ini juga dapat membiarkan mereka melihat kunci KMS (DescribeKey) dan membuat dan mengelola hibah. Saat mengotorisasi akses ke kunci KMS, hibah dipertimbangkan bersama dengan kebijakan utama dan kebijakan IAM. Hibah sering digunakan untuk izin sementara karena Anda dapat membuatnya, menggunakan izinnya, dan menghapusnya tanpa mengubah kebijakan kunci atau kebijakan IAM. Karena hibah bisa sangat spesifik, serta mudah dibuat dan dicabut, hibah tersebut sering digunakan untuk memberikan izin sementara atau izin yang lebih terperinci.

Untuk informasi mendetail tentang hibah, termasuk terminologi hibah, lihat Hibah di AWS KMS.

Mengaudit penggunaan kunci KMS

Anda dapat menggunakan AWS CloudTrail untuk mengaudit penggunaan kunci. CloudTrail membuat file log yang berisi riwayat panggilan AWS API dan peristiwa terkait untuk akun Anda. File log ini mencakup semua permintaan AWS KMS API yang dibuat dengan Konsol Manajemen AWS, AWS SDK, dan alat baris perintah. File log juga mencakup permintaan untuk AWS KMS yang dibuat oleh layanan AWS atas nama Anda. Anda dapat menggunakan file log ini untuk menemukan informasi penting, termasuk kapan kunci KMS digunakan, operasi yang diminta, identitas pemohon, dan alamat IP sumber. Untuk informasi selengkapnya, lihat Logging dengan AWS CloudTrail dan Panduan Pengguna AWS CloudTrail.

Infrastruktur manajemen kunci

Praktik umum dalam kriptografi adalah mengenkripsi dan mendekripsi dengan algoritme yang tersedia untuk umum dan peer-review seperti AES (Advanced Encryption Standard) dan kunci rahasia. Salah satu masalah utama dengan kriptografi adalah ia sangat sulit untuk menyimpan rahasia kunci. Ini biasanya pekerjaan infrastruktur manajemen kunci (KMI). AWS KMSmengoperasikan infrastruktur utama untuk Anda. AWS KMSmembuat dan menyimpan kunci root Anda dengan aman, disebut AWS KMS keys. Untuk informasi lebih lanjut tentang bagaimana AWS KMS beroperasi, lihat Detail Kriptografi AWS Key Management Service.