Menyiapkan kebijakan otorisasi untuk Load Balancer Aplikasi

Di Load Balancer Aplikasi, kebijakan otorisasi dipanggil setelah mengevaluasi ekstensi rute, kebijakan keamanan jaringan (dievaluasi oleh Google Cloud Armor), kebijakan berbagi resource lintas origin (CORS), dan Identity-Aware Proxy (IAP), tetapi sebelum menjalankan tindakan pengelolaan traffic.

Halaman ini menunjukkan cara menyiapkan kebijakan otorisasi untuk Load Balancer Aplikasi.

Sebelum memulai

Menyiapkan load balancer

Jika Anda belum membuat load balancer, lihat halaman berikut untuk menyiapkan Load Balancer Aplikasi pilihan Anda:

Membuat dan mengonfigurasi tag aman atau akun layanan

Dengan Load Balancer Aplikasi internal, Anda dapat secara opsional menerapkan kebijakan otorisasi berdasarkan tag aman dan akun layanan yang dilampirkan ke VM klien. Jika Anda berencana untuk menerapkan kebijakan otorisasi berbasis tag, gunakan Resource Manager untuk membuat tag.

Jika menggunakan Load Balancer Aplikasi eksternal, Anda tidak perlu membuat dan mengonfigurasi tag aman.

Untuk mengetahui informasi selengkapnya, lihat Menggunakan Tag untuk firewall dan Akun layanan.

Melampirkan akun layanan ke VM klien

Untuk mengetahui informasi langkah demi langkah tentang cara menambahkan akun layanan ke instance VM, lihat dokumen berikut:

Membuat kunci dan nilai tag yang aman

Sebelum mengikat tag aman dengan template grup instance, Anda harus membuat kunci dan nilai tag. Saat membuat tag, tetapkan tag tersebut dengan tujuan GCE_FIREWALL. Fitur jaringan Google Cloud, termasuk Secure Web Proxy dan kebijakan otorisasi, memerlukan tujuan GCE_FIREWALL untuk menerapkan tag.

Untuk membuat tag yang aman, Anda memerlukan peran Tag Administrator (roles/resourcemanager.tagAdmin).

Konsol

  1. Di konsol Google Cloud, buka halaman Tag.

    Buka Tag

  2. Klik Create .

  3. Di kolom Tag key description, masukkan deskripsi.

  4. Centang kotak Untuk digunakan dengan firewall jaringan.

  5. Dalam daftar Project, pilih project Google Cloud tempat Anda ingin membuat tag.

  6. Di kolom Network, pilih LB_NETWORK.

  7. Klik Tambahkan nilai.

  8. Di kolom Tag value, masukkan TAG_VALUE. Nilai harus berupa nilai numerik.

  9. Di kolom Tag value description, masukkan deskripsi.

  10. Setelah selesai menambahkan nilai tag, klik Buat kunci tag.

gcloud

  1. Buat kunci tag aman.

    gcloud resource-manager tags keys create TAG_KEY \
        --parent=organizations/ORG_ID \
        --purpose=GCE_FIREWALL \
        --purpose-data=network=LB_NETWORK
    

    Ganti kode berikut:

    • TAG_KEY: nama kunci tag aman Anda.
    • ORG_ID: ID organisasi Anda.
    • LB_NETWORK: nama jaringan VPC Anda.
  2. Tambahkan nilai tag aman ke kunci tag numerik.

    gcloud resource-manager tags values create TAG_VALUE \
        --parent=ORG_ID/TAG_KEY
    

    Ganti TAG_VALUE dengan nilai tag numerik.

Mengikat tag aman ke template grup instance

Administrator tag dapat mengikat tag aman ke setiap instance VM atau template grup instance dan melampirkan nilai tag ke VM atau backend template.

Untuk mengikat tag aman, Anda memerlukan peran Tag User (roles/resourcemanager.tagUser).

  1. Tentukan awalan nama lengkap untuk project dan zona Anda:

    FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda.
    • ZONE: zona tempat grup instance terkelola berada.
  2. Dapatkan ID template grup instance:

    TEMPLATE_ID=$(gcloud compute instance-templates describe TEMPLATE_NAME --region=LOCATION --format='value(id)')
    

    Ganti kode berikut:

    • TEMPLATE_NAME: nama template grup instance Anda.
    • LOCATION: region Google Cloud Anda.
  3. Gabungkan nilai FULL_NAME_PREFIX dan TEMPLATE_ID:

    PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID"
    echo $PARENT
    
  4. Buat binding.

    gcloud resource-manager tags bindings create \
        --location LOCATION \
        --tag-value ORG_ID/TAG_KEY/TAG_VALUE \
        --parent PARENT
    

    Ganti kode berikut:

    • ORG_ID: ID organisasi Anda.
    • LOCATION: region Google Cloud Anda.
    • TAG_KEY: nama kunci tag aman Anda.
    • TAG_VALUE: nilai tag numerik.

