Terapkan konfigurasi dan batasan yang konsisten untuk instance Anda dengan menggunakan batasan kebijakan organisasi kustom

Dokumen ini menjelaskan cara membuat, menyiapkan, dan mengelola batasan kebijakan organisasi kustom untuk instance Memorystore for Valkey. Untuk mengetahui ringkasan kebijakan organisasi kustom, lihat kebijakan organisasi kustom.

Layanan Google Cloud Organization Policy Service memberi Anda kontrol terpusat dan terprogram atas resource organisasi Anda. Sebagai administrator kebijakan organisasi, Anda dapat menentukan kebijakan organisasi, yang merupakan serangkaian batasan yang disebut batasan yang berlaku untuk Google Cloud resource dan turunan dari resource tersebut dalam Google Cloud hierarki resource. Anda dapat menerapkan kebijakan organisasi di tingkat organisasi, folder, atau project.

Layanan Kebijakan Organisasi menyediakan batasan yang telah ditetapkan untuk berbagai Google Cloud layanan, termasuk Memorystore for Valkey. Namun, jika menginginkan kontrol yang lebih terperinci dan dapat disesuaikan atas kolom tertentu yang dibatasi oleh kebijakan organisasi, Anda dapat membuat batasan kustom dan menggunakan batasan ini dalam kebijakan organisasi.

Dengan menerapkan batasan kebijakan organisasi kustom, Anda menerapkan konfigurasi dan batasan yang konsisten. Hal ini memverifikasi bahwa instance Anda mematuhi praktik terbaik keamanan dan persyaratan peraturan.

Anda dapat menggunakan kebijakan organisasi kustom untuk mengizinkan atau menolak resource Memorystore for Valkey. Misalnya, jika Anda mencoba membuat atau memperbarui instance saat batasan kustom diterapkan, dan instance tersebut tidak mematuhi batasan, Memorystore for Valkey tidak akan membuat atau memperbarui instance. Selain itu, project apa pun yang ditambahkan ke organisasi atau folder yang menggunakan kebijakan organisasi kustom akan mewarisi batasan kebijakan tersebut.

Pewarisan kebijakan

Secara default, kebijakan organisasi diwarisi oleh turunan resource tempat Anda menerapkan kebijakan tersebut. Misalnya, jika Anda menerapkan kebijakan pada folder, maka Google Cloud akan menerapkan kebijakan pada semua project di folder tersebut. Untuk mempelajari lebih lanjut perilaku ini dan cara mengubahnya, lihat Aturan evaluasi hierarki.

Sebelum memulai

Sebelum mulai menggunakan kebijakan organisasi kustom, selesaikan prasyarat di bagian ini.

Menggunakankonsol, Google Cloud CLI, dan API Google Cloud

Untuk menggunakankonsol, gcloud CLI, dan API, lakukan hal berikut: Google Cloud

  1. Di Google Cloud konsol, pada halaman pemilih project, pilih atau buat Google Cloud project.

    Buka pemilih project

  2. Pastikan penagihan diaktifkan untuk project Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
  3. Instal dan lakukan inisialisasi Google Cloud CLI (gcloud CLI).

    Jika Anda menginstal gcloud CLI, pastikan Anda memiliki versi terbaru dengan menjalankan gcloud components update. Untuk mengakses perintah gcloud CLI Memorystore for Valkey, Anda memerlukan gcloud CLI versi 489.0.0 atau yang lebih baru.

  4. Aktifkan Memorystore for Valkey API.
    Memorystore for Valkey API
  5. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.
  6. Pastikan Anda mengetahui ID organisasi Anda.

Tetapkan peran

Untuk menggunakan kebijakan organisasi kustom untuk instance Anda, Anda harus memiliki salah satu dari peran IAM berikut di Google Cloud project Anda:

  • roles/memorystore.admin (peran Admin Memorystore)
  • roles/owner (peran Pemilik)
  • roles/editor (peran Editor)

