Batasan kebijakan organisasi untuk Cloud Load Balancing

Layanan Kebijakan Organisasi memberi Anda kontrol terpusat dan terprogram atas resource organisasi. Sebagai administrator kebijakan organisasi, Anda dapat menentukan kebijakan organisasi, yang merupakan serangkaian batasan yang disebut batasan yang berlaku untuk resource Google Cloud dan turunan dari resource tersebut di Hierarki resource Google Cloud.

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 memiliki resource load balancing yang sudah ada sebelumnya 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 berisi 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
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS untuk Load Balancer Aplikasi internal lintas region
    • EXTERNAL_MANAGED_HTTP_HTTPS untuk Load Balancer Aplikasi eksternal regional
    • 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
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY untuk Load Balancer Jaringan proxy internal lintas region dengan proxy TCP
    • 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
  • 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: diikuti dengan INTERNAL atau EXTERNAL. Misalnya, mengizinkan in:INTERNAL akan mengizinkan semua load balancer internal dari daftar sebelumnya.

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

Setelah Anda menetapkan kebijakan, kebijakan 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. Karena alasan ini, sebaiknya tetapkan kolom inheritFromParent ke true, yang memastikan bahwa kebijakan di lapisan yang lebih tinggi juga dipertimbangkan.

Pesan error GKE

Jika Anda menggunakan objek Layanan dan Ingress Google Kubernetes Engine (GKE), penggunaan kebijakan organisasi ini untuk membatasi pembuatan load balancer akan menghasilkan pesan error yang mirip dengan 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 diberlakukan, hanya produk load balancing regional tanpa dependensi global yang dapat dibuat.

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

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

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

Membatasi jenis deployment penerusan protokol

Gunakan kebijakan organisasi untuk membatasi jenis deployment penerusan protokol (internal atau eksternal) yang dapat dibuat di organisasi Anda. Tetapkan batasan kebijakan organisasi berikut:

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

Untuk mengonfigurasi batasan compute.restrictProtocolForwardingCreationForTypes, Anda menentukan daftar yang diizinkan atau ditolak dari jenis deployment penerusan protokol yang akan diizinkan atau ditolak. Daftar nilai yang diizinkan atau ditolak hanya dapat menyertakan nilai berikut:

  • INTERNAL
  • EXTERNAL

Secara default, organisasi yang baru dibuat memiliki kebijakan ini yang dikonfigurasi untuk hanya mengizinkan penerusan protokol INTERNAL. Artinya, setiap aturan penerusan yang terkait dengan instance target dibatasi untuk hanya menggunakan alamat IP internal. Jika Anda ingin menggunakan penerusan protokol dengan alamat IP eksternal, atau, jika Anda ingin melarang pengguna menggunakan penerusan protokol dengan alamat IP internal, Anda harus memperbarui kebijakan organisasi ini.

Setelah Anda memperbarui kebijakan, perubahan akan diterapkan saat Anda membuat aturan penerusan baru yang terkait dengan instance target. Batasan ini tidak diterapkan secara retroaktif pada konfigurasi penerusan protokol yang ada.

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

Jika Anda mencoba membuat deployment penerusan protokol dari jenis yang melanggar batasan, upaya tersebut akan gagal dan pesan error akan dihasilkan. 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 tersebut akan diterapkan secara hierarkis.

Menerapkan batasan VPC Bersama

Gunakan kebijakan organisasi berikut untuk membatasi cara pengguna diizinkan untuk menyiapkan deployment VPC Bersama.

Membatasi project host VPC Bersama

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

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

Secara default, sebuah project dapat terhubung ke project host mana pun dalam organisasi yang sama, sehingga menjadi project layanan. Saat menetapkan batasan compute.restrictSharedVpcHostProjects, Anda menentukan daftar yang diizinkan atau daftar yang ditolak untuk project host dengan cara berikut:

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

Untuk contoh petunjuk tentang cara menggunakan 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: Batasi subnetwork VPC Bersama
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Secara default, resource yang memenuhi syarat dapat menggunakan subnetwork VPC Bersama mana pun. Saat menetapkan batasan compute.restrictSharedVpcSubnetworks, Anda menentukan 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 dalam resource yang ditentukan dalam hierarki resource. Gunakan format berikut:
    • di bagian:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Untuk contoh petunjuk tentang cara menggunakan 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 dalam deployment VPC Bersama yang sama selama pengguna yang melakukan tindakan tersebut memiliki izin compute.backendServices.use. Saat menetapkan batasan restrictCrossProjectServices, Anda menentukan daftar yang diizinkan atau ditolak untuk 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 berdasarkan resource yang ditentukan dalam hierarki resource. Gunakan format berikut:
    • di bagian:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

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

Untuk contoh petunjuk tentang cara menggunakan 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 jika batasan ini sudah disetel ke True.

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

Secara default, 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 contoh petunjuk tentang cara menggunakan batasan ini, lihat Menyiapkan batasan boolean dengan kebijakan organisasi.

Membatasi kemampuan TLS dengan batasan kustom

Untuk memenuhi persyaratan kepatuhan dan membatasi kemampuan Transport Layer Security (TLS) tertentu, Anda dapat membuat batasan kebijakan organisasi berikut dan menggunakannya bersama dengan batasan kustom untuk resource kebijakan SSL:

  • Nama: Kebijakan Wajib SSL
  • ID: constraints/compute.requireSslPolicy

