Mengontrol penghancuran versi kunci

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

  • constraints/cloudkms.minimumDestroyScheduledDuration digunakan untuk menetapkan panjang minimum durasi dijadwalkan untuk dimusnahkan 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 bahwa Anda memiliki resource dan peran yang diperlukan.

Resource yang diperlukan

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

  • Organisasi.
  • Opsional: Resource folder atau 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 ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola kebijakan organisasi. Untuk melihat izin yang benar-benar diperlukan, luaskan 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 mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Mewajibkan durasi dijadwalkan untuk dihancurkan minimum

Batasan Durasi minimum yang dijadwalkan untuk dihancurkan per kunci (constraints/cloudkms.minimumDestroyScheduledDuration) digunakan untuk menetapkan panjang minimum untuk durasi dijadwalkan untuk dihancurkan untuk kunci baru. Batasan ini akan menggantikan durasi dijadwalkan untuk dihancurkan minimum di level project, folder, atau organisasi. Batasan ini mengurangi kemungkinan kunci yang masih diperlukan dihancurkan secara tidak sengaja. Anda dapat menetapkan batasan ini ke nilai yang lebih tinggi untuk membantu memastikan Anda memiliki waktu untuk mencegah penghancuran kunci sebelum tidak dapat diubah lagi.

Gunakan nilai yang lebih tinggi untuk batasan ini jika pemusnahan kunci yang tidak diinginkan akan lebih berbahaya, seperti untuk data produksi yang tunduk pada persyaratan retensi data. Gunakan nilai yang lebih rendah untuk batasan ini jika pemusnahan kunci yang tidak diinginkan akan kurang berbahaya, seperti untuk lingkungan pengembangan atau pengujian. Anda juga dapat menggunakan nilai yang lebih rendah untuk memungkinkan crypto-shredding yang tepat waktu. Namun, sebagai nilai minimum, batasan ini tidak dapat memastikan bahwa kunci baru dibuat dengan durasi dijadwalkan untuk dihancurkan yang rendah.

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

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

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

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

    Anda juga dapat melihat kebijakan organisasi untuk folder atau project dengan flag --folder atau --project, serta ID folder atau project ID.

    Respons 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 ditetapkan, 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 dimusnahkan untuk kunci di organisasi ini, dalam hari. Harus berupa salah satu 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.minimumDestroyScheduledDuration --effective \
      --organization=ORGANIZATION_ID
    

    Outputnya mirip dengan hal berikut ini:

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

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

Mewajibkan kunci dinonaktifkan sebelum dihancurkan

Batasan Batasi pemusnahan kunci ke kunci yang dinonaktifkan (constraints/cloudkms.disableBeforeDestroy) memungkinkan Anda mewajibkan kunci telah dinonaktifkan sebelum Anda dapat menjadwalkan kunci untuk dihancurkan. Menonaktifkan kunci sebelum menghancurkannya adalah praktik terbaik yang direkomendasikan karena membantu Anda memvalidasi bahwa kunci tidak digunakan. Anda dapat menggabungkan batasan ini dengan kebijakan Pengelolaan Akses dan Identitas yang cermat untuk membuat proses pemusnahan multi-langkah yang memerlukan kerja sama dari beberapa peran.

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

Untuk mewajibkan kunci dalam status dinonaktifkan sebelum Anda dapat menjadwalkan kunci untuk dihancurkan, ikuti langkah-langkah berikut:

gcloud

  1. Dapatkan kebijakan yang berlaku pada resource organisasi menggunakan perintah describe Perintah ini menampilkan kebijakan yang langsung diterapkan ke dalam 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 memiliki angka nol di awal.

    Anda juga dapat melihat kebijakan organisasi untuk folder atau project dengan flag --folder atau --project, serta ID folder atau project ID.

    Respons 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 ditetapkan, 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 sudah dilampirkan 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.minimumDestroyScheduledDuration
    spec:
      rules:
      - enforce: true
    

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

Langkah selanjutnya