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) yang terisolasi. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Sebelum mengimpor atau mengekspor kunci, Anda harus memiliki izin yang diperlukan dan menyiapkan lingkungan.
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 menghapus resourceKeyExport.
Menyiapkan lingkungan Anda
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 dari kunci misalnya: `EDCH_P521_AES256` .
- KEY_IMPORT_NAME: nama resource
Terapkan konten file YAML ke KMS dan buat resource
KeyImport:kubectl apply -f FILENAME.yamlGanti FILENAME dengan nama file YAML.
Dengan kunci publik dari pasangan kunci yang dibuat secara internal, KMS memperbarui status resource
KeyImportmenjadiAwaitingKeyToImport. Untuk melanjutkan, Anda harus melihat status resource dan mendapatkan kunci publik yang dibuat KMS.Untuk melihat status resource
KeyImportdan mendapatkan kunci publik yang dibuat 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 dibuat KMS. Salin kunci publik, lalu tambahkan ke resource
KeyExportpada langkah berikut.- 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 dari 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 konten 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
KeyExportresource — misalnya,key-export-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:45:57Z Message: key successfully exported Observed Generation: 1 Reason: KeyExportCompleted Status: True Type: Ready Exported Key: EXPORTED_KEYEXPORTED_KEY mewakili metadata kunci yang diekspor. Salin konten di EXPORTED_KEY untuk melanjutkan ke langkah berikutnya.
- KEY_EXPORT_NAME: nama
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 konten 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 mewakili jenis kunci yang Anda impor, antara kunci AEAD dan Penandatanganan.