Batasan terkelola

Batasan terkelola adalah kebijakan organisasi yang telah ditentukan sebelumnya, yang dibangun di platform modern, yang memberikan kontrol terpusat dan terprogram atas resource Compute Engine Anda. Hal ini mencakup dukungan bawaan untuk alat peluncuran yang aman seperti Policy Simulator dan uji coba.

Batasan terkelola dapat diidentifikasi dengan awalan compute.managed.* dan berfungsi sebagai pengganti langsung untuk batasan compute.* lama.

Manfaat

  • Peluncuran dan pemantauan yang aman: Terapkan kebijakan dengan alat lengkap, kontrol perubahan yang lebih cepat, dan deployment bertahap menggunakan kemampuan simulasi dan uji coba.
  • Logging yang konsisten: Menerapkan keseragaman dalam pesan error dan logging, sehingga menyederhanakan pemantauan terpusat dan menyederhanakan audit.

Pewarisan kebijakan

Kebijakan organisasi yang Anda tetapkan pada resource diwarisi oleh turunan resource tersebut dalam hierarki resource. Misalnya, jika Anda menerapkan kebijakan pada folder, Cloud de Confiance by S3NS akan menerapkan kebijakan tersebut pada semua project di folder tersebut.

Harga

Layanan Kebijakan Organisasi, termasuk kebijakan organisasi yang telah ditetapkan (lama), terkelola, dan kustom, ditawarkan tanpa biaya.

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Cloud de Confiance by S3NS dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan konsol Cloud de Confiance untuk mengakses layanan Cloud de Confiance by S3NS dan API, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init
  • Tetapkan region dan zona default.
  • REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Cloud de Confiance .

  • Pastikan Anda mengetahui ID organisasi Anda.
  • Jika Anda belum melakukannya, instal gcloud CLI dan lakukan inisialisasi dengan menjalankan gcloud init.
  • Tetapkan project default untuk pengujian Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengelola kebijakan organisasi dengan batasan terkelola, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola kebijakan organisasi dengan batasan terkelola. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola kebijakan organisasi dengan batasan terkelola:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set
  • Untuk menguji batasan:
    • compute.instances.create pada project
    • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
    • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly pada snapshot
    • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly di template instance
    • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
    • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use di project
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
    • Untuk menentukan subnet bagi VM: compute.subnetworks.use pada project atau pada subnet yang dipilih
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
    • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata di project
    • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
    • Untuk menyetel label VM: compute.instances.setLabels di VM
    • Untuk menyetel akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
    • Untuk membuat disk baru untuk VM: compute.disks.create di project
    • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
    • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Batasan terkelola yang tersedia

Batasan kebijakan organisasi terkelola berikut tersedia untuk Compute Engine:

Evaluasi metadata hierarkis

Batasan terkelola yang mengandalkan kunci metadata yang telah ditentukan sebelumnya, seperti Login OS atau Akses Port Serial, mendukung evaluasi hierarkis. Saat mengevaluasi batasan ini, Compute Engine akan memeriksa nilai metadata yang ditetapkan di tingkat instance VM, project, atau zona.

Menetapkan nilai metadata di tingkat project atau zona memungkinkan Anda mengelola instance VM dalam skala besar. Namun, penerapan batasan hanya terjadi selama panggilan API pembuatan atau update instance VM. Oleh karena itu, perubahan pada metadata project atau zona memengaruhi kepatuhan terhadap batasan instance VM hanya saat instance tersebut dibuat atau diupdate.

Batasan dan tingkat berbasis metadata

Batasan Kunci metadata Tingkat hierarki metadata
compute.managed.disableSerialPortAccess serial-port-enable Project, Zonal, Instance
compute.managed.requireOsLogin enable-oslogin Project, Zonal, Instance
compute.managed.disableGuestAttributesAccess enable-guest-attributes Project, Zonal, Instance
compute.managed.requireOsConfig enable-osconfig Project, Zonal, Instance
compute.managed.disallowGlobalDns VmDnsSetting Project, Instance

Peluncuran yang aman: Siklus proses kebijakan

Untuk mencegah gangguan layanan saat Anda menerapkan batasan baru secara bertahap, Google merekomendasikan agar Anda menerapkan batasan terkelola dengan mengikuti langkah-langkah berikut:

Menganalisis dengan Policy Simulator

Sebelum menerapkan kebijakan, gunakan Policy Simulator untuk melihat resource yang ada yang melanggar kebijakan. Ikuti langkah-langkah berikut:

  1. Di konsol Cloud de Confiance , buka halaman Organization Policies.

    Buka Kebijakan Organisasi

  2. Di kolom filter, cari batasan Anda, lalu klik nama batasan untuk membuka halaman Policy details.

  3. Klik Uji Perubahan untuk membuat laporan simulasi.

  4. Perubahan metadata hierarkis mungkin memerlukan waktu beberapa jam untuk ditampilkan di laporan simulasi terkait batasan pada setelan metadata VM.

  5. Tinjau laporan untuk mengonfigurasi ulang resource yang tidak mematuhi kebijakan atau meminta pengecualian.

Memvalidasi dengan uji coba

Mode uji coba mencatat pelanggaran ke Cloud Logging, tetapi tidak menerapkan batasan.

Untuk menguji batasan, gunakan perintah gcloud org-policies set-policy sebagai berikut:

  1. Buat file YAML kebijakan (misalnya, dry-run-policy.yaml) dengan dryRunSpec:

    name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin
    dryRunSpec:
      rules:
      - enforce: true
    

    Ganti PROJECT_ID dengan project ID Anda.

  2. Terapkan kebijakan:

    gcloud org-policies set-policy dry-run-policy.yaml
    

