Batasan kebijakan organisasi untuk Cloud Load Balancing

Halaman ini memberikan informasi tambahan tentang batasan kebijakan organisasi yang berlaku untuk Cloud Load Balancing. Anda menggunakan batasan kebijakan organisasi untuk menerapkan setelan di seluruh project, folder, atau organisasi.

Kebijakan organisasi hanya berlaku untuk resource baru. Batasan tidak diterapkan secara surut. Jika Anda sudah memiliki resource load balancing yang melanggar kebijakan organisasi baru, Anda harus mengatasi pelanggaran tersebut secara manual.

Untuk daftar lengkap batasan yang tersedia, lihat Batasan kebijakan organisasi.

Membatasi jenis load balancer

Gunakan kebijakan organisasi untuk membatasi jenis Cloud Load Balancing yang dapat dibuat di organisasi Anda. Tetapkan batasan kebijakan organisasi berikut:

  • Nama: Membatasi Pembuatan Load Balancer Berdasarkan Jenis Load Balancer
  • ID: constraints/compute.restrictLoadBalancerCreationForTypes

Saat menetapkan batasan compute.restrictLoadBalancerCreationForTypes, Anda menentukan daftar yang diizinkan atau ditolak dari jenis Cloud Load Balancing. Daftar nilai yang diizinkan atau ditolak hanya dapat menyertakan nilai dari daftar berikut:

  • Load Balancer Aplikasi
    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS untuk Load Balancer Aplikasi eksternal global
    • EXTERNAL_HTTP_HTTPS untuk Load Balancer Aplikasi klasik
    • EXTERNAL_MANAGED_HTTP_HTTPS untuk Load Balancer Aplikasi eksternal regional
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS untuk Load Balancer Aplikasi internal lintas region
    • INTERNAL_HTTP_HTTPS untuk Load Balancer Aplikasi internal regional
  • Load Balancer Jaringan Proxy
    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY untuk Load Balancer Jaringan proxy eksternal global dengan proxy TCP
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY untuk Load Balancer Jaringan proxy eksternal global dengan proxy SSL
    • EXTERNAL_TCP_PROXY untuk Load Balancer Jaringan proxy klasik dengan proxy TCP
    • EXTERNAL_SSL_PROXY untuk Load Balancer Jaringan proxy klasik dengan proxy SSL
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY untuk Load Balancer Jaringan proxy eksternal regional dengan proxy TCP
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY untuk Load Balancer Jaringan proxy internal regional dengan proxy TCP
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY untuk Load Balancer Jaringan proxy internal lintas region dengan proxy TCP
  • Load Balancer Jaringan Passthrough
    • EXTERNAL_NETWORK_TCP_UDP untuk Load Balancer Jaringan passthrough eksternal
    • INTERNAL_TCP_UDP untuk Load Balancer Jaringan passthrough internal

Untuk menyertakan semua jenis load balancer internal atau eksternal, gunakan awalan in: yang diikuti dengan INTERNAL atau EXTERNAL. Misalnya, mengizinkan in:INTERNAL akan mengizinkan semua load balancer internal dari daftar sebelumnya.

Untuk mengetahui contoh petunjuk penggunaan batasan ini, lihat Menyiapkan batasan daftar dengan kebijakan organisasi.

Setelah Anda menetapkan kebijakan, kebijakan tersebut akan diterapkan saat menambahkan aturan penerusan Google Cloud masing-masing. Batasan ini tidak diterapkan pada konfigurasi Cloud Load Balancing yang ada.

Jika Anda mencoba membuat load balancer dari jenis yang melanggar batasan, upaya tersebut akan gagal dan pesan error akan muncul. Pesan error memiliki format berikut:

Constraint constraints/compute.restrictLoadBalancerCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Jika Anda menetapkan beberapa batasan restrictLoadBalancerCreationForTypes pada level resource yang berbeda, batasan tersebut akan diterapkan secara hierarkis. Oleh karena itu, sebaiknya tetapkan kolom inheritFromParent ke true, yang memastikan bahwa kebijakan pada lapisan yang lebih tinggi juga dipertimbangkan.

