Tambahkan kebijakan organisasi khusus

Halaman ini menjelaskan cara membuat, menyiapkan, dan mengelola batasan khusus di Cloud SQL instance Compute Engine. Untuk ringkasan kebijakan organisasi kustom, lihat kebijakan organisasi kustom.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Menginstal Google Cloud CLI.
  5. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  10. Tambahkan peran Administrator Kebijakan Organisasi (roles/orgpolicy.policyAdmin) ke akun pengguna atau layanan Anda dari halaman IAM & Admin.

    Buka halaman akun IAM

  11. Lihat Pembatasan sebelum melakukan prosedur ini.

Kolom yang didukung untuk batasan kustom

Anda dapat menetapkan batasan khusus pada kolom berikut:

Kolom Contoh kasus penggunaan
SqlDatabaseVersion Menerapkan penggunaan versi database tertentu
region Membatasi pembuatan instance ke region tertentu
availabilityType Menerapkan ketersediaan tinggi
ipConfiguration > {i>pscConfig ><i} allowedConsumerProjects Membatasi daftar yang diizinkan untuk project konsumen di PSC ke project tertentu
ipConfiguration > sslMode Terapkan mode SSL menjadi ENCRYPTED_ONLY atau TRUSTED_CLIENT_CERTIFICATE_REQUIRED. Anda tidak dapat memilih mode SSL saat membuat instance Cloud SQL di konsol Google Cloud. Jadi, jika membuat kebijakan organisasi kustom ini, Anda perlu membuat instance Cloud SQL menggunakan gcloud CLI, API, atau Terraform.
dataDiskType Menerapkan penggunaan SSD atau HDD
backupConfiguration > lokasi Membatasi lokasi cadangan otomatis ke lokasi tertentu
backupConfiguration > pointInTimeRecoveryEnabled Terapkan semua instance untuk mengaktifkan PITR
backupConfiguration > transactionLogRetentionDays Terapkan semua instance untuk menggunakan periode retensi data tertentu untuk retensi log transaksi
backupConfiguration > backupRetensiSettings > retentionUnit Terapkan hari retensi pada semua cadangan
passwordValidationPolicy > minLength Menerapkan kebijakan sandi untuk panjang minimum
passwordValidationPolicy > kompleksitas Menerapkan kebijakan sandi untuk kerumitan
passwordValidationPolicy > reuseInterval Menerapkan kebijakan sandi untuk interval penggunaan ulang tertentu
passwordValidationPolicy > disallowUsernameSubstring Terapkan kebijakan sandi untuk tidak mengizinkan nama pengguna sebagai sandi
Edisi Terapkan semua instance untuk menggunakan edisi Enterprise Plus
connectorEnforcement Wajibkan semua koneksi untuk menggunakan konektor Cloud SQL
dataCacheConfig Wajibkan semua instance untuk menggunakan Cache Data

Membuat dan menyiapkan batasan kustom

