Mengontrol penghancuran versi kunci

Google Cloud menawarkan dua batasan kebijakan organisasi untuk menetapkan kebijakan penghancuran versi kunci di seluruh organisasi:

  • constraints/cloudkms.minimumDestroyScheduledDuration digunakan untuk menetapkan durasi minimum durasi dijadwalkan untuk pemusnahan untuk kunci baru dalam organisasi.
  • constraints/cloudkms.disableBeforeDestroy digunakan untuk mewajibkan versi kunci telah dinonaktifkan sebelum dapat dijadwalkan untuk dihancurkan.

Sebelum memulai

Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memahami penggunaan batasan dan memiliki resource dan peran yang diperlukan.

Resource yang diperlukan

Sebelum dapat menyelesaikan langkah-langkah di halaman ini, Anda harus memiliki referensi berikut:

  • Organisasi.
  • Opsional: Folder atau resource project dalam organisasi Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola kebijakan organisasi, minta administrator untuk memberi Anda peran IAM Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin) di organisasi. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk mengelola kebijakan organisasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola kebijakan organisasi:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Mewajibkan durasi minimum yang dijadwalkan untuk pemusnahan

Batasan Minimum eightization schedule per key (constraints/cloudkms.minimumDestroyScheduledDurations) digunakan untuk menetapkan panjang minimum durasi yang dijadwalkan untuk pemusnahan untuk kunci baru. Batasan ini menggantikan durasi minimum dijadwalkan untuk pemusnahan di tingkat project, folder, atau organisasi. Batasan ini mengurangi kemungkinan tidak sengaja menghancurkan kunci yang masih diperlukan. Anda dapat menetapkan batasan ini ke nilai yang lebih tinggi untuk membantu memastikan bahwa Anda memiliki waktu untuk mencegah penghancuran kunci sebelum batasan tersebut tidak dapat dibatalkan.

Gunakan nilai yang lebih tinggi untuk batasan ini saat penghancuran kunci yang tidak diinginkan akan lebih berbahaya, misalnya untuk data produksi yang tunduk pada persyaratan retensi data. Gunakan nilai yang lebih rendah untuk batasan ini saat penghancuran kunci yang tidak diinginkan akan mengurangi bahaya, seperti untuk lingkungan pengembangan atau pengujian. Anda juga dapat menggunakan nilai yang lebih rendah untuk mengizinkan penghancuran kripto secara tepat waktu. Namun, sebagai nilai minimum, batasan ini tidak dapat memastikan bahwa kunci baru dibuat dengan durasi dijadwalkan untuk pemusnahan yang rendah.

Untuk mewajibkan durasi minimum yang dijadwalkan untuk pemusnahan, ikuti langkah-langkah berikut:

  1. Dapatkan kebijakan yang berlaku pada resource organisasi menggunakan perintah describe Perintah ini menampilkan kebijakan yang langsung diterapkan ke resource ini:

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDurations \
      --organization=ORGANIZATION_ID
    

    Ganti ORGANIZATION_ID dengan ID unik untuk resource organisasi. ID Organisasi diformat sebagai angka desimal dan tidak boleh berisi angka nol di awal.

    Anda juga dapat melihat kebijakan organisasi untuk folder atau project dengan tanda --folder atau --project, dan ID folder atau project ID.

    Responsnya akan menampilkan kebijakan organisasi saat ini, jika ada. Outputnya mirip dengan hal berikut ini:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      etag: COTP+KYGELiCmsoB
      inheritFromParent: true
      rules:
      - values:
          allowedValues:
          - in:7d
      updateTime: '2023-08-17T14:00:04.424051Z'
    

    Jika kebijakan tidak disetel, perintah describe akan menampilkan error NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Tetapkan kebijakan di organisasi menggunakan perintah set-policy. Perintah ini akan menimpa kebijakan apa pun yang berlaku, ditambahkan ke resource.

    1. Membuat file sementara /tmp/policy.yaml untuk menyimpan kebijakan:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
      spec:
        rules:
        - values:
          allowedValues:
          - in:MINIMUM_DURATION
      

      Ganti kode berikut:

      • ORGANIZATION_ID: ID numerik organisasi Anda.
      • MINIMUM_DURATION: durasi minimum untuk status dijadwalkan untuk pemusnahan untuk kunci di organisasi ini, dalam hari. Harus berupa salah satu dari nilai berikut: 7d, 15d, 30d, 60d, 90d, atau 120d.
    2. Jalankan perintah set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Lihat kebijakan yang berlaku saat ini menggunakan describe --effective. Perintah ini menampilkan kebijakan organisasi seperti yang dievaluasi pada tahap ini dalam hierarki resource, dengan pewarisan yang telah disertakan.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDurations --effective \
      --organization=ORGANIZATION_ID
    

    Outputnya mirip dengan hal berikut ini:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDurations
    spec:
      rules:
        - values:
            allowedValues:
            - 30d
            - 15d
            - 90d
            - 60d
            - 7d
            - 120d
    

    Karena kebijakan organisasi ini ditetapkan pada tingkat organisasi, kebijakan tersebut diwarisi oleh semua resource turunan yang memungkinkan pewarisan.