Pesan error GKE

Jika Anda menggunakan objek Service dan Ingress Google Kubernetes Engine (GKE), penggunaan kebijakan organisasi ini untuk membatasi pembuatan load balancer akan menghasilkan pesan error seperti berikut:

Warning  Sync    28s   loadbalancer-controller  Error during sync: error running
load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME
does not exist: googleapi: Error 412:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for
projects/PROJECT_ID. Forwarding Rule
projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME
of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet

Anda dapat melihat pesan error GKE dengan menjalankan perintah berikut:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

Ganti kode berikut:

  • RESOURCE_KIND: jenis load balancer, ingress atau service
  • NAME: nama load balancer

Menonaktifkan load balancing global

Batasan boolean ini menonaktifkan pembuatan produk load balancing global. Jika diterapkan, hanya produk load balancing regional tanpa dependensi global yang dapat dibuat.

  • * Nama: Menonaktifkan Load Balancing Global
  • * ID: constraints/compute.disableGlobalLoadBalancing

Secara default, pengguna diizinkan untuk membuat produk load balancing global.

Untuk mengetahui contoh petunjuk tentang cara menggunakan batasan ini, lihat Menyiapkan batasan boolean dengan kebijakan organisasi.

Membatasi jenis penerusan protokol

Gunakan kebijakan organisasi untuk membatasi jenis penerusan protokol yang dapat dibuat di organisasi Anda. Tetapkan batasan kebijakan organisasi berikut:

  • Nama: Membatasi Penerusan Protokol Berdasarkan jenis Alamat IP
  • ID: constraints/compute.restrictProtocolForwardingCreationForTypes

Saat menetapkan batasan compute.restrictProtocolForwardingCreationForTypes, Anda menentukan daftar yang diizinkan atau ditolak untuk jenis penerusan protokol. Daftar nilai yang diizinkan atau ditolak hanya dapat menyertakan nilai dari daftar berikut:

  • INTERNAL
  • EXTERNAL

Untuk mengetahui contoh petunjuk penggunaan batasan ini, lihat Menyiapkan batasan daftar dengan kebijakan organisasi.

Setelah Anda menetapkan kebijakan, kebijakan tersebut akan diterapkan saat menambahkan aturan penerusan Google Cloud masing-masing. Batasan ini tidak diterapkan pada konfigurasi penerusan protokol yang ada.

Jika Anda mencoba membuat deployment penerusan protokol dari jenis yang melanggar batasan, upaya tersebut akan gagal dan pesan error akan muncul. Pesan error memiliki format berikut:

Constraint constraints/compute.restrictProtocolForwardingCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule
projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Jika Anda menetapkan beberapa batasan restrictProtocolForwardingCreationForTypes pada level resource yang berbeda, dan jika Anda menetapkan kolom inheritFromParent ke true, batasan akan diterapkan secara hierarkis.

Menerapkan pembatasan VPC Bersama

Gunakan kebijakan organisasi berikut untuk membatasi izin pengguna dalam menyiapkan deployment VPC Bersama.

Membatasi project host VPC Bersama

Batasan daftar ini memungkinkan Anda membatasi project host VPC Bersama yang dapat dipasangi resource.

  • Nama: Membatasi project host VPC Bersama
  • ID: constraints/compute.restrictSharedVpcHostProjects

Secara default, sebuah project dapat terhubung ke project host apa pun dalam organisasi yang sama, sehingga menjadi project layanan. Saat menetapkan batasan compute.restrictSharedVpcHostProjects, tentukan daftar yang diizinkan atau tolak project host dengan cara berikut:

  • Tentukan project dalam format berikut:
    • project/PROJECT_ID
  • Tentukan project, folder, atau organisasi. Batasan ini berlaku untuk semua project pada resource yang ditentukan dalam hierarki resource. Gunakan format berikut:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID

