アプリケーション ロードバランサの認可ポリシーを設定する

アプリケーション ロードバランサでは、認可ポリシーは、ルート拡張、ネットワーク セキュリティ ポリシー(Google Cloud Armor によって評価)、クロスオリジン リソース シェアリング(CORS)ポリシー、Identity-Aware Proxy(IAP)が評価されてからトラフィック管理アクションが実行される前までの間に呼び出されます。

このページでは、アプリケーション ロードバランサの認可ポリシーを設定する方法について説明します。

始める前に

ロードバランサを設定する

ロードバランサを作成していない場合は、次のページを参照して、目的のアプリケーション ロードバランサを設定してください。

セキュアタグまたはサービス アカウントを作成して構成する

内部アプリケーション ロードバランサでは、必要に応じて、クライアント VM に設定されているセキュアタグとサービス アカウントに基づいて認可ポリシーを適用できます。タグベースの認可ポリシーを適用する場合は、Resource Manager を使用してタグを作成します。

外部アプリケーション ロードバランサを使用している場合は、セキュアタグを作成して構成する必要はありません。

詳細については、ファイアウォールにタグを使用するサービス アカウントをご覧ください。

サービス アカウントをクライアント VM に接続する

サービス アカウントを VM インスタンスに接続する手順については、次のドキュメントをご覧ください。

セキュアタグのキーと値を作成する

セキュアタグをインスタンス グループ テンプレートにバインドする前に、タグのキーと値を作成する必要があります。タグを作成するときに、GCE_FIREWALL の目的を指定します。Secure Web Proxy や認可ポリシーなどの Google Cloud ネットワーキング機能では、タグを適用する GCE_FIREWALL 目的が必要です。

セキュアタグを作成するには、タグ管理者のロールroles/resourcemanager.tagAdmin)が必要です。

コンソール

  1. Google Cloud コンソールで [タグ] ページに移動します。

    [タグ] に移動

  2. [作成] をクリックします。

  3. [タグキーの説明] フィールドに説明を入力します。

  4. [ネットワーク ファイアウォールで使用する] チェックボックスをオンにします。

  5. [プロジェクト] リストで、タグを作成する Google Cloud プロジェクトを選択します。

  6. [ネットワーク] フィールドで、LB_NETWORK を選択します。

  7. [値を追加] をクリックします。

  8. [タグ値] フィールドに「TAG_VALUE」と入力します。値は数値で指定してください。

  9. [タグの値の説明] フィールドに説明を入力します。

  10. タグ値の追加が完了したら、[タグキーを作成] をクリックします。

gcloud

  1. セキュアタグのキーを作成します。

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

    次のように置き換えます。

    • TAG_KEY: セキュアタグのキーの名前。
    • ORG_ID: 組織の ID。
    • LB_NETWORK: VPC ネットワークの名前。
  2. セキュアタグ値を数値タグキーに追加します。

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

    TAG_VALUE は数値のタグ値に置き換えます。

セキュアタグをインスタンス グループ テンプレートにバインドする

タグ管理者は、個々の VM インスタンスまたはインスタンス グループ テンプレートにセキュアタグをバインドし、タグの値を VM またはテンプレートのバックエンドに接続できます。

セキュアタグをバインドするには、タグユーザー ロールroles/resourcemanager.tagUser)が必要です。

  1. プロジェクトとゾーンの完全な名前の接頭辞を定義します。

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

    次のように置き換えます。

    • PROJECT_ID: オブジェクトの ID。
    • ZONE: マネージド インスタンス グループが配置されているゾーン。
  2. インスタンス グループ テンプレートの ID を取得します。

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

    次のように置き換えます。

    • TEMPLATE_NAME: インスタンス グループ テンプレートの名前。
    • LOCATION: Google Cloud リージョン。
  3. FULL_NAME_PREFIXTEMPLATE_ID の値を連結します。

    PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID"
    echo $PARENT
    
  4. バインディングを作成します。

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

    次のように置き換えます。

    • ORG_ID: 組織の ID。
    • LOCATION: Google Cloud リージョン。
    • TAG_KEY: セキュアタグのキーの名前。
    • TAG_VALUE: 数値タグ値。

認可ポリシーを作成する

認可ポリシーを作成するには、ターゲットとルールを定義する YAML ファイルを作成し、gcloud beta network-security authz-policies コマンドを使用してインポートします。

