Dokumen ini menunjukkan cara mengimpor dan mengekspor kunci Key Management System (KMS). Operasi ini menggunakan antarmuka command line (CLI) kubectl dan berinteraksi dengan resource Kubernetes berikut:
Untuk melihat detail selengkapnya tentang resource ini, lihat Ringkasan KMS API.
Lihat bagian Kunci yang didukung dalam dokumen Sistem pengelolaan kunci untuk melihat daftar lengkap dan detail kunci yang didukung KMS.
Dokumen ini ditujukan untuk audiens dalam grup operator aplikasi saat melakukan operasi pengelolaan kunci dalam Google Distributed Cloud (GDC) dengan air gap. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi audiens untuk GDC yang terisolasi dari jaringan.
Sebelum memulai
Sebelum mengimpor atau mengekspor kunci, Anda harus memiliki izin yang diperlukan dan menyiapkan lingkungan Anda.
Meminta peran IAM
Hubungi Admin IAM Organisasi Anda untuk meminta peran berikut di project Anda:
- Admin Impor Kunci KMS (
kms-keyimport-admin): membuat, memperbarui, dan menghapus resourceKeyImport. - Admin Ekspor Kunci KMS (
kms-keyexport-admin): membuat, memperbarui, dan menghapusKeyExportresource.
Menyiapkan lingkungan Anda
Download dan instal gdcloud CLI, jika Anda belum melakukannya.
Instal
kubectlCLI, seperti yang dijelaskan dalam Menginstal komponen.Buat file kubeconfig untuk mengonfigurasi akses
kubectl.
Mengimpor kunci yang diekspor
Untuk mengimpor kunci yang diekspor, selesaikan langkah-langkah berikut:
Buat file YAML, lalu tambahkan resource
KeyImportsebagai nilai objekkind:apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISMGanti variabel berikut:
- KEY_IMPORT_NAME: nama resource
KeyImport misalnya:key-import-test. - PROJECT: nama namespace project misalnya:
kms-test1. - MECHANISM: mekanisme berbagi kunci misalnya: `EDCH_P521_AES256` .
- KEY_IMPORT_NAME: nama resource
Terapkan isi file YAML ke KMS dan buat resource
KeyImport:kubectl apply -f FILENAME.yamlGanti FILENAME dengan nama file YAML.
Dengan kunci publik pasangan kunci yang dibuat secara internal, KMS memperbarui status resource
KeyImportmenjadiAwaitingKeyToImport. Untuk melanjutkan, Anda perlu melihat status resource dan mendapatkan kunci publik yang dibuat KMS.Untuk melihat status resource
KeyImportdan mendapatkan kunci publik yang dihasilkan KMS, jalankan perintah berikut:kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECTGanti variabel berikut:
- KEY_IMPORT_NAME: nama resource
KeyImport— misalnya,key-import-test. - PROJECT: nama namespace project misalnya:
kms-test1.
Setelah menjalankan perintah, Anda akan melihat output yang mirip dengan berikut ini:
... Status: Conditions: Last Transition Time: 2022-12-14T20:43:50Z Message: waiting for user to provide KeyToImport Observed Generation: 1 Reason: AwaitingKeyToImport Status: False Type: Ready Imported Key Ref: Kind: KeyImport Name: key-import-test Peer Context: Private Key: Public Key: PUBLIC_KEY Events: <none>Nilai PUBLIC_KEY mewakili kunci publik yang dihasilkan KMS. Salin kunci publik, lalu tambahkan ke resource
KeyExportpada langkah berikutnya.- KEY_IMPORT_NAME: nama resource
Buat file YAML lain, tambahkan resource
KeyExportsebagai nilai objekkind, dan konten berikut:apiVersion: "kms.gdc.goog/v1" kind: KeyExport metadata: name: KEY_EXPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM publicKey: PUBLIC_KEY keyToExport: kind: KEY_PRIMITIVE name: KEY_NAMEGanti variabel berikut:
- KEY_EXPORT_NAME: nama resource
KeyExport misalnya:key-export-test. PROJECT: nama namespace project misalnya:
kms-test1.MECHANISM: mekanisme berbagi kunci misalnya: `EDCH_P521_AES256` .
PUBLIC_KEY: kunci publik dari
keyImport.Status.PeerContext.PublicKey.KEY_PRIMITIVE: CRD kunci—misalnya, aeadkey dan signingkey.
KEY_NAME: nama kunci—misalnya,
key-1.
- KEY_EXPORT_NAME: nama resource
Terapkan isi file YAML ke KMS dan buat resource
KeyExport:kubectl apply -f FILENAME.yamlGanti FILENAME dengan nama file YAML.
Setelah menjalankan perintah, KMS akan memperbarui status resource
KeyExportdan membuat kunci yang diekspor. Untuk mendapatkan kunci yang diekspor, lihat status resource.Untuk melihat status resource, jalankan perintah berikut:
kubectl describe keyexport KEY_EXPORT_NAME --namespace PROJECTGanti variabel berikut:
- KEY_EXPORT_NAME: nama resource
KeyExport— misalnya,key-export-test. - PROJECT: nama namespace projectmisalnya:
kms-test1.
Setelah menjalankan perintah, Anda akan melihat output yang mirip dengan berikut ini:
... Status: Conditions: Last Transition Time: 2022-12-14T20:45:57Z Message: key successfully exported Observed Generation: 1 Reason: KeyExportCompleted Status: True Type: Ready Exported Key: EXPORTED_KEYEXPORTED_KEY merepresentasikan metadata kunci yang diekspor. Salin konten di EXPORTED_KEY untuk melanjutkan ke langkah berikutnya.
- KEY_EXPORT_NAME: nama resource
Edit file YAML yang berisi resource
KeyImport, lalu tambahkan konten yang Anda salin dari output dikeyexport.status.exportedkey.apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: key-import-test namespace: kms-test1 spec: context: mechanism: EDCH_P521_AES256 keyToImport: EXPORTED_KEYSetelah mengedit file YAML, terapkan isinya ke KMS:
kubectl apply -f FILENAME.yamlSetelah menjalankan perintah, KMS akan mengimpor kunci yang diekspor yang Anda berikan.
Untuk melihat detail kunci yang diimpor, jalankan perintah berikut:
kubectl get keyimport KEY_IMPORT_NAMEAnda akan melihat output yang mirip dengan berikut ini:
NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVEKEY_PRIMITIVE merepresentasikan jenis kunci yang Anda impor, antara kunci AEAD dan Penandatanganan.