Membuat dan mengelola instance Cloud HSM Single-tenant

Panduan ini menunjukkan cara membuat, menyediakan, dan mengelola instance Cloud HSM Single-tenant menggunakan Google Cloud CLI. Setelah membuat dan menyediakan instance, Anda dapat membuat dan menggunakan kunci di instance menggunakan konsol Google Cloud , Cloud Key Management Service API, gcloud CLI, dan library klien.

Membuat dan mengelola instance Anda memerlukan autentikasi kuorum. Saat membuat instance, Anda menentukan jumlah persetujuan anggota kuorum yang diperlukan untuk menjalankan operasi instance. Anggota kuorum Anda harus selalu memiliki setidaknya sejumlah ini kunci kontrol yang tersedia untuk mempertahankan kontrol administratif atas instance Anda.

Sebelum memulai

  1. Tinjau dan terapkan praktik terbaik Single-tenant Cloud HSM saat membuat dan memelihara instance Anda.
  2. Tentukan jumlah anggota kuorum yang ingin Anda mulai. Anggota kuorum tambahan dapat ditambahkan nanti, jika disetujui oleh anggota kuorum yang ada. Jumlah minimum anggota kuorum adalah tiga.
  3. Tentukan jumlah anggota kuorum yang diperlukan untuk menyetujui proposal. Anda tidak dapat mengubah nomor ini setelah instance dibuat. Anggota kuorum Anda harus selalu memiliki akses ke sejumlah kunci kontrol ini untuk mempertahankan instance. Ukuran kuorum minimum adalah dua. Ukuran kuorum yang diperlukan harus lebih kecil dari jumlah anggota kuorum.
  4. Tentukan cara Anda memastikan instance diperbarui tepat waktu. Anda harus memantau disableDate instance dan mengajukan, menyetujui, dan menjalankan operasi penggantian instance sebelum batas waktu untuk menghindari periode nonaktif yang tidak diinginkan.
  5. Untuk mendapatkan izin yang Anda perlukan guna membuat, mengelola, dan menggunakan instance Cloud HSM Single-tenant, minta administrator untuk memberi Anda peran IAM berikut pada project atau resource induk:

    • Buat proposal: Pengusul HSM tenant tunggal Cloud KMS (cloudkms.hsmSingleTenantProposer)
    • Menyetujui proposal: Anggota Kuorum HSM Single-Tenant Cloud KMS (cloudkms.hsmSingleTenantQuorumMember)
    • Menjalankan proposal: Cloud KMS single-tenant HSM Executor (cloudkms.hsmSingleTenantExecutor)
    • Buat kunci: Pembuat Kunci HSM Single-Tenant Cloud KMS (roles/cloudkms.hsmSingleTenantKeyCreator)

    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.

  6. Untuk setiap anggota kuorum, buat satu pasangan kunci RSA-2048 untuk autentikasi 2 langkah (2FA). Sebaiknya gunakan token fisik untuk kunci kontrol Anda. Ikuti standar organisasi Anda untuk membuat pasangan kunci RSA-2048 di token fisik.

    Untuk tujuan demonstrasi, panduan ini menggunakan OpenSSL untuk membuat tiga kunci RSA-2048 yang didukung software:

        openssl genrsa -out rsaprivate1.pem
        openssl genrsa -out rsaprivate2.pem
        openssl genrsa -out rsaprivate3.pem
    
        openssl rsa -in rsaprivate1.pem  -out rsapub1.pem --pubout
        openssl rsa -in rsaprivate2.pem  -out rsapub2.pem --pubout
        openssl rsa -in rsaprivate3.pem  -out rsapub3.pem --pubout
        

    Simpan kunci pribadi dengan aman; Anda memerlukannya untuk menyetujui proposal. Siapkan kunci publik; Anda akan memerlukannya untuk membuat instance Cloud HSM Single-tenant.

  7. Pilih lokasi Cloud KMS yang mendukung Cloud HSM tenant tunggal. Untuk mengidentifikasi lokasi yang kompatibel, lihat daftar lokasi di halaman Lokasi Cloud KMS. Untuk filter HSM support, pilih Supports single-tenant HSM.