Untuk mengetahui contoh petunjuk penggunaan batasan ini, lihat Menyiapkan batasan daftar dengan kebijakan organisasi.

Membatasi subnetwork VPC Bersama

Batasan daftar ini menentukan kumpulan subnet VPC Bersama yang dapat digunakan oleh resource yang memenuhi syarat. Batasan ini tidak berlaku untuk resource dalam project yang sama.

  • Nama: Membatasi subnetwork VPC Bersama
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Secara default, resource yang memenuhi syarat dapat menggunakan subnet VPC Bersama. Saat menetapkan batasan compute.restrictSharedVpcSubnetworks, tentukan daftar subnet yang dibatasi dengan cara berikut:

  • Tentukan subnet dalam format berikut:
    • projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
  • Tentukan project, folder, atau organisasi. Batasan ini berlaku untuk semua subnet pada resource yang ditentukan dalam hierarki resource. Gunakan format berikut:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Untuk mengetahui contoh petunjuk penggunaan batasan ini, lihat Menyiapkan batasan daftar dengan kebijakan organisasi.

Membatasi layanan backend lintas project

Anda dapat menggunakan batasan ini untuk membatasi layanan backend yang dapat direferensikan oleh peta URL. Batasan ini tidak berlaku untuk layanan backend dalam project yang sama dengan peta URL.

  • Nama: Membatasi layanan backend lintas project
  • ID: constraints/compute.restrictCrossProjectServices

Secara default, peta URL di semua project host atau layanan dapat mereferensikan layanan backend yang kompatibel dari project layanan lain atau project host di deployment VPC Bersama yang sama selama pengguna yang melakukan tindakan memiliki izin compute.backendServices.use. Saat menetapkan batasan restrictCrossProjectServices, tentukan daftar yang diizinkan atau daftar tolak layanan backend dengan cara berikut:

  • Tentukan layanan backend dalam format berikut:
    • projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
  • Tentukan project, folder, atau organisasi. Batasan ini berlaku untuk semua layanan backend di bawah resource yang ditentukan dalam hierarki resource. Gunakan format berikut:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Setelah Anda menyiapkan kebijakan organisasi dengan batasan ini, batasan tersebut akan berlaku saat berikutnya Anda menggunakan perintah gcloud compute url-maps untuk menambahkan layanan backend ke peta URL. Batasan ini tidak memengaruhi referensi yang ada ke layanan backend lintas project secara retroaktif.

Untuk mengetahui contoh petunjuk penggunaan batasan ini, lihat Menyiapkan batasan daftar dengan kebijakan organisasi.

Membatasi penghapusan lien project VPC Bersama

Batasan boolean ini membatasi kumpulan pengguna yang dapat menghapus lien project host VPC Bersama tanpa izin tingkat organisasi dengan batasan ini yang sudah ditetapkan ke True.

  • Nama: Membatasi penghapusan lien project VPC Bersama
  • ID: constraints/compute.restrictXpnProjectLienRemoval

Secara default, setiap pengguna yang memiliki izin untuk memperbarui lien dapat menghapus lien project host VPC Bersama. Untuk menerapkan batasan ini, izin harus diberikan di tingkat organisasi.

Untuk mengetahui contoh petunjuk tentang cara menggunakan batasan ini, lihat Menyiapkan batasan boolean dengan kebijakan organisasi.

Menyiapkan batasan boolean dengan kebijakan organisasi

Konsol

Untuk menetapkan kebijakan organisasi dari konsol, selesaikan langkah-langkah berikut:

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

    Buka Organization policies

  2. Di kolom Filter, telusuri batasan menurut Name atau ID.
  3. Klik nama batasan.
  4. Klik Edit untuk mengedit batasan.
  5. Pada halaman Edit, pilih Customize.
  6. Di bagian Penegakan, pilih opsi penerapan:
    • Untuk mengaktifkan penerapan batasan ini, pilih On.
    • Untuk menonaktifkan penerapan batasan ini, pilih Nonaktif.
  7. Setelah membuat perubahan, klik Save untuk menerapkan setelan batasan.