このセクションでは、ロードバランサの転送ルールに適用するさまざまなタイプの認可ポリシーを作成する手順について説明します。

リクエストを拒否する認可ポリシー

グローバルとクロスリージョン

グローバル外部アプリケーション ロードバランサまたはクロスリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを拒否する認可ポリシー ファイルを作成します。

    次の例では、global ロケーションに転送ルール LB_FORWARDING_RULEauthz-policy-deny.yaml ファイルを作成します。このポリシーにより、*.hello.com のクライアントが /api/payments URL パスにアクセスできなくなります。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。グローバル外部アプリケーション ロードバランサの場合は、スキームを EXTERNAL_MANAGED に設定します。クロスリージョン内部アプリケーション ロードバランサの場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンド例は、前に作成したポリシー ファイルをインポートし、認可ポリシーを作成します。

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

リージョン

リージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを許可する認可ポリシー ファイルを作成します。

    次の例では、Google Cloud リージョン内の転送ルール LB_FORWARDING_RULEauthz-policy-deny.yaml ファイルを作成します。このポリシーは、*.hello.com に一致する ID を持つクライアントから /api/payments URL パスへのアクセスを拒否します。このポリシーは、サービス アカウント my-sa-123@PROJECT_ID.iam.gserviceaccount.com を持つクライアント VM からの /api/payments URL へのアクセスも拒否します。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。リージョン外部アプリケーション ロードバランサの場合は、スキームを EXTERNAL_MANAGED に設定します。リージョン内部アプリケーション ロードバランサの場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LOCATION: Google Cloud リージョン。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンドの例では、前に作成したポリシー ファイルをインポートし、LOCATION リージョンに認可ポリシーを作成します。

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

リクエストを許可する認可ポリシー

グローバルとクロスリージョン

グローバル外部アプリケーション ロードバランサまたはクロスリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを許可する認可ポリシー ファイルを作成します。

    次の例では、global ロケーションに転送ルール LB_FORWARDING_RULEauthz-policy-allow.yaml ファイルを作成します。このポリシーでは、*.example.com のクライアントのみが /api/payments URL パスにアクセスできます。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。グローバル外部アプリケーション ロードバランサの場合は、スキームを EXTERNAL_MANAGED に設定します。クロスリージョン内部アプリケーション ロードバランサの場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンド例は、前に作成したポリシー ファイルをインポートし、認可ポリシーを作成します。

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

リージョン

リージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを許可する認可ポリシー ファイルを作成します。

    次の例では、リージョン内部アプリケーション ロードバランサの Google Cloud リージョンに転送ルール LB_FORWARDING_RULEauthz-policy-allow.yaml ファイルを作成します。このポリシーでは、リソースタグ TAG_VALUE を持つ VM からリクエストが送信された場合に、*.example.com のクライアントのみが /api/payments URL パスにアクセスできます。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。リージョン外部アプリケーション ロードバランサを使用している場合は、スキームを EXTERNAL_MANAGED に設定します。リージョン内部アプリケーション ロードバランサを使用している場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LOCATION: Google Cloud リージョン。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンドの例では、前に作成したポリシー ファイルをインポートし、LOCATION リージョンに認可ポリシーを作成します。

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

サービス拡張機能に委任する認可ポリシー

始める前に、外部認可エンジンを設定します。サービス拡張機能の詳細については、Cloud Load Balancing コールアウトの概要をご覧ください。

グローバルとクロスリージョン

グローバル外部アプリケーション ロードバランサまたはクロスリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを外部サービスに委任する認可ポリシー ファイルを作成します。

    次の例では、global ロケーションに転送ルール LB_FORWARDING_RULEauthz-policy-custom.yaml ファイルを作成します。リクエストに空でない Authorization ヘッダーが含まれている場合、このポリシーは /api/payments URL パスへのすべてのトラフィックに対して AUTHZ_EXTENSION 拡張機能を呼び出します。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。グローバル外部アプリケーション ロードバランサの場合は、スキームを EXTERNAL_MANAGED に設定します。クロスリージョン内部アプリケーション ロードバランサの場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
    • AUTHZ_EXTENSION: 認可拡張機能の名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンド例は、前に作成したポリシー ファイルをインポートし、認可ポリシーを作成します。

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