Batasan khusus ditentukan dalam file YAML menggunakan resource, metode, kondisi, dan tindakan yang didukung oleh layanan tempat Anda menegakkan kebijakan organisasi. Kondisi untuk batasan kustom Anda ditentukan menggunakan Common Expression Language (CEL). Untuk informasi selengkapnya tentang cara membangun kondisi dalam batasan khusus menggunakan CEL, lihat Bahasa Ekspresi Umum.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari pemilih project, pilih resource yang Anda inginkan untuk menetapkan kebijakan organisasi.

  4. Klik Custom constraint.

  5. Di kotak Display name, masukkan nama untuk batasan. Kolom ini memiliki panjang maksimal 200 karakter.

  6. Di kotak Constraint ID, masukkan nama yang diinginkan untuk batasan kustom baru. Batasan khusus harus diawali dengan custom., dan dapat hanya berisi huruf besar, huruf kecil, atau angka, untuk contoh, custom.requireCloudSqlPasswordMinLength. Panjang maksimum kolom ini panjangnya 70 karakter, misalnya belum termasuk awalan organizations/123456789/customConstraints/custom..

  7. Di kotak Description, masukkan deskripsi batasan yang mudah dipahami untuk ditampilkan sebagai pesan error saat kebijakan dilanggar. Kolom ini memiliki panjang maksimal 2000 karakter.

  8. Di kotak Resource type, pilih nama Google Cloud Resource REST yang berisi objek dan kolom yang ingin Anda batasi untuk contoh, sqladmin.googleapis.com/Instance. Maksimum adalah 20 serta membuat batasan khusus per jenis resource. Jika Anda mencoba membuat untuk jenis resource yang sudah memiliki 20 batasan khusus, maka operasi akan gagal.

  9. Di bagian Metode penerapan, pilih apakah akan menerapkan batasan pada metode CREATE REST, atau pada metode CREATE dan UPDATE.

    Edit kondisi, lalu lakukan tindakan berikut:

    1. Di panel Add condition, buat kondisi CEL yang mengacu pada resource layanan yang didukung, misalnya resource.settings.passwordValidationPolicy.minLength > 10. Kolom ini memiliki panjang maksimal 1000 karakter. Untuk mengetahui detail tentang penggunaan CEL, lihat Common Expression Language. Untuk selengkapnya informasi tentang resource layanan yang dapat Anda gunakan dalam batasan kustom, lihat Layanan yang didukung batasan kustom.

    2. Klik Simpan.

  10. Di bagian Tindakan, pilih apakah akan mengizinkan atau menolak metode yang dievaluasi jika kondisi sebelumnya terpenuhi.

    • Tolak memblokir operasi untuk membuat atau mengupdate resource jika kondisi bernilai benar (true).

    • Izinkan akan mengizinkan operasi untuk membuat atau memperbarui resource jika kondisi tersebut bernilai true. Setiap kasus lain kecuali yang secara eksplisit tercantum dalam kondisi yang diblokir.

  11. Klik Create constraint.

Setelah Anda memasukkan nilai ke setiap kolom, konfigurasi YAML yang setara untuk batasan kustom ini akan muncul di sebelah kanan.

gcloud

Guna membuat file YAML untuk batasan kustom, gunakan format berikut:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- container.googleapis.com/RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Ganti kode berikut:

  • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.

  • CONSTRAINT_NAME: nama yang Anda inginkan untuk batasan kustom baru. Batasan khusus harus diawali dengan custom., dan dapat hanya berisi huruf besar, huruf kecil, atau angka, untuk misalnya, custom.enableGkeAutopilot. Panjang maksimum kolom ini adalah 70 karakter, tidak termasuk awalan. Misalnya, organizations/123456789/customConstraints/custom.

  • RESOURCE_NAME: nama (bukan URI) resource REST GKE API yang berisi objek dan kolom yang ingin Anda batasi. Contoh, Cluster.

  • CONDITION: kondisi CEL yang ditulis berdasarkan representasi resource layanan yang didukung. Ini memiliki panjang maksimal 1000 karakter.

  • ACTION: tindakan yang akan diambil jika condition terpenuhi. Ini dapat berupa ALLOW atau DENY.

    • Tolak memblokir operasi untuk membuat atau mengupdate resource jika kondisi bernilai benar (true).

    • Allow mengizinkan operasi untuk membuat atau memperbarui resource jika kondisi bernilai benar. Setiap kasus lain kecuali yang tercantum secara eksplisit dalam kondisi akan diblokir.

  • DISPLAY_NAME: nama untuk batasan. Kolom ini memiliki panjang maksimal 200 karakter.

  • DESCRIPTION: deskripsi ditampilkan sebagai pesan error ketika kebijakan dilanggar. Ini memiliki panjang maksimal 2000 karakter.

Setelah membuat batasan kustom baru menggunakan gcloud CLI, Anda harus menyiapkannya untuk membuat yang tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan kustom, gunakan perintah gcloud org-policies set-custom-constraint:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ganti CONSTRAINT_PATH dengan jalur lengkap ke file batasan kustom Anda. Contohnya, /home/user/customconstraint.yaml Setelah selesai, Anda akan menemukan batasan khusus sebagai kebijakan organisasi yang tersedia dalam daftar kebijakan organisasi Google Cloud Anda. Untuk memverifikasi bahwa ada batasan kustom, gunakan perintah gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan ID resource organisasi Anda. Untuk informasi selengkapnya, lihat Melihat kebijakan organisasi.

Menerapkan kebijakan organisasi khusus