Wajibkan kunci dinonaktifkan sebelum penghancuran

Batasan Restrict key encryption to disabled keys (constraints/cloudkms.disableBeforeDestroy) memungkinkan Anda mewajibkan kunci telah dinonaktifkan sebelum dapat menjadwalkan pemusnahan kunci. Sebaiknya nonaktifkan kunci sebelum menghancurkannya karena tindakan ini akan membantu Anda memvalidasi bahwa kunci tersebut tidak sedang digunakan. Anda dapat menggabungkan batasan ini dengan kebijakan Identity and Access Management yang cermat untuk membuat proses pemusnahan multi-langkah yang memerlukan kerja sama dari berbagai peran.

Untuk menggunakan batasan ini guna membuat proses penghancuran multi-langkah, pastikan tidak ada pengguna yang memiliki izin cloudkms.cryptoKeyVersions.update dan cloudkms.cryptoKeyVersions.destroy. Kasus penggunaan ini mengharuskan Anda menggunakan peran khusus.

Untuk mengharuskan kunci dalam status dinonaktifkan sebelum Anda dapat menjadwalkan pemusnahan kunci, ikuti langkah-langkah berikut:

gcloud

  1. Dapatkan kebijakan yang berlaku pada resource organisasi menggunakan perintah describe Perintah ini menampilkan kebijakan yang langsung diterapkan ke resource ini:

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy \
      --organization=ORGANIZATION_ID
    

    Ganti ORGANIZATION_ID dengan ID unik untuk resource organisasi. ID Organisasi diformat sebagai angka desimal dan tidak boleh berisi angka nol di awal.

    Anda juga dapat melihat kebijakan organisasi untuk folder atau project dengan tanda --folder atau --project, dan ID folder atau project ID.

    Responsnya akan menampilkan kebijakan organisasi saat ini, jika ada. Outputnya mirip dengan hal berikut:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
    spec:
      etag: CPvY+KYGENDwgxA=
      rules:
      - enforce: true
      updateTime: '2023-08-17T14:19:39.033618Z'
    

    Jika kebijakan tidak disetel, perintah describe akan menampilkan error NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Tetapkan kebijakan di organisasi menggunakan perintah set-policy. Perintah ini menimpa kebijakan apa pun yang telah disertakan ke resource.

    1. Membuat file sementara /tmp/policy.yaml untuk menyimpan kebijakan:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
      spec:
        rules:
        - enforce: true
      

      Ganti ORGANIZATION_ID dengan ID unik untuk resource organisasi.

    2. Jalankan perintah set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Lihat kebijakan yang berlaku saat ini menggunakan describe --effective. Perintah ini menampilkan kebijakan organisasi seperti yang dievaluasi pada tahap ini dalam hierarki resource, dengan pewarisan yang telah disertakan.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy --effective \
      --organization=ORGANIZATION_ID
    

    Outputnya mirip dengan hal berikut ini:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDurations
    spec:
      rules:
      - enforce: true
    

    Karena kebijakan organisasi ini ditetapkan pada tingkat organisasi, kebijakan tersebut diwarisi oleh semua resource turunan yang memungkinkan pewarisan.

Langkah selanjutnya