Membuat kebijakan otorisasi

Untuk membuat kebijakan otorisasi, Anda membuat file YAML yang menentukan target dan aturan, lalu mengimpor file menggunakan perintah gcloud beta network-security authz-policies.

Bagian ini memberikan petunjuk untuk membuat berbagai jenis kebijakan otorisasi yang dilampirkan ke aturan penerusan load balancer.

Kebijakan otorisasi untuk menolak permintaan

Global dan Lintas region

Jika Anda menggunakan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi internal lintas region, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk menolak permintaan tertentu.

    Contoh berikut membuat file authz-policy-deny.yaml untuk aturan pengalihan LB_FORWARDING_RULE di lokasi global. Kebijakan ini menolak klien dari *.hello.com untuk mengakses jalur URL /api/payments.

    $ cat >authz-policy-deny.yaml <<EOF
    name: my-authz-policy-deny
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - from:
        sources:
        - principals:
          - suffix: ".hello.com"
      to:
        operations:
        - paths:
          - prefix: "/api/payments"
    action: DENY
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Untuk Load Balancer Aplikasi eksternal global, tetapkan skema ke EXTERNAL_MANAGED. Untuk Load Balancer Aplikasi internal lintas-region, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi:

    gcloud beta network-security authz-policies import my-authz-policy-deny \
        --source=authz-policy-deny.yaml \
        --location=global
    

Regional

Jika Anda menggunakan Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk mengizinkan permintaan tertentu.

    Contoh berikut membuat file authz-policy-deny.yaml untuk aturan pengalihan LB_FORWARDING_RULE di region Google Cloud. Kebijakan ini menolak klien dengan identitas yang cocok dengan *.hello.com untuk mengakses jalur URL /api/payments. Kebijakan ini juga menolak akses ke VM klien apa pun dengan akun layanan my-sa-123@PROJECT_ID.iam.gserviceaccount.com ke URL /api/payments.

    $ cat >authz-policy-deny.yaml <<EOF
    name: my-authz-policy-deny
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - from:
        sources:
        - principals:
          - suffix: ".hello.com"
      to:
        operations:
        - paths:
          - prefix: "/api/payments"
    - from:
        sources:
        - resources:
           - iamServiceAccount:
               exact: "my-sa-123@PROJECT_ID.iam.gserviceaccount.com"
      to:
        operations:
        - paths:
          - prefix: "/api/payments"
    action: DENY
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Untuk Load Balancer Aplikasi eksternal regional, tetapkan skema ke EXTERNAL_MANAGED. Untuk Load Balancer Aplikasi internal regional, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION: region Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi di region LOCATION:

    gcloud beta network-security authz-policies import my-authz-policy-deny \
        --source=authz-policy-deny.yaml \
        --location=LOCATION
    

Kebijakan otorisasi untuk mengizinkan permintaan

Global dan Lintas region

Jika Anda menggunakan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi internal lintas region, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk mengizinkan permintaan tertentu.

    Contoh berikut membuat file authz-policy-allow.yaml untuk aturan pengalihan LB_FORWARDING_RULE di lokasi global. Kebijakan ini hanya mengizinkan klien dari *.example.com untuk mengakses jalur URL /api/payments.

    $ cat >authz-policy-allow.yaml <<EOF
    name: my-authz-policy-allow
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - from:
      sources:
      - principals:
        - suffix: ".example.com"
      to:
        operations:
        - paths:
          - exact: "/api/payments"
    action: ALLOW
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Untuk Load Balancer Aplikasi eksternal global, tetapkan skema ke EXTERNAL_MANAGED. Untuk Load Balancer Aplikasi internal lintas-region, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi:

    gcloud beta network-security authz-policies import my-authz-policy-allow \
        --source=authz-policy-allow.yaml \
        --location=global
    

Regional

Jika Anda menggunakan Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk mengizinkan permintaan tertentu.

    Contoh berikut membuat file authz-policy-allow.yaml untuk aturan penerusan LB_FORWARDING_RULE di region Google Cloud dari Load Balancer Aplikasi internal regional. Kebijakan ini hanya mengizinkan klien dari *.example.com untuk mengakses jalur URL /api/payments saat permintaan berasal dari VM dengan tag resource TAG_VALUE.

    $ cat >authz-policy-allow.yaml <<EOF
    name: my-authz-policy-allow
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - from:
      sources:
      - principals:
        - suffix: ".example.com"
        resources:
        - tagValueIdSet:
          - ids: "TAG_VALUE"
      to:
        operations:
        - paths:
          - exact: "/api/payments"
    action: ALLOW
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Jika Anda menggunakan Load Balancer Aplikasi eksternal regional, tetapkan skema ke EXTERNAL_MANAGED. Jika Anda menggunakan Load Balancer Aplikasi internal regional, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION: region Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi di region LOCATION:

    gcloud beta network-security authz-policies import my-authz-policy-allow \
        --source=authz-policy-allow.yaml \
        --location=LOCATION
    