Setelah disiapkan, batasan kustom akan beroperasi identik dengan batasan boolean. Google Cloud memeriksa batasan kustom terlebih dahulu saat mengevaluasi apakah permintaan pengguna diizinkan. Jika salah satu organisasi khusus kebijakan menolak permintaan, maka permintaan tersebut akan ditolak. Lalu, Google Cloud pemeriksaan kebijakan organisasi yang telah ditetapkan sebelumnya, yang diberlakukan pada resource tersebut.

Anda dapat menerapkan batasan boolean dengan membuat kebijakan organisasi yang mereferensikannya, dan menerapkan kebijakan organisasi tersebut ke resource Google Cloud.

Konsol

Untuk menerapkan batasan boolean:

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.
  3. Dari pemilih project, pilih project yang ingin Anda setel kebijakan organisasi.
  4. Pilih batasan dari daftar di halaman Organization policies. Halaman Policy details untuk batasan tersebut akan muncul.
  5. Untuk mengonfigurasi kebijakan organisasi untuk resource ini, klik Manage policy.
  6. Di halaman Edit policy, pilih Override parent's policy.
  7. Klik Add a rule.
  8. Di bagian Enforcement, pilih apakah penerapan kebijakan organisasi ini harus diaktifkan atau dinonaktifkan.
  9. Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, klik Add condition. Perhatikan bahwa jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk detail selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.
  10. Jika ini adalah batasan khusus, Anda dapat mengklik Uji perubahan untuk menyimulasikan pengaruh kebijakan organisasi ini. Untuk informasi selengkapnya, lihat Uji perubahan kebijakan organisasi dengan Policy Simulator.
  11. Untuk menyelesaikan dan menerapkan kebijakan organisasi, klik Tetapkan kebijakan. Kebijakan ini akan memerlukan waktu hingga 15 menit untuk diterapkan.

gcloud

Untuk membuat kebijakan organisasi yang menerapkan batasan boolean, buat file YAML kebijakan yang merujuk batasan tersebut:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
    

Ganti kode berikut:

  • PROJECT_ID: project tempat Anda ingin menerapkan batasan.
  • CONSTRAINT_NAME: nama yang Anda tentukan untuk batasan kustom. Contoh, custom.enableGkeAutopilot

Untuk menerapkan kebijakan organisasi yang berisi batasan, jalankan perintah berikut:

    gcloud org-policies set-policy POLICY_PATH
    

Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.

Memperbarui batasan kustom

Anda dapat memperbarui batasan kustom dengan mengedit batasan di Konsol Google Cloud, atau dengan membuat file YAML baru dan menggunakan Perintah gcloud CLI set-custom-constraint lagi. Tidak ada pembuatan versi batasan kustom, sehingga akan menimpa batasan data. Jika batasan kustom sudah diterapkan, kustom yang diperbarui batasan ini akan segera diterapkan.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari pemilih project, pilih resource yang ingin Anda perbarui kebijakan organisasinya.

  4. Pilih batasan yang ingin Anda edit dari daftar di Halaman Kebijakan organisasi. Halaman Detail kebijakan untuk kebijakan tersebut pembatas seharusnya muncul.

  5. Klik Edit constraint.

  6. Buat perubahan pada nama tampilan, deskripsi, metode penerapan, kondisi, dan tindakan. Anda tidak dapat mengubah resource atau ID batasan ketik setelah batasan dibuat.

  7. Klik Simpan perubahan.

gcloud

Untuk mengedit batasan kustom yang ada menggunakan gcloud CLI, buat file YAML baru yang berisi perubahan yang ingin Anda buat:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- METHOD1
- METHOD2
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Ganti kode berikut:

  • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.

  • CONSTRAINT_NAME: nama yang Anda inginkan untuk batasan kustom baru. Batasan khusus harus diawali dengan custom., dan dapat hanya berisi huruf besar, huruf kecil, atau angka, untuk contoh, custom.disableGkeAutoUpgrade. Panjang maksimum kolom ini adalah 70 karakter, tidak menghitung awalan, misalnya, organizations/123456789/customConstraints/custom..

  • RESOURCE_NAME: nama yang sepenuhnya memenuhi syarat Resource REST Google Cloud yang berisi objek dan kolom yang ingin Anda membatasi. Contoh, container.googleapis.com/NodePool. Untuk selengkapnya informasi tentang resource layanan yang dapat Anda gunakan dalam batasan kustom, lihat Layanan yang didukung batasan kustom.

  • METHOD1,METHOD2: daftar Metode RESTful yang akan menerapkan batasan. Dapat berupa CREATE atau CREATE dan UPDATE. Tidak semua layanan Google Cloud mendukung kedua metode tersebut. Kepada melihat metode yang didukung untuk setiap layanan, menemukan layanan di Layanan yang didukung.

  • CONDITION: kondisi CEL yang mengacu pada resource layanan yang didukung, misalnya "resource.management.autoUpgrade == false". Kolom ini memiliki panjang maksimal 1000 karakter. Untuk mengetahui detail tentang penggunaan CEL, lihat Common Expression Language.

  • ACTION: tindakan yang akan diambil jika condition terpenuhi. Ini dapat berupa ALLOW atau DENY.

  • DISPLAY_NAME: nama untuk batasan data. Kolom ini memiliki panjang maksimal 200 karakter.

  • DESCRIPTION: deskripsi batasan yang mudah dipahami untuk ditampilkan sebagai pesan error saat kebijakan dilanggar. Kolom ini memiliki panjang maksimal 2.000 karakter.

