Merotasi kunci root

Dokumen ini menjelaskan cara merotasi kunci root. Jika kunci root Anda disusupi, atau jika Anda memilih untuk merotasi kunci root secara berkala guna meningkatkan keamanan, Anda dapat merotasi kunci ke kunci root baru menggunakan resource RotationJob.

Merotasi kunci root akan membuat kunci root baru, yang menjadi kunci utama dan menggabungkan semua kunci non-root. Anda tidak dapat menghapus kunci root; rotasi adalah satu-satunya cara untuk menggantinya. Lihat Jenis kunci root untuk mengetahui informasi selengkapnya tentang kunci root.

Lihat ringkasan KMS API untuk mengetahui detail tentang KMS API dan Key Management Service KRM API untuk melihat definisi API lengkap.

Sebelum memulai

Sebelum merotasi kunci root, Anda harus memiliki izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran IAM

Untuk merotasi kunci, hubungi Admin Org IAM Anda untuk meminta peran KMS Rotation Job Admin (kms-rotationjob-admin).

Menyiapkan lingkungan Anda

Merotasi kunci root

Untuk merotasi kunci root, Anda harus mengidentifikasi nama resource kunci root yang digunakan terlebih dahulu. Anda dapat menemukan informasi ini dengan memeriksa resource AEADKey apa pun dalam project Anda, karena semua kunci ini dilindungi oleh kunci root yang sama.

Buat kunci root baru dan rotasikan kunci Anda:

  1. Cantumkan resource AEADKey dalam project Anda:

    kubectl get AEADKey -n PROJECT
    

    Ganti PROJECT dengan nama namespace project Anda.

    Dari output, catat nama AEADKey mana pun.

  2. Dapatkan ROOT_KEY_RESOURCE_NAME dari AEADKey. Perintah berikut mengekstrak dan memformat ulang ID kunci root yang diperlukan untuk resource RotationJob:

    kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'
    

    Ganti kode berikut:

    • KEY_NAME: nama AEADKey apa pun di project Anda
    • PROJECT: nama namespace project Anda

    Outputnya mungkin akan terlihat seperti berikut:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Buat file YAML, lalu tambahkan resource RotationJob dan konten berikut:

    apiVersion: "kms.gdc.goog/v1"
    kind: RotationJob
    metadata:
      name: ROTATION_NAME
    spec:
      rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
    

    Ganti kode berikut:

    • ROTATION_NAME: nama untuk tugas rotasi — misalnya: rotate-job1.
    • ROOT_KEY_RESOURCE_NAME: output yang Anda peroleh pada langkah sebelumnya
  4. Terapkan konten file YAML ke KMS:

    kubectl apply -f FILENAME.yaml
    

    Ganti FILENAME dengan nama file YAML.

    Setelah menjalankan perintah, KMS akan membuat kunci root baru dan merotasi setiap kunci dengan kunci root baru.

  5. Untuk memverifikasi bahwa rotasi kunci root telah selesai, jalankan perintah berikut:

    kubectl get rotationjobs ROTATION_NAME
    

    Ganti ROTATION_NAME dengan nama tugas rotasi.

    Setelah menjalankan perintah, Anda akan melihat status tugas rotasi sebagai Completed jika berhasil.