Membuat dan menyediakan instance

Untuk membuat dan menyediakan instance Cloud HSM Single-tenant, Anda menggunakan gcloud CLI untuk membuat resource instance, membuat proposal untuk mendaftarkan kunci autentikasi Anda, lalu menyetujui dan menjalankan proposal tersebut.

Buat instance

Langkah ini harus diselesaikan oleh administrator instance dengan peran Pengusul HSM Properti tenant tunggal Cloud KMS.

  1. Tetapkan project default Anda.

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Anda.

  2. Buat instance Single-tenant Cloud HSM.

    gcloud kms single-tenant-hsm create --location=LOCATION \
        --total-approver-count=QUORUM_MEMBER_COUNT \
        --single-tenant-hsm-instance-id=INSTANCE_ID
    

    Ganti kode berikut:

    • LOCATION: lokasi tempat Anda ingin membuat instance—misalnya, us-central1.
    • QUORUM_MEMBER_COUNT: jumlah total anggota kuorum. Ini juga merupakan jumlah kunci kontrol yang Anda buat sebelumnya. Nilai minimum adalah 3. Kunci tambahan dapat ditambahkan nanti dengan persetujuan kuorum. Anda harus memiliki minimal satu anggota kuorum lebih banyak daripada ukuran kuorum yang diperlukan untuk memulihkan setelah kehilangan kunci kontrol.
    • INSTANCE_ID: ID yang ingin Anda gunakan untuk instance—misalnya, example-sthsm-instance. Anda dapat menghilangkan flag --single-tenant-hsm-instance-id agar Cloud HSM menetapkan UUID.
  3. Periksa status instance.

    gcloud kms single-tenant-hsm describe INSTANCE_ID \
        --location=LOCATION
    

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING_TWO_FACTOR_AUTH_REGISTRATION, Anda dapat menyediakan instance. Biasanya perlu waktu antara 5 dan 30 menit untuk mencapai status ini.

Menyediakan instance

  1. Buat proposal untuk mendaftarkan kunci autentikasi 2 langkah Anda menggunakan operasi register_two_factor_auth_keys. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS. Tidak seperti sebagian besar proposal, proposal register_two_factor_auth_keys memerlukan tantangan bertanda tangan dari semua anggota kuorum.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID 
    --single-tenant-hsm-instance-proposal-id PROPOSAL_ID
    --location LOCATION
    --operation-type register_two_factor_auth_keys
    --required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL
    --two-factor-public-key-pems=PUBLIC_KEY_LIST

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, set-up-2fa.
    • LOCATION: lokasi tempat Anda membuat instance.
    • MEMBERS_REQUIRED_FOR_APPROVAL: jumlah anggota kuorum yang harus menyetujui proposal sebelum operasi dapat dieksekusi. Nilai minimum adalah 2. Nilai ini tidak dapat diubah setelah instance disediakan. Anggota kuorum Anda harus selalu memiliki akses ke setidaknya sebanyak ini kunci kontrol untuk mempertahankan kontrol administratif instance.
    • PUBLIC_KEY_LIST: daftar yang dipisahkan koma dari jalur ke bagian kunci publik dari semua kunci kontrol Anda—misalnya, rsapub1.pem,rsapub2.pem,rsapub3.pem. Jumlah kunci publik dalam daftar ini harus cocok dengan nilai QUORUM_MEMBER_COUNT yang Anda gunakan sebelumnya.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, set-up-2fa.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal. Penyediaan instance Single-tenant Cloud HSM baru memerlukan tantangan bertanda tangan dari semua anggota kuorum.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap kunci, dekode tantangan menggunakan `basenc --base64url -d` dan tanda tangani dengan kunci pribadi yang sesuai.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Setelah proposal disetujui, gunakan perintah execute untuk menyelesaikan operasi register_two_factor_auth_keys. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID 
    --single_tenant_hsm_instance INSTANCE_ID --location LOCATION

    Ini adalah operasi yang berjalan lama yang menyediakan pengguna dan membuat cadangan. Instance akan menjadi ACTIVE setelah 20 hingga 30 menit.

  7. Setelah instance ACTIVE, lihat detail instance untuk melihat disableDate:

        gcloud kms single-tenant-hsm describe INSTANCE_ID 
    --location=LOCATION

    Perhatikan disableDate instance. Anda harus menyelesaikan operasi refresh_single_tenant_hsm_instance sebelum waktu ini, atau instance Anda akan dinonaktifkan.