Kebijakan otorisasi untuk didelegasikan ke ekstensi layanan

Sebelum memulai, siapkan mesin otorisasi eksternal. Untuk mengetahui informasi selengkapnya tentang ekstensi layanan, lihat Ringkasan info Cloud Load Balancing.

Global dan Lintas region

Jika Anda menggunakan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi internal lintas region, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk mendelegasikan permintaan tertentu ke layanan eksternal.

    Contoh berikut membuat file authz-policy-custom.yaml untuk aturan penerusan LB_FORWARDING_RULE di lokasi global. Kebijakan memanggil ekstensi AUTHZ_EXTENSION untuk semua traffic ke jalur URL /api/payments saat permintaan berisi header Authorization yang tidak kosong.

    $ cat >authz-policy-custom.yaml <<EOF
    name: my-authz-policy-custom
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - to:
        operations:
        - paths:
          - exact: "/api/payments"
      when: 'request.headers["Authorization"] != ""'
    action: CUSTOM
    customProvider:
      authzExtension:
        resources:
        - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/authzExtensions/AUTHZ_EXTENSION"
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Untuk Load Balancer Aplikasi eksternal global, tetapkan skema ke EXTERNAL_MANAGED. Untuk Load Balancer Aplikasi internal lintas-region, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
    • AUTHZ_EXTENSION: nama ekstensi otorisasi.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi:

    gcloud beta network-security authz-policies import my-authz-policy-custom \
        --source=authz-policy-custom.yaml \
        --location=global
    

Regional

Jika Anda menggunakan Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal regional, ikuti langkah-langkah berikut untuk membuat dan mengimpor kebijakan otorisasi:

  1. Buat file kebijakan otorisasi untuk mendelegasikan permintaan tertentu ke layanan eksternal.

    Contoh berikut membuat file authz-policy-custom.yaml untuk aturan penerusan LB_FORWARDING_RULE di region Google Cloud dari Load Balancer Aplikasi internal regional. Kebijakan ini memanggil ekstensi AUTHZ_EXTENSION untuk semua traffic ke jalur URL /api/payments saat permintaan berisi header Authorization yang tidak kosong.

    $ cat >authz-policy-custom.yaml <<EOF
    name: my-authz-policy-custom
    target:
      loadBalancingScheme: LB_SCHEME
      resources:
      - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE"
    httpRules:
    - to:
        operations:
        - paths:
          - exact: "/api/payments"
      when: 'request.headers["Authorization"] != ""'
    action: CUSTOM
    customProvider:
      authzExtension:
        resources:
        - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION"
    EOF
    

    Ganti kode berikut:

    • LB_SCHEME: skema load balancing Anda. Untuk Load Balancer Aplikasi eksternal regional, tetapkan skema ke EXTERNAL_MANAGED. Untuk Load Balancer Aplikasi internal regional, tetapkan skema ke INTERNAL_MANAGED.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION: region Google Cloud Anda.
    • LB_FORWARDING_RULE: nama aturan penerusan load balancer.
    • AUTHZ_EXTENSION: nama ekstensi otorisasi.
  2. Buat kebijakan otorisasi dan impor file YAML.

    Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi di region LOCATION:

    gcloud beta network-security authz-policies import my-authz-policy-custom \
        --source=authz-policy-custom.yaml \
        --location=LOCATION
    

Menguji kebijakan otorisasi

Untuk menguji kebijakan otorisasi, kirim beberapa traffic ke load balancer. Untuk mengetahui informasi selengkapnya, lihat halaman berikut:

Memahami log kebijakan otorisasi di Cloud Logging

