Membuat dan menghapus kunci

Sistem Pengelolaan Kunci (KMS) mendukung berbagai jenis kunci untuk operasi kriptografi seperti enkripsi, dekripsi, penandatanganan, dan verifikasi. Lihat Kunci yang didukung untuk mengetahui informasi selengkapnya tentang jenis dan algoritma kunci yang tersedia.

Halaman ini ditujukan untuk audiens dalam grup operator aplikasi, seperti tim DevOps, saat melakukan operasi pengelolaan kunci dalam lingkungan air-gapped Google Distributed Cloud (GDC). Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.

Sebelum memulai

Untuk membuat dan mengelola kunci, minta izin yang diperlukan dan siapkan lingkungan Anda.

Meminta peran IAM

Hubungi Admin IAM Organisasi Anda untuk memberi Anda peran berikut di namespace project Anda:

  • KMS Creator (kms-creator): melihat dan membuat resource AEADKey dan SigningKey dalam project.
  • KMS Admin (kms-admin): melihat, membuat, dan menghapus kunci dalam project.

Menyiapkan lingkungan Anda

  1. Instal dan inisialisasi gdcloud CLI, jika Anda belum melakukannya.

  2. Lakukan autentikasi ke GDC menggunakan gdcloud CLI. Proses ini memerlukan sertifikat Certificate Authority (CA) untuk konsol organisasi Anda:

    1. Download sertifikat CA:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Ganti kode berikut:

      • CONSOLE_URL: URL konsol organisasi Anda (seperti console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: jalur lengkap tempat Anda ingin menyimpan file sertifikat CA (seperti /tmp/my-org-ca.crt)
    2. Login menggunakan sertifikat CA yang didownload:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. Dapatkan file kubeconfig untuk server Management API menggunakan gdcloud CLI.

Membuat kunci

Anda dapat membuat kunci untuk berbagai tujuan kriptografi.

Membuat kunci AEAD

Untuk melakukan enkripsi yang diautentikasi dengan data terkait (AEAD), buat resource AEADKey di namespace project Anda:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: AES_256_GCM
EOF

Ganti kode berikut:

  • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API
  • KEY_NAME: nama untuk kunci AEAD yang ingin Anda buat—misalnya: key-1
  • PROJECT: nama project—misalnya: kms-test1

Membuat kunci penandatanganan

Untuk menandatangani dan memverifikasi data, buat resource SigningKey di namespace project Anda:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: EC_SIGN_P384_SHA384
EOF

Ganti kode berikut:

  • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API
  • KEY_NAME: nama untuk kunci penandatanganan yang ingin Anda buat—misalnya: key-1
  • PROJECT: nama project—misalnya: kms-test1

Memverifikasi pembuatan kunci

Setelah membuat kunci, verifikasi bahwa operasi berhasil dan resource kunci sudah siap.

Memverifikasi pembuatan kunci AEAD

Periksa status kunci AEAD:

kubectl --kubeconfig KUBECONFIG_PATH \
  get aeadkey KEY_NAME \
  --namespace=PROJECT -o yaml

Ganti kode berikut:

  • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API
  • KEY_NAME: nama kunci AEAD yang akan diverifikasi—misalnya: key-1
  • PROJECT: nama project—misalnya: kms-test1

Jika pembuatan kunci berhasil, periksa output untuk menemukan kondisi Ready dengan status True.

Memverifikasi pembuatan kunci penandatanganan

Periksa status kunci penandatanganan:

kubectl --kubeconfig KUBECONFIG_PATH \
  get signingkey KEY_NAME \
  --namespace=PROJECT -o yaml

Ganti kode berikut:

  • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API
  • KEY_NAME: nama kunci penandatanganan yang akan diverifikasi—misalnya: key-1
  • PROJECT: nama project—misalnya: kms-test1

Jika pembuatan kunci berhasil, periksa output untuk menemukan kondisi Ready dengan status True.

Menghapus kunci

Untuk menghapus resource kunci, tentukan jenis dan nama kunci.

  1. Hapus kunci di namespace project:

    kubectl --kubeconfig KUBECONFIG_PATH \
      delete KEY_PRIMITIVE KEY_NAME \
      --namespace=PROJECT
    

    Ganti kode berikut:

    • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API
    • KEY_PRIMITIVE: jenis resource kunci yang ingin Anda hapus, seperti aeadkey untuk kunci AEAD atau signingkey untuk kunci penandatanganan
    • KEY_NAME: nama kunci yang ingin Anda hapus—misalnya: key-1.
    • PROJECT: nama project—misalnya: kms-test1.
  2. Verifikasi penghapusan kunci dengan mencoba mengambil kunci:

    kubectl --kubeconfig KUBECONFIG_PATH \
      get KEY_PRIMITIVE  KEY_NAME \
      --namespace=PROJECT
    

    Jika kunci berhasil dihapus, perintah tidak akan menampilkan objek kunci.