Lihat instance

Pengguna dengan salah satu peran berikut dapat melihat daftar instance Cloud HSM Single-tenant dan statusnya:

  • Pengusul HSM tenant tunggal Cloud KMS
  • Anggota Kuorum HSM tenant tunggal Cloud KMS
  • Cloud KMS single-tenant HSM Executor
  • Cloud KMS Viewer
  • Administrator Cloud KMS

Pastikan untuk meninjau status instance Anda secara berkala. Instance harus diperbarui secara rutin agar tetap Aktif.

Instance dalam status Aktif dapat digunakan. Developer yang perlu membuat atau mengimpor kunci di instance Single-tenant Cloud HSM memerlukan ID resource instance. ID resource menggunakan format berikut:

projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME

Untuk melihat instance di organisasi Anda dan menemukan ID resource-nya, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman KMS infrastructure.

    Buka infrastruktur KMS

  2. Di kartu Single-tenant HSM instance, klik View. Halaman Instance HSM tenant tunggal menampilkan daftar semua instance Cloud HSM tenant tunggal yang izinnya Anda miliki untuk dilihat.

  3. Untuk melihat detail instance, klik nama instance. Halaman Single-tenant HSM instance details menampilkan detail untuk instance yang dipilih, termasuk ID resource lengkap dari instance dan daftar proposal yang dibuat untuk instance tersebut.

  4. Opsional: Untuk melihat atau mendownload kunci publik yang terkait dengan kunci otorisasi dua faktor (2FA) saat ini dari anggota kuorum Anda, klik Dapatkan kunci publik. Anda dapat membandingkan kunci publik dengan kunci 2FA pribadi Anda untuk memverifikasi kunci kontrol mana yang aktif.

gcloud

Lihat daftar instance yang ada menggunakan metode kms single-tenant-hsm list.

gcloud kms single-tenant-hsm list projects/PROJECT_ID/locations/LOCATION

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin melihat instance Cloud HSM Single-tenant.
  • LOCATION: lokasi tempat Anda ingin melihat instance Single-tenant Cloud HSM.

Lihat detail instance yang ada menggunakan metode kms single-tenant-hsm describe.

gcloud kms single-tenant-hsm describe --location=LOCATION \
    --singletenanthsminstance=INSTANCE_ID

Ganti kode berikut:

  • LOCATION: lokasi tempat Anda ingin melihat instance Single-tenant Cloud HSM.
  • INSTANCE_ID: instance yang ingin Anda lihat detailnya.

Menggunakan instance

Saat instance Anda ACTIVE, Anda dapat membuat dan menggunakan kunci. Anda dapat membuat kunci Cloud HSM tenant tunggal di key ring yang ada di lokasi yang sama dengan instance Cloud HSM Tenant Tunggal yang aktif.

Pembuatan kunci Cloud HSM tenant tunggal memerlukan peran Pembuat Kunci HSM tenant tunggal Cloud KMS selain peran Admin Cloud KMS.

Setelah dibuat, penggunaan kunci Cloud HSM tenant tunggal tidak memerlukan izin khusus.

Buat kunci

Saat membuat kunci Cloud HSM tenant tunggal, Anda harus menentukan instance Cloud HSM Tenant Tunggal tempat Anda ingin membuatnya. Jika tidak, prosesnya mirip dengan membuat kunci lainnya. Untuk mengetahui petunjuk selengkapnya, lihat Membuat kunci.

Mengimpor kunci

Saat mengimpor materi kunci ke kunci Cloud HSM tenant tunggal, Anda harus menentukan instance Cloud HSM tenant tunggal tempat Anda ingin menyimpannya. Jika tidak, prosesnya mirip dengan mengimpor kunci lainnya. Untuk mengetahui petunjuk mendetail, lihat Mengimpor versi kunci ke Cloud Key Management Service.