Untuk mengetahui petunjuk mendetail mengenai cara menyesuaikan kebijakan organisasi menggunakan Konsol Google Cloud, baca artikel Menyesuaikan kebijakan untuk batasan boolean.

gcloud

Untuk mengaktifkan penerapan batasan boolean untuk kebijakan organisasi, gunakan perintah gcloud resource-manager org-policies enable-enforce sebagai berikut.

Untuk mengaktifkan batasan penghapusan lien project VPC Bersama:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.restrictXpnProjectLienRemoval

Untuk menonaktifkan load balancing global:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.disableGlobalLoadBalancing

Untuk petunjuk mendetail tentang cara menangani batasan boolean di gcloud, lihat Menggunakan batasan.

Menyiapkan batasan daftar dengan kebijakan organisasi

Konsol

Untuk menetapkan kebijakan organisasi dari konsol, selesaikan langkah-langkah berikut:

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

    Buka Organization policies

  2. Di kolom Filter, telusuri batasan menurut Name atau ID. Misalnya, untuk membatasi project host VPC Bersama, Anda menelusuri ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Klik nama batasan.
  4. Klik Edit untuk mengedit batasan.
  5. Untuk membuat kebijakan kustom, pilih Customize dan tentukan daftar yang diizinkan atau daftar tolak resource. Untuk petunjuk lebih detail mengenai cara menyesuaikan kebijakan organisasi menggunakan Konsol Google Cloud, lihat Menyesuaikan kebijakan untuk daftar batasan.
  6. Setelah membuat perubahan, klik Save untuk menerapkan setelan batasan.

gcloud

Bagian ini memberikan beberapa contoh konfigurasi untuk menunjukkan cara membuat dan menetapkan file kebijakan organisasi dengan batasan daftar. Untuk petunjuk lebih detail tentang menangani batasan daftar dan kebijakan organisasi di gcloud, lihat Menggunakan batasan.

  1. Buat file kebijakan. Gunakan contoh konfigurasi JSON berikut untuk membuat file kebijakan Anda sendiri berdasarkan persyaratan Anda.

    • Membatasi jenis load balancer

      • Hanya mengizinkan subset load balancer

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allowedValues": [
            "INTERNAL_TCP_UDP",
            "INTERNAL_HTTP_HTTPS",
            "EXTERNAL_NETWORK_TCP_UDP",
            "EXTERNAL_TCP_PROXY",
            "EXTERNAL_SSL_PROXY",
            "EXTERNAL_HTTP_HTTPS"
          ]
        }
        }
        
      • Menolak semua load balancer eksternal

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "in:EXTERNAL"
          ]
        }
        }
        
      • Menolak semua load balancer

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • Membatasi jenis penerusan protokol

      • Menolak semua penerusan protokol

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • Hanya izinkan penerusan protokol internal

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • Membatasi konfigurasi VPC Bersama

      • Membatasi project host VPC Bersama

        {
        "constraint": "constraints/compute.restrictSharedVpcHostProjects",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID"
          ]
        }
        }
        
      • Membatasi subnetwork VPC Bersama

        {
        "constraint": "constraints/compute.restrictSharedVpcSubnetworks",
        "listPolicy": {
          "deniedValues": [
            "under:organizations/ORGANIZATION_ID",
            "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
          ]
        }
        }
        
      • Membatasi layanan backend VPC Bersama

        {
        "constraint": "constraints/compute.restrictCrossProjectServices",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID",
            "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
          ]
        }
        }
        
  2. Terapkan batasan ke resource: organisasi, folder, atau project.

    Untuk organisasi, jalankan perintah berikut:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    Untuk folder, jalankan perintah berikut:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    Untuk project, jalankan perintah berikut:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    Ganti kode berikut:

Langkah selanjutnya