Penerapan penuh

Setelah menyimulasikan dan menguji kebijakan, Anda dapat menerapkannya pada resource. Perubahan kebijakan dapat memerlukan waktu hingga 15 menit untuk diterapkan di semua Cloud de Confiance by S3NS sistem.

Menguji penerapan batasan

Setelah menetapkan kebijakan, Anda dapat memverifikasi penegakan menggunakan gcloud CLI. Misalnya, untuk menguji batasan compute.managed.requireOsLogin, ikuti langkah-langkah berikut:

  1. Mencantumkan kebijakan yang ada untuk mengonfirmasi konfigurasi Anda:

    gcloud org-policies list --project=PROJECT_ID
    
  2. Terapkan kebijakan terkait Proses Penegakan Kebijakan menggunakan file YAML:

    gcloud org-policies set-policy enforce_managed_constraint.yaml
    
  3. Verifikasi penerapan dengan memanggil API mutasi. Mencoba membuat instance VM dengan metadata yang tidak sesuai akan gagal:

    gcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --metadata=enable-oslogin=false
    

    Ganti kode berikut:

    • VM_NAME: nama untuk instance VM baru.
    • MACHINE_TYPE: jenis mesin yang valid, misalnya, e2-micro.
    • IMAGE_FAMILY: kelompok image yang valid, misalnya, debian-11.
    • IMAGE_PROJECT: project kelompok gambar, misalnya, debian-cloud.
  4. Periksa pesan error. Anda akan melihat penolakan yang menunjukkan batasan spesifik yang dilanggar: ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Operation denied by org policy: [constraints/compute.managed.requireOsLogin]

Pengecualian bersyarat dengan tag

Anda dapat menggunakan tag untuk memberikan pengecualian pada resource tertentu berdasarkan kebutuhan bisnis. Dalam contoh ini, kita menggunakan tag bernama osLoginOptional untuk mengidentifikasi resource yang dikecualikan dari persyaratan Login OS. Saat Anda mengikat tag ini dengan nilai true ke resource, kebijakan organisasi mengizinkan resource tertentu tersebut ada tanpa mengaktifkan Login OS, meskipun kebijakan tetap diberlakukan secara ketat untuk lingkungan Anda lainnya.

Untuk memberikan pengecualian menggunakan tag, ikuti langkah-langkah berikut:

  1. Buat tag: Gunakan gcloud CLI untuk membuat kunci tag dan nilai tag.

    1. Buat kunci tag:

      gcloud resource-manager tags keys create osLoginOptional \
          --parent=organizations/ORGANIZATION_ID
      
    2. Buat nilai tag:

      gcloud resource-manager tags values create true \
          --parent=organizations/ORGANIZATION_ID/tagKeys/osLoginOptional
      

    Ganti ORGANIZATION_ID dengan ID organisasi Anda.

  2. Ikat tag ke resource. Untuk mengecualikan project dari batasan compute.managed.requireOsLogin, ikat tag osLoginOptional=true ke project menggunakan perintah gcloud resource-manager tags bindings create:

    gcloud resource-manager tags bindings create \
        --tag-value=ORGANIZATION_ID/osLoginOptional/true \
        --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID \
        --location=global
    

    Ganti ORGANIZATION_ID dengan ID organisasi Anda, dan PROJECT_ID dengan ID project yang ingin Anda kecualikan.

    Untuk mempelajari cara mengikat tag ke resource lain, lihat Mengikat tag ke resource.

  3. Perbarui kebijakan: Buat atau perbarui file YAML kebijakan Anda (misalnya, policy.yaml) untuk menyertakan aturan bersyarat.

    name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin
    spec:
      rules:
      - condition:
          expression: "resource.matchTag('ORGANIZATION_ID/osLoginOptional', 'true')"
        enforce: false
      - enforce: true
    

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • ORGANIZATION_ID: ID organisasi Anda.
  4. Terapkan kebijakan: Gunakan perintah gcloud CLI berikut untuk mengaktifkan konfigurasi:

    gcloud org-policies set-policy policy.yaml
    

Migrasi dari batasan lama

Saat melakukan migrasi, perhatikan bahwa batasan terkelola meningkatkan, tetapi tidak mereplikasi secara persis, perilaku kebijakan lama. Batasan terkelola menawarkan prediktabilitas yang lebih besar dengan memeriksa pelanggaran hanya selama permintaan API yang membuat atau mengubah resource. Jika permintaan melanggar batasan, panggilan API akan gagal dengan error yang jelas. Hal ini berbeda dengan kebijakan lama, yang dapat diterapkan pada berbagai tahap operasi atau digunakan sebagai atribut resource, sehingga perilaku penerapan kurang dapat diprediksi.

Saat beralih dari batasan compute.* lama ke batasan compute.managed.* modern yang setara, ikuti langkah-langkah berikut untuk mencegah pengetatan batasan yang tidak diinginkan:

  1. Temukan: Mengidentifikasi alternatif batasan terkelola baru.
  2. Analisis dan validasi: Gunakan Simulator Kebijakan dan uji coba seperti yang dijelaskan sebelumnya.
  3. Terapkan batasan terkelola: Terapkan batasan terkelola baru bersama dengan batasan lama.
  4. Hapus kebijakan lama:
    • Buka Inventaris Aset di konsol Cloud de Confiance dan filter menurut orgpolicy.Policy dan nama batasan lama untuk mengidentifikasi semua kebijakan yang menggunakan batasan lama.
    • Hapus semua kebijakan yang menggunakan batasan lama. Menghapus kebijakan akan mereset kebijakan tersebut ke perilaku default yang dikelola Google untuk batasan tersebut.

Langkah berikutnya