Menggunakan kunci

Setelah kunci dibuat, penggunaan kunci Cloud HSM tenant tunggal identik dengan penggunaan kunci Cloud HSM lainnya. Anda tidak perlu menentukan instance Cloud HSM Single-tenant untuk menggunakan kunci.

Memelihara instance

Setelah instance Anda disediakan, Anda bertanggung jawab untuk memelihara instance tersebut. Anda mengelola instance dengan membuat proposal untuk operasi pemeliharaan, mendapatkan persetujuan kuorum, lalu menjalankan operasi yang disetujui. Hanya satu proposal yang dapat aktif dalam satu waktu; jika Anda memilih untuk tidak melanjutkan proposal, Anda tidak dapat mengusulkan operasi lain hingga Anda menghapus proposal aktif atau menunggu hingga proposal berakhir.

Anda harus memuat ulang instance sebelum disableDate. Jika Anda perlu memeriksa disableDate instance, Anda dapat melihat detail instance.

Melihat proposal instance

Untuk melihat proposal instance, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman KMS infrastructure.

    Buka infrastruktur KMS

  2. Di kartu Single-tenant HSM instance, klik View. Halaman Instance HSM tenant tunggal menampilkan daftar semua instance Cloud HSM tenant tunggal yang izinnya Anda miliki untuk dilihat.

  3. Cari instance tempat Anda ingin melihat proposal, lalu klik nama instance. Halaman Single-tenant HSM instance details menampilkan detail untuk instance, termasuk daftar proposal yang dibuat untuk instance tersebut.

  4. Opsional: Untuk memfilter daftar saran, klik Filter, lalu masukkan kriteria filter Anda. Misalnya, Anda dapat memfilter daftar untuk hanya melihat proposal yang menunggu persetujuan atau hanya proposal yang telah berhasil diselesaikan.

gcloud

  • Lihat daftar proposal yang ada menggunakan metode kms single-tenant-hsm proposal list.

    gcloud kms single-tenant-hsm proposal list --location=LOCATION \
        --singletenanthsminstance=INSTANCE_ID

    Ganti kode berikut:

    • LOCATION: lokasi tempat Anda ingin melihat instance Single-tenant Cloud HSM.
    • INSTANCE_ID: ID instance Cloud HSM Single-tenant yang ingin Anda lihat proposalnya.

Memuat ulang instance

Anda dapat memuat ulang instance agar tetap diupdate dan membantu mencegah periode nonaktif yang tidak direncanakan. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini memerlukan waktu sekitar 15 hingga 30 menit hingga selesai.

Saat Anda memperbarui instance, disableDate disetel ke 120 hari dari waktu pembaruan.

  1. Buat proposal untuk memperbarui instance menggunakan jenis operasi refresh_single_tenant_hsm_instance. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type refresh_single_tenant_hsm_instance
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, refresh_instance.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, refresh_instance.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, instance tetap dalam status `AKTIF` dan disableDate disetel ke 120 hari sejak waktu penyegaran.

Menambahkan anggota kuorum