Selain itu, Anda harus memberikan peran roles/orgpolicy.policyAdmin (Administrator Kebijakan Organisasi) dan izin memorystore.instances.create ke akun pengguna atau layanan Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran dan izin, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat dan menyiapkan batasan kustom

Anda membuat batasan kustom untuk menentukan resource, metode, kondisi, dan tindakan yang tunduk pada batasan. Hal ini khusus untuk layanan tempat Anda menerapkan kebijakan organisasi.

Anda menentukan kondisi untuk batasan kustom menggunakan Common Expression Language (CEL). Untuk mengetahui informasi selengkapnya tentang cara membangun kondisi dalam batasan kustom menggunakan CEL, lihat bagian CEL tentang Membuat dan mengelola batasan kustom.

Setelah membuat batasan kustom, Anda harus menyiapkannya agar tersedia untuk kebijakan organisasi di organisasi Anda. Anda dapat melakukannya menggunakan konsol Google Cloud atau Google Cloud CLI.

Konsol

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

    Buka Organization policies

  2. Klik menu di menu konsol Google Cloud , lalu pilih project, folder, atau organisasi tempat Anda membuat dan menyiapkan batasan kustom.
  3. Di halaman Organization policies, klik Custom constraint.
  4. Di kolom Display name halaman Create custom constraint, masukkan nama yang dapat dibaca manusia untuk batasan. Nama ini digunakan dalam pesan error, dan Anda juga dapat menggunakannya untuk identifikasi dan proses debug. Kolom ini dapat berisi hingga 200 karakter.

  5. Di kolom Constraint ID, masukkan ID batasan kustom constraint. Batasan ini harus dimulai dengan custom., dan hanya boleh berisi huruf besar, huruf kecil, atau angka (misalnya, custom.restrictFiveShardInstances). Panjang maksimum nilai ini adalah 70 karakter, tidak termasuk awalan. Contoh: organizations/123456789/customConstraints/custom.allowConstraint.

  6. Di kolom Description, masukkan deskripsi batasan yang dapat dibaca manusia. Deskripsi ini digunakan sebagai pesan error saat kebijakan organisasi dilanggar. Sertakan detail tentang alasan pelanggaran kebijakan dapat terjadi dan cara menyelesaikan pelanggaran kebijakan tersebut. Kolom ini dapat berisi hingga 2.000 karakter.

  7. Dari menu Resource type, pilih nama (bukan URI) resource Memorystore for Valkey, yang berisi objek dan kolom yang ingin Anda batasi. Contoh: memorystore.googleapis.com/Instance.
  8. Dari menu Enforcement method, buat salah satu pilihan berikut: pilihan:
    • Enforce on create: batasan hanya diterapkan saat Anda membuat instance Memorystore for Valkey.
    • Terapkan saat membuat dan memperbarui: batasan diterapkan saat Anda membuat dan memperbarui instance.
  9. Untuk menentukan kondisi CEL yang ditulis berdasarkan representasi dari resource layanan yang didukung, lakukan hal berikut:

    1. Di kolom Condition, klik Edit.
    2. Di dialog Add condition, masukkan kondisi CEL. Contoh: resource.shardCount == 5.

      Kondisi ini dapat memiliki panjang maksimum 1.000 karakter. Untuk mengetahui informasi selengkapnya tentang resource yang tersedia untuk menulis kondisi, lihat Operasi dan batasan kustom yang didukung.

    3. Klik Save.
  10. Di bagian Action, buat salah satu pilihan berikut yang mewakili tindakan yang akan diambil jika kondisi terpenuhi:
    • Izinkan: jika kondisi bernilai benar, maka operasi untuk membuat atau memperbarui instance diizinkan. Setiap kasus lainnya , kecuali yang tercantum secara eksplisit dalam kondisi, akan diblokir.
    • Tolak: jika kondisi bernilai benar, maka operasi untuk membuat atau memperbarui instance akan diblokir.
  11. Di bagian YAML configuration, pastikan konfigurasi YAML untuk batasan kustom sudah benar.
  12. Klik Create constraint.

