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 gunakan untuk memulai. 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 tenant tunggal Cloud KMS (cloudkms.hsmSingleTenantQuorumMember)
    • Menjalankan proposal: Pelaksana HSM tenant tunggal Cloud KMS (cloudkms.hsmSingleTenantExecutor)
    • Membuat 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 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_2fa_keys. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Proposer. Tidak seperti sebagian besar proposal, proposal register_2fa_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_2fa_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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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_2fa_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_sthi 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 rutin. 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 Instance HSM tenant tunggal, klik Lihat. 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 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 --location=LOCATION

Ganti LOCATION dengan lokasi tempat Anda ingin melihat instance Cloud HSM Single-tenant.

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

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

Ganti kode berikut:

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

Menggunakan instance

Saat instance Anda ACTIVE, Anda dapat membuat dan menggunakan kunci. Anda dapat membuat kunci Cloud HSM tenant tunggal di ring kunci 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 single-tenant tidak memerlukan izin khusus.

Membuat 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.

Portabilitas kunci

Portabilitas kunci memungkinkan Anda mengelola kunci pelapis Anda sendiri di instance Cloud HSM Single-tenant. Kemampuan ini memungkinkan Anda mengimpor dan mengekspor kunci lain (disebut sebagai kunci yang dapat di-wrap) dengan mem-wrap-nya menggunakan kunci wrapping kustom Anda. Portabilitas kunci berguna untuk interoperabilitas kunci antara penyedia cloud yang berbeda atau antara region Google Cloud yang berbeda.

Semua operasi portabilitas kunci mengharuskan kunci dibuat dan disimpan di instance Cloud HSM Single-tenant. RFC 5649 adalah satu-satunya algoritma yang didukung untuk pembungkusan kunci.

Untuk menggunakan portabilitas kunci, Anda harus menyelesaikan langkah-langkah berikut:

  1. Siapkan kunci penggabungan tepercaya.
  2. Buat atau impor kunci yang dapat digabungkan.
  3. Gunakan kunci pelapis tepercaya untuk mengimpor materi kunci yang telah dilapis atau mengekspor kunci yang dapat dilapis.

Menyiapkan kunci penggabungan tepercaya

Kunci pelapis tepercaya adalah kunci AES yang digunakan untuk melapisi dan membuka lapisan kunci lain untuk diekspor atau diimpor seperti yang ditentukan dalam RFC 5649. Untuk menyiapkan kunci enkapsulasi tepercaya pada instance Cloud HSM Single-tenant, Anda harus mengimpor kunci sebagai kunci khusus impor dengan tujuan AES_WRAPPING, lalu mempromosikannya menjadi tepercaya.

Promosi utama memerlukan persetujuan dari satu anggota kuorum.

  1. Buat resource kunci khusus impor dengan tujuan AES_WRAPPING:

        gcloud kms keys create KEY_NAME \
            --location LOCATION \
            --keyring KEY_RING \
            --purpose AES_WRAPPING \
            --protection-level HSM_SINGLE_TENANT \
            --skip-initial-version-creation \
            --import-only \
            --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
        

    Ganti kode berikut:

    • KEY_NAME: ID untuk kunci wrapping tepercaya.
    • LOCATION: region tempat key ring dan instance Cloud HSM tenant tunggal berada.
    • KEY_RING: key ring tempat Anda ingin membuat kunci.
    • INSTANCE_PROJECT: ID project yang berisi instance Cloud HSM Single-tenant.
    • INSTANCE_NAME: ID instance Single-tenant Cloud HSM.
  2. Buat tugas impor untuk mengimpor materi kunci:

        gcloud kms import-jobs create IMPORT_JOB_NAME \
            --location LOCATION \
            --keyring KEY_RING \
            --import-method IMPORT_METHOD \
            --protection-level HSM_SINGLE_TENANT
        

    Ganti kode berikut:

    • IMPORT_JOB_NAME: ID untuk tugas impor.
    • IMPORT_METHOD: metode impor untuk membungkus materi kunci—misalnya, rsa-oaep-4096-sha256-aes-256.
  3. Impor materi kunci AES mentah.

        gcloud kms keys versions import \
            --import-job IMPORT_JOB_NAME \
            --location LOCATION \
            --keyring KEY_RING \
            --key KEY_NAME \
            --algorithm aes-256-kwp \
            --target-key-file TRUSTED_KEY_PATH
        

    Ganti TRUSTED_KEY_PATH dengan jalur ke file yang berisi byte kunci pembungkus tepercaya mentah.

  4. Buat proposal untuk mempromosikan kunci wrapping ke tepercaya. Jenis operasi adalah upgrade_key_trust. Operasi promosi harus ditandatangani dan disetujui oleh anggota kuorum yang sama yang memulainya.

        gcloud kms single-tenant-hsm proposal create INSTANCE_NAME \
            --location LOCATION \
            --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \
            --operation-type upgrade_key_trust \
            --keyring KEY_RING \
            --key KEY_NAME \
            --two-factor-login-key PATH_TO_PUBLIC_KEY
        

    Ganti kode berikut:

    • PROPOSAL_ID: ID unik untuk proposal ini.
    • PATH_TO_PUBLIC_KEY: jalur ke kunci publik anggota kuorum yang memulai dan menandatangani proposal.
  5. Lihat status proposal dan tunggu hingga berubah menjadi PENDING:

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

    Jika statusnya PENDING, Anda dapat menandatangani tantangan.

  6. Dapatkan tantangan dari proposal.

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

    Perintah ini menampilkan array berformat JSON yang berisi tantangan.

  7. Dekode tantangan menggunakan basenc --base64url -d, lalu tandatangani. Tantangan harus ditandatangani oleh kunci pribadi yang cocok dengan kunci publik yang diberikan saat proposal dibuat.

        echo CHALLENGE | basenc --base64url -d > decoded-challenge.txt
        openssl dgst -sign PRIVATE_KEY_PATH -out signed-challenge.txt decoded-challenge.txt
        

    Ganti kode berikut:

    • CHALLENGE: isi tantangan dari output langkah sebelumnya.
    • PRIVATE_KEY_PATH: jalur ke kunci pribadi anggota kuorum yang membuat proposal.
  8. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. 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_NAME \
            --required-challenge-replies="[('signed-challenge.txt','PUBLIC_KEY_PATH')]"
        

    Ganti PUBLIC_KEY_PATH dengan jalur ke kunci publik anggota kuorum yang membuat proposal.

    Setelah Anda mengupload tantangan yang ditandatangani, status proposal akan diperbarui menjadi APPROVED.

  9. Setelah proposal disetujui, jalankan proposal tersebut untuk menyelesaikan promosi:

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

    Setelah proposal dijalankan, kunci dipromosikan menjadi kunci pelapis tepercaya dan dapat digunakan untuk mengimpor atau mengekspor kunci lain di instance Cloud HSM Single-tenant.

