Membuat dan mengelola batasan kustom
Halaman ini menunjukkan cara mengaktifkan dan menggunakan batasan kustom dalam lingkungan GKE di Azure Anda. Google CloudLayanan Kebijakan Organisasi membantu Anda mengelola konfigurasi resource dan membuat batas pengamanan di lingkungan cloud Anda.
Ringkasan
Dengan kebijakan organisasi kustom, Anda dapat membuat kebijakan resource terperinci di seluruh lingkungan Multi-Cloud GKE untuk memenuhi persyaratan keamanan dan kepatuhan spesifik organisasi Anda. Anda juga dapat membuat kebijakan organisasi dalam mode uji coba untuk menguji kebijakan baru tanpa memengaruhi beban kerja produksi Anda.
Untuk mempelajari kebijakan organisasi lebih lanjut, lihat Pengantar Layanan Kebijakan Organisasi.
Sebelum memulai
Sebelum memulai, pastikan Anda memahami topik berikut.
Pewarisan kebijakan
Secara default, kebijakan organisasi diwarisi oleh turunan resource tempat Anda menerapkan kebijakan tersebut. Misalnya, jika Anda menerapkan kebijakan pada organisasi, Google Cloud akan menerapkan kebijakan tersebut pada semua project di organisasi. Untuk mempelajari lebih lanjut pewarisan kebijakan dan cara mengubah aturan evaluasi, lihat Aturan evaluasi hierarki.
Batasan
Sebelum membuat batasan kustom, perhatikan batasan berikut:
- Batasan kustom hanya dapat diterapkan pada metode
CREATE
atauUPDATE
untuk resource GKE di Azure. - Batasan kustom yang baru diterapkan tidak otomatis berlaku untuk resource yang ada. Anda harus mengupdate resource yang ada untuk menerapkan batasan. Untuk menemukan resource yang ada yang perlu diupdate, Anda dapat menerapkan kebijakan organisasi uji coba.
- Untuk membuat batasan dan menerapkan kebijakan organisasi, Anda memerlukan peran IAM Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin
) di Google Cloud organisasi Anda. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk mengelola kebijakan organisasi dengan batasan kustom, lihat Peran yang diperlukan.
Harga
Kebijakan organisasi dan batasan kustom ditawarkan tanpa biaya.
Membuat batasan kustom
Batasan kustom harus ditentukan menggunakan kolom dalam spesifikasi resource API AzureCluster, AzureNodepool, dan AzureClient, tidak termasuk kolom yang dijelaskan sebagai "Khusus output".Membuat batasan khusus
Untuk membuat batasan khusus baru, tentukan batasan dalam file YAML dan terapkan batasan khusus di organisasi Anda menggunakan Google Cloud CLI. Batasan ini harus mencakup kebijakan spesifik yang ingin Anda terapkan di seluruh resource GKE di Azure.
Buat file YAML untuk menentukan batasan khusus pada cluster Anda:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- gkemulticloud.googleapis.com/AzureCluster
methodTypes:
- CREATE
condition: CONDITION
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Untuk menentukan batasan khusus pada node pool, gunakan konfigurasi YAML berikut:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- gkemulticloud.googleapis.com/AzureNodePool
methodTypes:
- CREATE
condition: CONDITION
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Ganti kode berikut:
ORGANIZATION_ID
: ID organisasi Anda, seperti123456789
.CONSTRAINT_NAME
: nama batasan kustom baru Anda. Batasan kustom harus diawali dengancustom.
, dan hanya boleh menyertakan huruf besar, huruf kecil, atau angka. Misalnya,custom.allowClusterCreateIfAnnotationPresent
. Panjang maksimum kolom ini adalah 70 karakter, tidak menghitung awalan, misalnya,organizations/123456789/customConstraints/custom
.CONDITION
: kondisi yang ditulis berdasarkan representasi resource Google Cloud . Kondisi ditulis dalam Common Expression Language (CEL). Kolom ini memiliki panjang maksimal 1.000 karakter. Misalnya, kondisi:"key" in resource.annotations && resource.annotations.key == "created-by"
.ACTION
: tindakan yang akan diambil jika kondisi terpenuhi. Ini dapat berupaALLOW
atauDENY
.DISPLAY_NAME
: nama tampilan untuk batasan. Kolom ini memiliki panjang maksimal 200 karakter.DESCRIPTION
: deskripsi batasan untuk ditampilkan sebagai pesan error saat kebijakan dilanggar, misalnya,"Allow new clusters only when certain annotations are set."
Kolom ini memiliki panjang maksimal 2.000 karakter.
Untuk mengetahui informasi selengkapnya tentang cara membuat batasan kustom, lihat Menentukan batasan kustom.
Mengaitkan batasan dengan resource Anda
Setelah membuat file YAML untuk batasan khusus baru, Anda harus menyiapkannya agar batasan tersebut tersedia untuk kebijakan organisasi.
Untuk menyiapkan batasan kustom, gunakan perintah
gcloud org-policies set-custom-constraint
:gcloud org-policies set-custom-constraint PATH_TO_FILE
Ganti
PATH_TO_FILE
dengan jalur definisi YAML batasan kustom Anda.Untuk memverifikasi bahwa batasan kustom telah dibuat, gunakan perintah
gcloud org-policies list-custom-constraints
:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Output mencantumkan kebijakan yang dibuat:
CUSTOM_CONSTRAINT: custom.allowClusterCreateIfAnnotationPresent ACTION_TYPE: ALLOW METHOD_TYPES: CREATE RESOURCE_TYPES: gkemulticloud.googleapis.com/AzureCluster DISPLAY_NAME: Allow new clusters only when certain annotations are set.
Menerapkan batasan khusus
Untuk menerapkan batasan khusus baru, buat kebijakan organisasi yang merujuk ke batasan tersebut, lalu terapkan kebijakan organisasi.
Buat file YAML untuk kebijakan organisasi:
name: RESOURCE_HIERARCHY/policies/POLICY_NAME spec: rules: - enforce: true
Ganti kode berikut:
RESOURCE_HIERARCHY
: lokasi kebijakan baru, yang memengaruhi cakupan penegakan. Gunakan hierarki resource Google Cloud sebagai panduan. Misalnya, jika Anda ingin menerapkan kebijakan pada project tertentu, gunakanprojects/
PROJECT_ID
. Untuk menerapkan kebijakan di organisasi tertentu, gunakanorganizations/
ORGANIZATION_ID
.POLICY_NAME
: nama kebijakan baru.
Terapkan kebijakan:
gcloud org-policies set-policy PATH_TO_POLICY
Ganti
PATH_TO_POLICY
dengan jalur ke file definisi kebijakan Anda.Pastikan kebijakan ada:
gcloud org-policies list --RESOURCE_FLAG=RESOURCE_ID
Ganti kode berikut:
RESOURCE_FLAG
: resource Google Cloud tempat Anda menerapkan kebijakan. Misalnya, project atau organisasi.RESOURCE_ID
: ID resource tempat Anda menerapkan kebijakan. Misalnya, project ID atau ID organisasi Anda.
Outputnya mirip dengan hal berikut ini:
CONSTRAINT: custom.allowClusterCreateIfAnnotationPresent LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CPjb27wGEOijhL4B-
Menguji kebijakan
Uji kebijakan organisasi dengan membuat Cluster Azure baru dalam project yang dibatasi.
Buat cluster Azure di project terbatas.
gcloud container azure clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --fleet-project FLEET_PROJECT \ --azure-tenant-id "${TENANT_ID}" \ --azure-application-id "${APPLICATION_ID}" \ --azure-region AZURE_REGION \ --pod-address-cidr-blocks POD_CIDR \ --service-address-cidr-blocks SERVICE_CIDR \ --vm-size VM_SIZE \ --cluster-version 1.31.1-gke.1800 \ --ssh-public-key "$SSH_PUBLIC_KEY" \ --resource-group-id "$CLUSTER_RG_ID" \ --vnet-id "$VNET_ID" \ --subnet-id "$SUBNET_ID" # Optional, see following note \ --tags "control-plane=CLUSTER_NAME" \ --admin-users ADMIN_USERS_LIST
Outputnya mirip dengan hal berikut ini:
FAILED_PRECONDITION: Operation denied by org policy on resource 'projects/PROJECT_NUMBER/locations/GOOGLE_CLOUD_REGION': ["customConstraints/custom.allowClusterCreateIfAnnotationPresent": "Allow new clusters only when certain annotations are set."] '@type': type.googleapis.com/google.rpc.ErrorInfo domain: googleapis.com metadata: customConstraints: customConstraints/custom.allowClusterCreateIfAnnotationPresent service: gkemulticloud.googleapis.com reason: CUSTOM_ORG_POLICY_VIOLATION