Dengan menggunakan batasan constraints/compute.requireSslPolicy bersama dengan batasan kustom untuk kolom kebijakan SSL Anda sendiri, Anda dapat membuat batasan yang disesuaikan dengan deployment Anda. Misalnya, Anda dapat melakukan hal berikut:

  • Tingkatkan keamanan dan penuhi persyaratan kepatuhan dengan membatasi penggunaan versi TLS sebelumnya (seperti 1.0 dan 1.1) dan cipher suite.
  • Meningkatkan performa dengan mengurangi jumlah handshake yang diperlukan dan dengan meningkatkan kompatibilitas load balancer dengan klien.
  • Terapkan batasan ke node resource tertentu dan turunannya. Misalnya, jika Anda menolak TLS versi 1.0 untuk organisasi, TLS tersebut juga akan ditolak untuk semua folder dan project (turunan) yang berasal dari organisasi tersebut.

Untuk menerapkan kebijakan SSL untuk Load Balancer Aplikasi atau Load Balancer Jaringan proxy, Anda harus melampirkannya ke proxy HTTPS target atau proxy SSL target load balancer.

Untuk memperbarui kebijakan SSL yang ada, lihat memperbarui kebijakan SSL yang ada yang dilampirkan ke proxy target.

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 berdasarkan Name atau ID.
  3. Klik nama batasan.
  4. Klik Edit untuk mengedit batasan.
  5. Pada halaman Edit, pilih Customize.
  6. Di bagian Enforcement, pilih opsi penerapan:
    • Untuk mengaktifkan penerapan batasan ini, pilih On.
    • Untuk menonaktifkan penerapan batasan ini, pilih Nonaktif.
  7. Setelah melakukan perubahan, klik Simpan untuk menerapkan setelan batasan.

Untuk petunjuk mendetail tentang cara menyesuaikan kebijakan organisasi menggunakan konsol Google Cloud, lihat Menyesuaikan kebijakan untuk batasan boolean.

gcloud

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

Untuk mengaktifkan pembatasan 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 menggunakan 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 berdasarkan 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 Sesuaikan dan tentukan daftar yang diizinkan atau ditolak untuk resource. Untuk petunjuk selengkapnya tentang cara menyesuaikan kebijakan organisasi menggunakan konsol Google Cloud, lihat Menyesuaikan kebijakan untuk batasan daftar.
  6. Setelah melakukan perubahan, klik Simpan untuk menerapkan setelan batasan.

gcloud

Bagian ini menyediakan beberapa contoh konfigurasi untuk menunjukkan cara membuat dan menetapkan file kebijakan organisasi dengan batasan daftar. Untuk petunjuk yang lebih mendetail tentang cara menggunakan 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 sebagian load balancer

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allowedValues": [
            "INTERNAL_TCP_UDP",
            "EXTERNAL_NETWORK_TCP_UDP"
          ]
        }
        }
        
      • 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 mengizinkan 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:

Menyiapkan kebijakan organisasi untuk menerapkan kebijakan SSL ke proxy HTTPS target dan proxy SSL target

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 berdasarkan Name atau ID.

  3. Klik nama batasan.

  4. Klik Edit untuk mengedit batasan.

  5. Untuk membuat kebijakan kustom, pilih Sesuaikan dan tentukan daftar yang diizinkan atau ditolak untuk resource.

  6. Setelah melakukan perubahan, klik Simpan untuk menerapkan setelan batasan.

gcloud

Bagian ini memberikan beberapa contoh konfigurasi yang menunjukkan cara membuat dan menetapkan file kebijakan organisasi dengan batasan constraints/compute.requireSslPolicy.

  • Buat file kebijakan untuk melarang penggunaan kebijakan SSL.

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allValues": "DENY"
      }
    }
    
  • Buat file kebijakan untuk menerapkan kebijakan SSL ke semua proxy HTTPS dan SSL target berdasarkan resource yang ditentukan dalam hierarki resource:

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allowedValues": [
          "under:folders/FOLDER_ID",
          "under:projects/PROJECT_ID"
        ]
      }
    }
    
  • Terapkan batasan untuk menargetkan proxy HTTPS dan SSL: organisasi, folder, atau project.

    Untuk organisasi, jalankan perintah berikut:

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

    Untuk folder, jalankan perintah berikut:

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

    Untuk project, jalankan perintah berikut:

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

    Ganti kode berikut:

  • Untuk mendapatkan kebijakan yang efektif guna memverifikasi perilaku default resource (organisasi, folder, atau project), jalankan perintah berikut:

    Untuk organisasi:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --organization=ORGANIZATION_ID
    

    Untuk folder:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --folder=FOLDER_ID
    

    Untuk project:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --project=PROJECT_ID
    
  • Untuk menghapus kebijakan dari resource (organisasi, folder, atau project), jalankan perintah berikut:

    Untuk organisasi:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --organization=ORGANIZATION_ID
    

    Untuk folder:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --folder=FOLDER_ID
    

    Untuk project:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --project=PROJECT_ID
    

Untuk menyiapkan batasan kustom, lihat Menggunakan batasan kustom.

Langkah selanjutnya