Mengelola kunci yang dapat di-wrap

Kunci yang dapat dilapiskan adalah kunci kriptografi yang ditetapkan untuk impor atau ekspor yang aman menggunakan kunci pelapis tepercaya. Anda harus mengonfigurasi kunci agar dapat di-wrap saat resource kunci dibuat. Anda tidak dapat mengubah setelan ini nanti.

Membuat kunci yang dapat digabungkan baru

Untuk membuat kunci yang dapat di-wrap baru, gunakan tanda --hsm-trusted-wrapping:

gcloud kms keys create WRAPPABLE_KEY_NAME \
    --location LOCATION \
    --keyring KEY_RING \
    --purpose PURPOSE \
    --protection-level HSM_SINGLE_TENANT \
    --hsm-trusted-wrapping \
    --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"

Ganti kode berikut:

  • WRAPPABLE_KEY_NAME: nama untuk kunci baru yang dapat digabungkan.
  • PURPOSE: tujuan kunci—misalnya, raw-encryption. Kunci yang diimpor tidak dapat menggunakan tujuan kunci ENCRYPT_DECRYPT.

Mengimpor kunci yang dapat digabungkan

Anda dapat menggunakan tugas impor untuk mengimpor materi kunci yang ada yang ingin Anda ekspor di masa mendatang. Untuk melakukannya, Anda harus menyertakan flag hsm-trusted-wrapping saat membuat kunci dan saat mengimpor versi kunci.

  1. Buat resource utama dengan tanda --hsm-trusted-wrapping:

    gcloud kms keys create WRAPPABLE_KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --purpose PURPOSE \
        --protection-level HSM_SINGLE_TENANT \
        --hsm-trusted-wrapping \
        --skip-initial-version-creation \
        --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
    
  2. Membuat tugas impor:

    gcloud kms import-jobs create IMPORT_JOB_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --import-method IMPORT_METHOD \
        --protection-level HSM_SINGLE_TENANT
    
  3. Impor versi kunci, dengan tanda --hsm-trusted-wrapping:

    gcloud kms keys versions import \
        --import-job IMPORT_JOB_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --key WRAPPABLE_KEY_NAME \
        --algorithm ALGORITHM \
        --target-key-file UNWRAPPED_KEY_TO_IMPORT \
        --hsm-trusted-wrapping
    

    Ganti kode berikut:

    • KEY_ALGORITHM: algoritma kunci yang Anda impor.
    • UNWRAPPED_KEY_TO_IMPORT: jalur ke materi kunci mentah (yang tidak di-wrap).

Menggunakan kunci tepercaya untuk impor dan ekspor

Setelah menyiapkan kunci pelapis tepercaya, Anda dapat menggunakannya untuk mengimpor materi kunci yang telah dilapis ke dalam kunci yang dapat dilapis, atau mengekspor kunci yang dapat dilapis.