gcloud

  1. Untuk membuat batasan kustom, buat file YAML menggunakan format berikut:

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

    Lakukan penggantian berikut:

    • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.
    • CONSTRAINT_NAME: nama batasan kustom. Batasan ini harus dimulai dengan custom., dan hanya boleh berisi huruf besar, huruf kecil, atau angka (misalnya, custom.restrictFiveShardInstances). Panjang maksimum nilai ini adalah 70 karakter, tidak termasuk awalan. Contoh: organizations/123456789/customConstraints/custom.allowConstraint.
    • RESOURCE_NAME: nama (bukan URI) resource Memorystore for Valkey, yang berisi objek dan kolom yang ingin Anda batasi. Contoh: memorystore.googleapis.com/Instance.
    • CONDITION: kondisi CEL yang ditulis berdasarkan representasi resource layanan yang didukung. Contoh: "resource.shardCount == 5".

      Kolom ini memiliki panjang maksimum 1.000 karakter. Untuk mengetahui informasi selengkapnya tentang resource yang tersedia untuk menulis kondisi, lihat Operasi dan batasan kustom yang didukung.

    • ACTION: tindakan yang akan diambil jika kondisi terpenuhi. Tindakan ini dapat berupa salah satu dari nilai berikut ini:
      • ALLOW: jika kondisi bernilai benar, operasi untuk membuat atau memperbarui instance diizinkan. Setiap kasus lainnya kecuali yang tercantum secara eksplisit dalam kondisi akan diblokir.
      • DENY: jika kondisi bernilai benar, operasi untuk membuat atau memperbarui instance akan diblokir.
    • DISPLAY_NAME: nama yang dapat dibaca manusia untuk batasan tersebut. Nama ini digunakan dalam pesan error, dan Anda juga dapat menggunakannya untuk tujuan identifikasi dan proses debug. Kolom ini dapat berisi hingga 200 karakter.
    • DESCRIPTION: deskripsi batasan yang dapat dibaca manusia. Deskripsi ini digunakan sebagai pesan error saat kebijakan organisasi dilanggar. Sertakan detail tentang alasan pelanggaran kebijakan dapat terjadi dan cara menyelesaikan pelanggaran kebijakan tersebut. Kolom ini dapat berisi hingga 2.000 karakter.
  2. 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 (misalnya, /home/user/customconstraint.yaml).

    Setelah Anda menyiapkan batasan kustom, batasan tersebut akan tersedia sebagai kebijakan organisasi dalam daftar Google Cloud kebijakan organisasi.

  3. Untuk memverifikasi ada tidaknya batasan kustom, gunakan perintah gcloud org-policies list-custom-constraints:

    gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
    

Menerapkan kebijakan organisasi kustom

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

Konsol

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

    Buka Organization policies

  2. Dari pemilih project, pilih project yang ingin Anda tetapkan kebijakan organisasinya.
  3. Dari daftar di halaman Organization policies, pilih batasan Anda untuk melihat halaman Policy details untuk batasan tersebut.
  4. Guna mengonfigurasi kebijakan organisasi untuk resource ini, klik Manage policy.
  5. Di halaman Edit policy, pilih Override parent's policy.
  6. Klik Add a rule.
  7. Di bagian Enforcement, pilih apakah kebijakan organisasi ini diterapkan atau tidak.
  8. Opsional: Agar kebijakan organisasi menjadi 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 disimpan. Untuk mengetahui informasi selengkapnya, lihat Mencakup kebijakan organisasi dengan tag.
  9. Klik Test changes untuk menyimulasikan efek kebijakan organisasi. Untuk mengetahui informasi selengkapnya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.
  10. Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Untuk mengetahui informasi selengkapnya, lihat Menguji kebijakan organisasi.
  11. Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, tetapkan kebijakan aktif dengan mengklik Set policy.