Setelah membuat batasan kustom baru menggunakan gcloud CLI, Anda harus menyiapkannya untuk membuat yang tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan khusus, gunakan perintah gcloud org-policies set-custom-constraint:

gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ganti CONSTRAINT_PATH dengan jalur lengkap ke file batasan kustom. Contohnya, /home/user/customconstraint.yaml Setelah selesai, Anda akan menemukan batasan khusus sebagai kebijakan organisasi yang tersedia dalam daftar kebijakan organisasi Google Cloud Anda. Untuk memverifikasi bahwa batasan khusus ada, gunakan Perintah gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan ID resource organisasi Anda. Untuk informasi selengkapnya, lihat Melihat kebijakan organisasi.

Menghapus batasan kustom

Anda dapat menghapus batasan kustom menggunakan Konsol Google Cloud atau gcloud CLI.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari pemilih project, pilih resource yang Anda inginkan untuk menghapus kebijakan organisasi.

  4. Pilih batasan yang ingin Anda hapus dari daftar di Halaman Kebijakan organisasi. Halaman Detail kebijakan untuk kebijakan tersebut pembatas seharusnya muncul.

  5. Klik Delete.

  6. Untuk mengonfirmasi bahwa Anda ingin menghapus batasan, klik Delete.

gcloud

Untuk menghapus batasan kustom, gunakan org-policies delete-custom-constraint Perintah gcloud CLI:

gcloud org-policies delete-custom-constraint custom.CONSTRAINT_NAME \
  --organization=ORGANIZATION_ID

Ganti kode berikut:

  • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.

  • CONSTRAINT_NAME: nama kustom Anda batasan data. Contoh, custom.disableGkeAutoUpgrade.

Outputnya mirip dengan hal berikut ini:

Deleted custom constraint [organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade]

Jika Anda menghapus batasan khusus, semua kebijakan yang telah dibuat menggunakan batasan tersebut tetap ada, tetapi diabaikan. Anda tidak dapat membuat batasan kustom lain dengan nama yang sama seperti batasan kustom yang dihapus.

Contoh: Menggunakan batasan kustom untuk menerapkan penggunaan SSD, bukan HDD

  1. Buat file dataDiskType.yaml, sebagai berikut:

    name: organizations/651333429324/customConstraints/custom.dataDiskType
    resourceTypes:
    - sqladmin.googleapis.com/Instance
    methodTypes:
    - CREATE
    - UPDATE
    condition: resource.settings.dataDiskType == "PD_SSD"
    actionType: ALLOW
    displayName: dataDiskType must be PD_SDD
    description: dataDiskType must be PD_SSD
    

    Tindakan ini memastikan bahwa semua metode CREATE dan UPDATE pada instance memenuhi batasan dataDiskType menjadi SSD. Akibatnya, setiap instance yang melibatkan HDD akan ditolak.

  2. Siapkan batasan kustom di tingkat organisasi:

    gcloud org-policies set-custom-constraint dataDiskType.yaml
    
  3. Membuat `enforceDataDiskType.yaml' sebagai berikut:

    name: projects/custom-constraints-cloudsql3/policies/custom.dataDiskType
    spec:
    rules:
    - enforce: true
    
  4. Terapkan batasan khusus di level project:

    gcloud org-policies set-policy enforceDataDiskType.yaml
    

Langkah selanjutnya