Mengimpor versi kunci yang telah digabungkan sebelumnya dengan kunci tepercaya

Anda dapat mengimpor materi kunci yang digabungkan secara lokal dengan salinan kunci pelapis tepercaya Anda tanpa menggunakan tugas impor.

  1. Pastikan Anda telah membuat resource kunci yang dapat di-wrap target dengan opsi --hsm-trusted-wrapping dan --import-only. Lihat bagian Membuat kunci yang dapat di-wrap baru.
  2. Impor versi kunci yang telah di-wrap sebelumnya:

    gcloud kms keys versions import-trusted-key-wrapped \
        --location LOCATION \
        --target-keyring KEY_RING \
        --target-key TARGET_KEY_NAME \
        --trusted-keyring TRUSTED_KEY_RING \
        --trusted-key TRUSTED_KEY_NAME \
        --target-algorithm ALGORITHM \
        --wrapped-key-file PATH_TO_WRAPPED_KEY
    

    Ganti kode berikut:

    • TARGET_KEY_NAME: nama resource kunci yang dapat di-wrap untuk mengimpor materi kunci.
    • TRUSTED_KEY_RING: key ring dari kunci wrapping tepercaya.
    • TRUSTED_KEY_NAME: nama kunci enkapsulasi tepercaya yang dipromosikan.
    • ALGORITHM: algoritma kunci target. Nilai yang didukung adalah semua algoritma Cloud Key Management Service kecuali GOOGLE_SYMMETRIC_ENCRYPTION.
    • PATH_TO_WRAPPED_KEY: jalur ke file yang berisi materi kunci yang di-wrap dengan kunci wrapping tepercaya.

Mengekspor kunci yang dapat digabungkan dengan menggabungkannya dengan kunci tepercaya

Anda dapat menggabungkan kunci yang dapat digabungkan yang sudah ada menggunakan kunci gabungan tepercaya dan menyimpan materi kunci gabungan yang dihasilkan ke file.

gcloud kms keys versions export-trusted-key-wrapped \
    --location LOCATION \
    --trusted-keyring TRUSTED_KEY_RING \
    --trusted-key TRUSTED_KEY_NAME \
    --target-keyring TARGET_KEY_RING \
    --target-key TARGET_KEY_NAME \
    --wrapped-key-file PATH_TO_OUTPUT_WRAPPED_KEY

Ganti kode berikut:

  • TRUSTED_KEY_RING: key ring dari kunci wrapping tepercaya.
  • TRUSTED_KEY_NAME: nama kunci enkapsulasi tepercaya yang dipromosikan.
  • TARGET_KEY_RING: key ring kunci yang dapat digabungkan yang diekspor.
  • TARGET_KEY_NAME: nama kunci yang dapat di-wrap yang diekspor.
  • PATH_TO_OUTPUT_WRAPPED_KEY: jalur tempat materi kunci yang dienkapsulasi akan disimpan.

Mengelola 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 tersebut berakhir.

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

Melihat proposal instance

Untuk melihat proposal untuk instance, ikuti langkah-langkah berikut:

Konsol

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

    Buka infrastruktur KMS

  2. Di kartu Instance HSM tenant tunggal, klik Lihat. 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 Detail instance HSM tenant tunggal 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 INSTANCE_ID \
        --location=LOCATION

    Ganti kode berikut:

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

Memuat ulang instance

Anda dapat memperbarui instance agar tetap update 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 730 hari dari waktu pembaruan.

  1. Buat proposal untuk memperbarui instance menggunakan jenis operasi refresh_sthi. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Proposer.

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

    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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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 730 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 hingga 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 tenant tunggal.

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

        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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  6. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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 Cloud KMS single-tenant HSM Proposer.

        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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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 kriptografis dengan kunci di instance yang dinonaktifkan akan menyebabkan error.

  1. Buat proposal untuk menonaktifkan instance menggunakan jenis operasi disable_sthi. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Proposer.

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

    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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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_sthi. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Proposer.

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

    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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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 `ACTIVE` dan disableDate disetel ke 730 hari sejak waktu penyegaran.

Menghapus instance

Anda dapat menghapus instance untuk menghancurkannya secara permanen beserta kuncinya. 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 dalam instance yang dihapus akan menghasilkan error.

  1. Buat proposal untuk menghapus instance menggunakan jenis operasi delete_sthi. Langkah ini memerlukan peran Cloud KMS single-tenant HSM Proposer.

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

    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 nomor tantangan N dari output langkah sebelumnya.
    • PRIVATE_KEY_N: jalur ke nomor kunci pribadi N—misalnya, rsaprivate1.pem untuk tantangan pertama.
  5. Menyetujui proposal dengan mengupload tantangan yang ditandatangani. Anda dapat menguploadnya dalam satu perintah atau beberapa perintah. Langkah ini memerlukan peran Anggota Kuorum HSM single-tenant 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 mengeksekusi 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 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