Untuk memahami cara kebijakan otorisasi dicatat ke dalam log saat permintaan diizinkan atau ditolak, lihat hal berikut:

  • Jika permintaan tidak cocok dengan kebijakan ALLOW atau DENY, kebijakan DENY akan mengizinkan permintaan dan mencatatnya sebagai allowed_as_no_deny_policies_matched_request. Sebaliknya, kebijakan ALLOW menolak permintaan dan mencatatnya sebagai denied_as_no_allow_policies_matched_request. Karena salah satu kebijakan menolak permintaan, permintaan tersebut ditolak.

    Jika Anda menggunakan Load Balancer Aplikasi eksternal global, statusDetails ditetapkan ke denied_by_authz_policy dalam log. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "allowed_as_no_deny_policies_matched_request"
                result: "ALLOWED"
              }
              1: {
                details: "denied_as_no_allow_policies_matched_request"
                result: "DENIED"
              }
            ]
            result: "DENIED"
          }
          backendTargetProjectNumber: "projects/12345567"
          remoteIp: "00.100.11.104"
          proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\""
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    

    Jika Anda menggunakan Load Balancer Aplikasi internal regional, Load Balancer Aplikasi eksternal regional, atau Load Balancer Aplikasi internal lintas region, proxyStatus akan ditetapkan ke error=\"http_request_error\"; details=\"denied_by_authz_policy\" dalam log. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "allowed_as_no_deny_policies_matched_request"
                result: "ALLOWED"
              }
              1: {
                details: "denied_as_no_allow_policies_matched_request"
                result: "DENIED"
              }
            ]
            result: "DENIED"
          }
          backendTargetProjectNumber: "projects/12345567"
          remoteIp: "00.100.11.104"
          proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\""
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    
  • Jika permintaan cocok dengan kebijakan DENY, permintaan tersebut akan ditolak dan kebijakan yang menolak permintaan akan dicatat ke dalam log.

    Jika Anda menggunakan Load Balancer Aplikasi eksternal global, statusDetails ditetapkan ke denied_by_authz_policy dalam log dan nama kebijakan yang menolak permintaan dicatat dalam log policies. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "name: "projects/12345567/locations/global/authzPolicies/deny-authz-policy-test""
                result: "DENIED"
              }
            ]
            result: "DENIED"
          }
          backendTargetProjectNumber: "projects/12345567"
          cacheDecision: [2]
          remoteIp: "00.100.11.104"
          statusDetails: "denied_by_authz_policy"
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    

    Jika Anda menggunakan Load Balancer Aplikasi internal regional, Load Balancer Aplikasi eksternal regional, atau Load Balancer Aplikasi internal lintas region, proxyStatus ditetapkan ke error=\"http_request_error\"; details=\"denied_by_authz_policy\" dan nama kebijakan dicatat ke dalam log di policies. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "name: "projects/12345567/locations/$REGION/authzPolicies/deny-authz-policy-test""
                result: "DENIED"
              }
            ]
            result: "DENIED"
          }
          backendTargetProjectNumber: "projects/12345567"
          remoteIp: "00.100.11.104"
          proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\""
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    
  • Jika permintaan tidak cocok dengan kebijakan DENY, tetapi cocok dengan kebijakan ALLOW, permintaan akan diizinkan. Dalam log, tindakan ini dicatat sebagai allowed_as_no_deny_policies_matched_request untuk kebijakan DENY. Kebijakan yang mengizinkan permintaan juga dicatat ke dalam log.

    Jika Anda menggunakan Load Balancer Aplikasi eksternal global, tidak ada statusDetails dalam log. Kebijakan yang mengizinkan permintaan juga dicatat ke dalam log di policies. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "allowed_as_no_deny_policies_matched_request"
                result: "ALLOWED"
              }
              1: {
                details: "name: "projects/12345567/locations/global/authzPolicies/allow-authz-policy-test""
                result: "ALLOWED"
              }
            ]
            result: "ALLOWED"
          }
          backendTargetProjectNumber: "projects/12345567"
          cacheDecision: [2]
          remoteIp: "00.100.11.104"
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    

    Jika Anda menggunakan Load Balancer Aplikasi internal regional, Load Balancer Aplikasi eksternal regional, atau Load Balancer Aplikasi internal lintas region, tidak ada kolom proxyStatus dalam log. Kebijakan yang mengizinkan permintaan juga dicatat dalam log di policies. Lihat contoh berikut:

      {
        httpRequest: {8}
        insertId: "example-id"
        jsonPayload: {
          @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
          authzPolicyInfo: {
            policies: [
              0: {
                details: "allowed_as_no_deny_policies_matched_request"
                result: "ALLOWED"
              }
              1: {
                details: "name: "projects/12345567/locations/$REGION/authzPolicies/allow-authz-policy-test""
                result: "ALLOWED"
              }
            ]
            result: "ALLOWED"
          }
          backendTargetProjectNumber: "projects/12345567"
          cacheDecision: [2]
          remoteIp: "00.100.11.104"
        }
        logName: "projects/example-project/logs/requests"
        receiveTimestamp: "2024-08-28T15:33:56.046651035Z"
        resource: {2}
        severity: "WARNING"
        spanId: "3e1a09a8e5e3e14d"
        timestamp: "2024-08-28T15:33:55.355042Z"
        trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509"
      }
    

Langkah selanjutnya