gcloud

  1. Untuk membuat kebijakan organisasi dengan aturan boolean, buat file YAML kebijakan yang mereferensikan batasan:
  2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - enforce: true
    
    dryRunSpec:
      rules:
      - enforce: true

    Ganti kode berikut:

    • PROJECT_ID: project tempat Anda ingin menerapkan batasan Anda.
    • CONSTRAINT_NAME: nama yang Anda tentukan untuk batasan kustom. Contoh, custom.restrictFiveShardInstances.
  3. Untuk menerapkan kebijakan organisasi dalam mode uji coba, jalankan perintah berikut dengan tanda dryRunSpec:
  4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

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

  5. Setelah Anda memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, tetapkan kebijakan aktif dengan perintah org-policies set-policy dan tanda spec:
  6. gcloud org-policies set-policy POLICY_PATH --update-mask=spec

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

Menguji batasan kustom

Untuk menguji batasan kebijakan organisasi kustom untuk Memorystore for Valkey, coba buat atau perbarui instance yang tidak mematuhi kebijakan yang diterapkan.

Misalnya, batasan mencegah Anda membuat instance jika instance tersebut memiliki lima shard. Anda dapat menguji batasan ini dengan mencoba membuat instance dan menetapkan jumlah shard menjadi lima. Karena instance tidak mematuhi batasan, Memorystore for Valkey tidak akan membuat instance.

Operasi dan batasan kustom yang didukung

Kolom batasan kustom Memorystore for Valkey berikut adalah tersedia untuk digunakan saat Anda membuat atau memperbarui instance:

  • Instance Memorystore for Valkey
    • resource.name
    • resource.replicaCount
    • resource.shardCount
    • resource.nodeType
    • resource.engineVersion
    • resource.mode
    • resource.kmsKey
    • resource.simulateMaintenanceEvent
    • resource.engineConfigs
    • resource.persistenceConfig.mode
    • resource.persistenceConfig.rdbConfig.rdbSnapshotPeriod
    • resource.persistenceConfig.rdbConfig.rdbSnapshotStartTime
    • resource.persistenceConfig.aofConfig.appendFsync
    • resource.deletionProtectionEnabled
    • resource.maintenancePolicy.weeklyMaintenanceWindow.day
    • resource.maintenancePolicy.weeklyMaintenanceWindow.startTime
    • resource.automatedBackupConfig.automatedBackupMode
    • resource.automatedBackupConfig.fixedFrequencySchedule
    • resource.automatedBackupConfig.retention
    • resource.crossInstanceReplicationConfig.instanceRole
    • resource.crossInstanceReplicationConfig.primaryInstance
    • resource.crossInstanceReplicationConfig.secondaryInstances
    • resource.crossInstanceReplicationConfig.primaryInstance.instance
    • resource.crossInstanceReplicationConfig.secondaryInstances.instance
    • resource.zoneDistributionConfig.zone
    • resource.zoneDistributionConfig.mode
    • resource.transitEncryptionMode
    • resource.authorizationMode
    • resource.serverCaMode
    • resource.managedBackupSource.backup
    • resource.serverCaPool

Contoh batasan kustom

Tabel berikut memberikan contoh batasan kustom yang mencegah pengguna membuat atau memperbarui instance Memorystore for Valkey jika instance tersebut memiliki lima shard:

Deskripsi Sintaksis batasan
Membatasi pembuatan atau pembaruan instance yang memiliki lima shard
    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictFiveShardInstances
    resourceTypes:
    - memorystore.googleapis.com/Instance
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.shardCount == 5"
    actionType: DENY
    displayName: Restrict five-shard Memorystore for Valkey instances
    description: Prevent users from creating or updating instances that have
    five shards.

Langkah berikutnya