Anda dapat menambahkan anggota kuorum ke instance. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini memerlukan waktu sekitar 15 hingga 30 menit untuk selesai.

  1. Buat pasangan kunci RSA-2048 baru untuk anggota kuorum baru. Ikuti standar organisasi Anda untuk membuat pasangan kunci RSA-2048 di token fisik.

    Simpan kunci pribadi dengan aman; Anda memerlukannya untuk menyetujui proposal. Siapkan kunci publik; Anda memerlukannya untuk menambahkan anggota kuorum baru ke instance Cloud HSM Single-tenant.

  2. Buat proposal untuk menambahkan anggota kuorum ke instance menggunakan operasi add_quorum_member. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type add_quorum_member \
            --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, add_quorum_member.
    • PATH_TO_PUBLIC_KEY: jalur ke kunci publik baru—misalnya, rsapub4.pem.
  3. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, add_quorum_member.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  4. Dapatkan tantangan dari proposal. Menambahkan anggota kuorum baru memerlukan tantangan bertanda tangan dari kuorum anggota yang ada ditambah tantangan bertanda tangan dari anggota baru menggunakan kunci baru.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON. Kolom requiredActionQuorumParameters.requiredChallenges berisi tantangan untuk kunci baru yang Anda daftarkan. Kolom requiredActionQuorumParameters.quorumChallenges berisi tantangan untuk kuorum kunci yang ada. Anda harus menandatangani semua tantangan dalam objek requiredActionQuorumParameters.

  5. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  6. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST" \
          --required-challenge-replies="SIGNED_REQUIRED_CHALLENGE_LIST"
      

    Ganti kode berikut:

    • SIGNED_QUORUM_CHALLENGE_LIST: array berformat JSON dari tantangan yang ditandatangani menggunakan kunci pribadi yang sudah terdaftar, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan yang ditandatangani dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan yang ditandatangani pertama dalam satu perintah.
    • SIGNED_REQUIRED_CHALLENGE_LIST: array berformat JSON yang berisi tantangan yang ditandatangani menggunakan kunci pribadi baru, dengan satu-satunya item daftar adalah tuple yang berisi jalur ke tantangan yang ditandatangani dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-newkey.txt','rsapub-newkey.pem')].

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  7. Jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, anggota kuorum baru dapat berpartisipasi dalam tantangan untuk menyetujui proposal. Kunci publik yang Anda tambahkan kini disertakan dalam daftar kunci publik di detail instance.

Menghapus anggota kuorum

Jika Anda memiliki lebih banyak anggota kuorum daripada ukuran kuorum yang diperlukan, Anda dapat menghapus anggota kuorum dari instance. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini memerlukan waktu sekitar 15 hingga 30 menit untuk diselesaikan.

  1. Buat proposal untuk menghapus anggota kuorum ke instance menggunakan operasi remove_quorum_member. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type remove_quorum_member \
            --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, remove_quorum_member.
    • PATH_TO_PUBLIC_KEY: jalur ke kunci publik yang ingin Anda hapus dari instance—misalnya, rsapub3.pem. Setelah operasi selesai, kunci pribadi yang sesuai tidak dapat digunakan untuk menyetujui proposal.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, remove_quorum_member.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, anggota kuorum yang dihapus tidak dapat lagi berpartisipasi dalam tantangan untuk menyetujui proposal. Kunci publik yang Anda hapus tidak lagi disertakan dalam daftar kunci publik di detail instance.

Menonaktifkan instance

Anda dapat menonaktifkan instance untuk memblokir sementara akses ke semua kuncinya. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini membutuhkan waktu sekitar 15 hingga 30 menit untuk diselesaikan.

Saat instance dinonaktifkan, kunci yang disimpan di instance tersebut tetap muncul sebagai ACTIVE, tetapi tidak dapat digunakan. Mencoba melakukan operasi kriptografi dengan kunci di instance yang dinonaktifkan akan menyebabkan error.

  1. Buat proposal untuk menonaktifkan instance menggunakan jenis operasi disable_single_tenant_hsm_instance. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type disable_single_tenant_hsm_instance
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, disable_instance.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, disable_instance.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, instance tetap dalam status DISABLED dan tidak dapat digunakan hingga diaktifkan kembali.

Mengaktifkan instance

Anda dapat mengaktifkan kembali instance DISABLED untuk memulihkan akses ke instance tersebut dan kuncinya. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini memerlukan waktu sekitar 15 hingga 30 menit untuk diselesaikan.

  1. Buat proposal untuk mengaktifkan instance menggunakan jenis operasi enable_single_tenant_hsm_instance. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type enable_single_tenant_hsm_instance
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, enable_instance.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, enable_instance.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, instance akan kembali ke status `AKTIF` dan disableDate disetel ke 120 hari sejak waktu penyegaran.

Menghapus instance

Anda dapat menghapus instance untuk menghancurkannya dan kuncinya secara permanen. Operasi ini memerlukan autentikasi kuorum. Setelah proposal disetujui, operasi ini membutuhkan waktu sekitar 15 hingga 30 menit untuk diselesaikan.

