Panduan ini menunjukkan cara mengimpor kunci kriptografis ke Cloud Key Management Service sebagai versi kunci baru menggunakan metode impor quantum-safe. Pendekatan ini membantu melindungi kunci selama transit dari serangan "kumpulkan sekarang, dekripsi nanti" (HNDL) oleh komputer kuantum di masa mendatang.
Impor kunci yang aman dari serangan kuantum menggunakan alat kriptografi post-quantum (PQC) standar, termasuk mekanisme enkapsulasi kunci (KEM) dan enkripsi kunci publik hibrida (HPKE) untuk melindungi kunci Anda selama dalam pengiriman.
Impor kunci quantum-safe didukung untuk kunci yang didukung software (tingkat perlindungan SOFTWARE).
Sebelum memulai
Sebelum dapat mengimpor kunci, Anda harus menyiapkan project, sistem lokal, dan materi kunci itu sendiri.
Menyiapkan project
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengimpor kunci, minta administrator untuk memberi Anda peran IAM berikut pada ring kunci:
-
Untuk mengimpor hanya ke kunci yang ada:
Cloud KMS Importer (
roles/cloudkms.importer) -
Untuk mengimpor ke kunci baru:
Admin Cloud KMS (
roles/cloudkms.admin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menyiapkan sistem lokal
Anda memerlukan library kriptografi di sistem lokal yang mendukung alat kriptografi pasca-kuantum (PQC), termasuk mekanisme enkapsulasi kunci (KEM) dan enkripsi kunci publik hibrida (HPKE). Anda dapat menggunakan Tink, OpenSSL, atau library kriptografi lain yang mendukung hal berikut:
- Enkripsi kunci publik hibrida (HPKE)
- Salah satu algoritma KEM berikut:
ML-KEM-768ML-KEM-1024X-WING(gabungan dariML-KEM-768danX25519)
- Fungsi derivasi kunci (KDF)
HKDF-SHA256 - Enkripsi yang diautentikasi dengan data terkait (AEAD) menggunakan algoritma
AES-256-GCM
Siapkan kunci
Pastikan algoritma dan panjang kunci Anda didukung. Semua versi kunci harus memiliki tingkat perlindungan yang sama
(SOFTWARE).
Buat kunci target dan key ring
Saat Anda mengimpor materi kunci, materi kunci tersebut akan menjadi versi kunci baru pada kunci yang ada. Kunci ini disebut kunci target. Target key ring dan target kunci harus ada sebelum Anda dapat mengimpor materi kunci.
Ikuti langkah-langkah berikut untuk membuat kunci kosong yang didukung software di ring kunci baru menggunakan Google Cloud CLI atau konsol Google Cloud .
Konsol
Di konsol Google Cloud , buka halaman Key Management.
Klik Create key ring.
Di kolom Key ring name, masukkan nama untuk key ring.
Di bagian Jenis lokasi, pilih jenis lokasi dan lokasi.
Klik Create. Halaman Buat kunci akan terbuka.
Di kolom Key name, masukkan nama untuk kunci Anda.
Untuk Tingkat perlindungan, pilih Software.
Untuk Key material, pilih Imported key, lalu klik Continue. Tindakan ini mencegah pembuatan versi kunci awal.
Tetapkan Tujuan dan Algoritma untuk kunci, lalu klik Lanjutkan.
Opsional: Jika Anda ingin kunci ini hanya berisi versi kunci yang diimpor, pilih Batasi versi kunci hanya untuk impor. Hal ini mencegah Anda secara tidak sengaja membuat versi kunci baru di Cloud KMS.
Opsional: Untuk kunci yang diimpor, rotasi otomatis dinonaktifkan secara default. Untuk mengaktifkan rotasi otomatis, pilih nilai dari kolom Periode rotasi kunci.
Jika Anda mengaktifkan rotasi otomatis, versi kunci baru akan dibuat di Cloud KMS, dan versi kunci yang diimpor tidak akan lagi menjadi versi kunci default setelah rotasi.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade ke versi terbaru Google Cloud CLI terlebih dahulu.
Buat key ring target. Pilih lokasi yang kompatibel dengan tingkat perlindungan yang ingin Anda gunakan. Untuk mengetahui informasi selengkapnya tentang lokasi yang didukung, lihat lokasi Cloud KMS.
gcloud kms keyrings create KEY_RING \ --location LOCATION
Anda dapat mempelajari lebih lanjut cara membuat key ring.
Buat kunci target menggunakan perintah
kms keys createdengan flag--skip-initial-version-creation. Tindakan ini akan membuat kunci tanpa versi kunci awal sehingga materi kunci yang diimpor adalah versi1. Gunakan flag--import-onlyuntuk mencegah Cloud KMS membuat materi kunci untuk versi kunci baru. Dengan setelan flag ini, versi kunci baru untuk kunci ini harus diimpor. Kunci yang dibuat sebagai--import-onlyharus dirotasi secara manual.gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level SOFTWARE \ --skip-initial-version-creation \ --import-only
Ganti kode berikut:
KEY_NAME: nama yang ingin Anda gunakan untuk kunci.LOCATION: lokasi key ring.KEY_RING: key ring tempat Anda ingin membuat kunci.PURPOSE: tujuan yang ingin Anda gunakan untuk kunci.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk mengetahui informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Buat key ring baru:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"Lihat dokumentasi API
KeyRing.createuntuk mengetahui informasi selengkapnya.Buat kunci kosong hanya untuk impor:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "importOnly": "true", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"Lihat dokumentasi API
CryptoKey.createuntuk mengetahui informasi selengkapnya.
Key ring dan kunci kini ada, tetapi kunci tidak berisi materi kunci, tidak memiliki versi, dan tidak aktif. Selanjutnya, Anda membuat tugas impor.
Buat tugas impor
Tugas impor menentukan karakteristik kunci yang diimpornya, termasuk tingkat perlindungan dan metode impor.
Impor kunci quantum-safe hanya didukung untuk tingkat perlindungan SOFTWARE.
Pilih salah satu metode impor quantum-safe berikut:
HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCMHPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCMHPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM
gcloud
Jalankan perintah berikut untuk membuat tugas impor dengan metode impor yang quantum-safe:
gcloud kms import-jobs create IMPORT_JOB \
--location LOCATION \
--keyring KEY_RING \
--import-method IMPORT_METHOD \
--protection-level software
Ganti kode berikut:
IMPORT_JOB: nama unik yang akan digunakan untuk tugas impor.LOCATION: lokasi key ring tempat Anda membuat kunci target.KEY_RING: nama key ring tempat Anda membuat kunci target.IMPORT_METHOD: metode impor quantum-safe yang ingin Anda gunakan—misalnya,hpke-kem-xwing-hkdf-sha256-aes-256-gcm.
REST
Panggil metode keyRings.importJobs.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs?import_job_id=IMPORT_JOB" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"import_method": "IMPORT_METHOD", "protection_level": "SOFTWARE"}'
Ganti kode berikut:
PROJECT_ID: ID project Cloud KMS Anda.LOCATION: lokasi key ring tempat Anda membuat kunci target.KEY_RING: nama key ring tempat Anda membuat kunci target.IMPORT_JOB: nama unik yang akan digunakan untuk tugas impor.TOKEN: token untuk mengautentikasi permintaan.IMPORT_METHOD: metode impor quantum-safe yang ingin Anda gunakan—misalnya,HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM.
Periksa status tugas impor
Status awal untuk tugas impor adalah PENDING_GENERATION. Jika statusnya adalah
ACTIVE, Anda dapat menggunakannya untuk mengimpor kunci.
Masa berlaku tugas impor akan berakhir setelah tiga hari. Jika masa berlaku tugas impor telah berakhir, Anda harus membuat tugas baru.
Anda dapat memeriksa status tugas impor menggunakan Google Cloud CLI, konsolGoogle Cloud , atau Cloud Key Management Service API.
Konsol
Buka halaman Key Management di konsol Google Cloud .
Klik nama key ring yang berisi tugas impor Anda.
Klik tab Pekerjaan Impor di bagian atas halaman.
Status akan terlihat di bagian Status di samping nama tugas impor Anda.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade ke versi terbaru Google Cloud CLI terlebih dahulu.
Saat tugas impor aktif, Anda dapat menggunakannya untuk mengimpor kunci. Proses ini mungkin memerlukan waktu beberapa menit. Gunakan perintah ini untuk memverifikasi bahwa tugas impor sedang aktif. Gunakan lokasi dan keyring tempat Anda membuat tugas impor.
gcloud kms import-jobs describe IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --format="value(state)"
Outputnya mirip dengan hal berikut ini:
state: ACTIVE
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Cloud KMS Java SDK.