リージョン

リージョン外部アプリケーション ロードバランサまたはリージョン内部アプリケーション ロードバランサを使用している場合は、次の手順で認可ポリシーを作成してインポートします。

  1. 特定のリクエストを外部サービスに委任する認可ポリシー ファイルを作成します。

    次の例では、リージョン内部アプリケーション ロードバランサの Google Cloud リージョンに転送ルール LB_FORWARDING_RULEauthz-policy-custom.yaml ファイルを作成します。リクエストに空でない Authorization ヘッダーが含まれている場合、このポリシーは /api/payments URL パスへのすべてのトラフィックに対して AUTHZ_EXTENSION 拡張機能を呼び出します。

    $ 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
    

    次のように置き換えます。

    • LB_SCHEME: ロード バランシング スキーム。リージョン外部アプリケーション ロードバランサの場合は、スキームを EXTERNAL_MANAGED に設定します。リージョン内部アプリケーション ロードバランサの場合は、スキームを INTERNAL_MANAGED に設定します。
    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • LOCATION: Google Cloud リージョン。
    • LB_FORWARDING_RULE: ロードバランサの転送ルールの名前。
    • AUTHZ_EXTENSION: 認可拡張機能の名前。
  2. 認可ポリシーを作成し、YAML ファイルをインポートします。

    次のコマンドの例では、前に作成したポリシー ファイルをインポートし、LOCATION リージョンに認可ポリシーを作成します。

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

認可ポリシーをテストする

認可ポリシーをテストするには、ロードバランサにトラフィックを送信します。詳しくは次のページをご覧ください。

Cloud Logging の認可ポリシーログについて

リクエストが許可または拒否されたときに認可ポリシーがどのようにロギングされるかについては、以下をご覧ください。

  • リクエストが ALLOW ポリシーと DENY ポリシーのどちらとも一致しない場合、DENY ポリシーはリクエストを許可し、allowed_as_no_deny_policies_matched_request としてログに記録します。逆に、ALLOW ポリシーはリクエストを拒否し、denied_as_no_allow_policies_matched_request としてログに記録します。いずれかのポリシーがリクエストを拒否するため、リクエストは拒否されます。

    グローバル外部アプリケーション ロードバランサを使用している場合、ログで statusDetailsdenied_by_authz_policy に設定されます。次の例をご覧ください。

      {
        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"
      }
    

    リージョン内部アプリケーション ロードバランサ、リージョン外部アプリケーション ロードバランサ、またはクロスリージョン内部アプリケーション ロードバランサを使用している場合、ログで proxyStatuserror=\"http_request_error\"; details=\"denied_by_authz_policy\" に設定されます。次の例をご覧ください。

      {
        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"
      }
    
  • リクエストが DENY ポリシーと一致すると、リクエストは拒否され、リクエストを拒否したポリシーがログに記録されます。

    グローバル外部アプリケーション ロードバランサを使用している場合、ログで statusDetailsdenied_by_authz_policy に設定され、リクエストを拒否したポリシーの名前が policies に記録されます。次の例をご覧ください。

      {
        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"
      }
    

    リージョン内部アプリケーション ロードバランサ、リージョン外部アプリケーション ロードバランサ、またはクロスリージョン内部アプリケーション ロードバランサを使用している場合、proxyStatuserror=\"http_request_error\"; details=\"denied_by_authz_policy\" に設定され、ポリシーの名前は policies に記録されます。次の例をご覧ください。

      {
        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"
      }
    
  • リクエストが DENY ポリシーと一致しなくても、ALLOW ポリシーと一致する場合、リクエストは許可されます。ログでは、このアクションは DENY ポリシーの allowed_as_no_deny_policies_matched_request として記録されます。リクエストを許可したポリシーもログに記録されます。

    グローバル外部アプリケーション ロードバランサを使用している場合、ログに statusDetails は含まれません。リクエストを許可したポリシーも policies に記録されます。次の例をご覧ください。

      {
        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"
      }
    

    リージョン内部アプリケーション ロードバランサ、リージョン外部アプリケーション ロードバランサ、またはクロスリージョン内部アプリケーション ロードバランサを使用している場合、ログに proxyStatus フィールドはありません。リクエストを許可したポリシーも policies に記録されます。次の例をご覧ください。

      {
        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"
      }
    

次のステップ