Setelah instance dihapus, kunci yang disimpan di instance tersebut masih muncul sebagai ACTIVE, tetapi tidak dapat digunakan. Mencoba melakukan operasi kriptografis dengan kunci di instance yang dihapus akan menghasilkan error.

  1. Buat proposal untuk menghapus instance menggunakan jenis operasi delete_single_tenant_hsm_instance. Langkah ini memerlukan peran Pengusul HSM tenant tunggal Cloud KMS.

        gcloud kms single-tenant-hsm proposal create INSTANCE_ID \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type delete_single_tenant_hsm_instance
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance yang ingin Anda hapus.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik yang ingin Anda gunakan untuk proposal ini—misalnya, delete_instance.
  2. Lihat status proposal dan tunggu hingga statusnya menjadi PENDING.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION
      

    Ganti kode berikut:

    • INSTANCE_ID: ID instance Anda.
    • PROPOSAL_ID ID proposal—misalnya, delete_instance.
    • LOCATION: lokasi tempat Anda membuat instance.

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  3. Dapatkan tantangan dari proposal.

      gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \
          --single_tenant_hsm_instance INSTANCE_ID \
          --location LOCATION \
          --format="json[](quorumParameters.challenges)"
      

    Perintah ini menampilkan array tantangan berformat JSON.

  4. Untuk setiap tantangan yang ditampilkan pada langkah sebelumnya, dekode tantangan menggunakan basenc --base64url -d dan tandatangani dengan kunci pribadi.

      echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt
      openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
      

    Ganti kode berikut:

    • N: nomor tantangan—misalnya, 1 untuk tantangan pertama, 2 untuk tantangan kedua, dan seterusnya.
    • CHALLENGE_N: isi tantangan nomor N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Setujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM tenant tunggal Cloud KMS.

      gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \
          --location LOCATION \
          --single_tenant_hsm_instance INSTANCE_ID \
          --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
      

    Ganti SIGNED_QUORUM_CHALLENGE_LIST dengan array tantangan berformat JSON, dengan setiap item daftar adalah tuple yang berisi jalur ke tantangan bertanda tangan dan jalur ke kunci publik yang sesuai—misalnya, [('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')] untuk mengirimkan dua tantangan bertanda tangan pertama dalam satu perintah.

    Setelah Anda mengupload jumlah tantangan bertanda tangan yang diperlukan, status proposal akan diperbarui menjadi APPROVED.

  6. Pastikan Anda ingin melanjutkan untuk menghapus instance dan menghancurkan secara kriptografis semua data yang dienkripsi menggunakan kunci yang dibuat di instance ini, lalu jalankan proposal. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Executor, dan harus diselesaikan dalam waktu 24 jam setelah proposal dibuat.

    Peringatan: Perintah berikut tidak dapat diurungkan. Kehilangan data permanen dapat terjadi. Google tidak dapat membantu Anda memulihkan kunci di instance yang dihapus.
        gcloud kms single-tenant-hsm proposal execute  PROPOSAL_ID \
        --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
        

    Setelah operasi selesai, instance akan dihapus.

Menghapus proposal

Jika memutuskan untuk tidak menyetujui atau menjalankan proposal, Anda dapat menghapus proposal tersebut sebelum masa berlakunya berakhir. Menghapus proposal yang menunggu keputusan akan mencegah Anda menyetujuinya, dan memungkinkan Anda membuat proposal baru. Menghapus proposal yang disetujui akan mencegah Anda menjalankan operasi.

  • Hapus proposal menggunakan perintah proposal delete. Tindakan ini memerlukan peran Cloud KMS single-tenant HSM Proposer.

        gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \
            --location LOCATION \
            --single_tenant_hsm_instance INSTANCE_ID
        

    Ganti kode berikut:

    • INSTANCE_ID: ID instance.
    • LOCATION: lokasi tempat Anda membuat instance.
    • PROPOSAL_ID: ID unik proposal yang ingin Anda hapus—misalnya, proposal_to_delete.

Langkah berikutnya