Secure Web Proxy の認可ポリシーを設定する

このページでは、Secure Web Proxy の認可ポリシーを設定する方法について説明します。

始める前に

認可ポリシーを作成する

このセクションでは、Secure Web Proxy インスタンスに適用するさまざまなタイプの認可ポリシーを作成する方法について説明します。

Secure Web Proxy の認可ポリシーを作成する手順は次のとおりです。

mTLS ID に基づく認可ポリシー

Secure Web Proxy は、相互 TLS(mTLS)証明書から派生した ID に基づくセキュリティ ルールの適用をサポートしています。これらの ID に基づくルールの適用は、クライアントとプロキシ間のトラフィックが mTLS で保護されているゼロトラスト環境で特に役立ちます。詳細については、プリンシパルに基づく認可ポリシーをご覧ください。

次の例は、swp1 という名前の Secure Web Proxy インスタンスの認可ポリシーを示しています。この例では、プロキシへのトラフィックが HTTPS プロトコルを使用していることを前提としています。

REQUEST_AUTHZ プロファイルを含むポリシーは、example.com/mcp へのすべてのトラフィックが、トラフィックが通過する前に特定のプリンシパルからの mTLS 認証を必要とすることを強制します。このポリシーは、example.com/mcp 宛てではないすべての送信トラフィックも拒否します。

  1. 認可ポリシーの YAML ファイルを作成します。

    次の例では、authz-policy.yaml ファイルを作成します。このポリシーでは、クライアントが定義された SPIFFE ID プリンシパルと一致する証明書を提示した場合にのみ、指定されたホストとパスへのトラフィックを許可します。

    $ cat >authz-policy.yaml <<EOF
    name: test-authz-policy-mtls
    target:
      resources:
      - "projects/ PROJECT_ID /locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - to:
      operations:
      - hosts:
          - exact: "example.com"
        paths:
          - exact: "/mcp"
      from:
        sources:
        - principals:
          - principalSelector: CLIENT_CERT_URI_SAN
            principal:
              exact: "spiffe:// PROJECT_ID .global.123.workload.id.goog/ns/ns1/sa/hellomcp"
    action: ALLOW
    EOF
    

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

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: Secure Web Proxy インスタンスのリージョン
  2. gcloud network-security authz-policies import コマンドを使用して、認可ポリシーを作成し、YAML ファイルをインポートします。

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

    LOCATION は、Secure Web Proxy インスタンスのリージョンに置き換えます。

サービス アカウントまたはタグに基づく認可ポリシー

さまざまな Google Cloud リソースに接続されているサービス アカウントまたはタグに基づく認可ポリシーを適用できます。

この例では、次の操作が完了していることを前提としています。

サービス アカウント

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

    次の例では、swp1 という名前の Secure Web Proxy インスタンスの authz-policy.yaml ファイルを作成します。このポリシーは、サービス アカウント my-sa-123@56788.iam.gserviceaccount.com を持つ Compute Engine 仮想マシン(VM)インスタンスからのリクエストが example1.com/url1 パスに到達できるように構成されています。

    $ cat >authz-policy.yaml <<EOF
    name: my-authz-policy-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
            - resources:
                - iamServiceAccount:
                    exact: "my-sa-123@56788.iam.gserviceaccount.com"
      to:
        operations:
        - hosts:
            - exact: "example1.com"
        paths:
        - prefix: "/url1"
    action: ALLOW
    EOF
    

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

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: Secure Web Proxy インスタンスのリージョン
  2. gcloud network-security authz-policies import コマンドを使用して、認可ポリシーを作成し、YAML ファイルをインポートします。

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

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

    LOCATION は、Secure Web Proxy インスタンスのリージョンに置き換えます。

タグ

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

    次の例では、swp1 という名前の Secure Web Proxy インスタンスの authz-policy-tag.yaml ファイルを作成します。このポリシーでは、タグ値が TAG_VALUE_PERMANENT_ID の Google Cloudリソースから送信されたリクエストのみが example1.com/url1 URL パスにアクセスできます。

    $ cat >authz-policy-tag.yaml <<EOF
    name: my-authz-policy-tag-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/ GATEWAY_NAME "
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
        - resources:
            - tagValueIdSet:
                ids: ["TAG_VALUE_PERMANENT_ID"]
      to:
        operations:
        - hosts:
            - exact: "example1.com"
            paths:
            - exact: "/url1"
    action: ALLOW
    EOF
    

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

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: Secure Web Proxy インスタンスのリージョン
    • GATEWAY_NAME: Secure Web Proxy ゲートウェイの名前
    • TAG_VALUE_PERMANENT_ID: タグ値の永続 IDtagValues/123456789012 など)
  2. gcloud network-security authz-policies import コマンドを使用して、認可ポリシーを作成し、YAML ファイルをインポートします。

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

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

    LOCATION は、Secure Web Proxy インスタンスのリージョンに置き換えます。

認可の決定を委任する認可ポリシー

標準の ALLOW ルールまたは DENY ルールを使用して表現できない複雑な認可の決定の場合は、CUSTOM アクションを含む認可ポリシーを作成できます。その後、認可の決定を認可拡張機能(Service Extensions)に委任できます。

CUSTOM アクションでポリシーを構成すると、Secure Web Proxy はリクエスト メタデータまたはペイロードを Service Extensions にオフロードします。Service Extensions からのレスポンスに応じて、プロキシはトラフィックを許可または拒否します。

Secure Web Proxy は、次のタイプの委任をサポートしています。

  • リクエストの認可決定を Service Extensions に委任する: CUSTOM アクションと REQUEST_AUTHZ プロファイルで構成された認可ポリシーを使用して、リクエスト メタデータとヘッダーに基づく決定を委任できます。このモードでは、アクセスに関する決定が認可拡張機能に委任されます。このモードを使用して、ID と権限を確認できます。

  • コンテンツ認可の決定を Service Extensions に委任する: CUSTOM アクションと CONTENT_AUTHZ プロファイルを含む認可ポリシーを使用して、リクエストの実際のデータ ペイロードに基づいて、認可拡張機能に決定を委任できます。このモードでは、コンテンツの詳細な検査とセキュリティの適用を有効にできます。Model Armor などのサービスと統合することで、機密情報や悪意のあるパターンをスキャンできます。

制限事項

Secure Web Proxy の認可ポリシーを実装する場合、次の制限が適用されます。

  • ターゲットと接続の制約: Secure Web Proxy の認可拡張機能は、直接のターゲットとして Identity-Aware Proxy(IAP)をサポートしていません。

  • ポリシーの競合と互換性: 既存のセキュリティ ルールを含むゲートウェイ セキュリティ ポリシーがある場合は、削除する必要はありません。インスタンスに認可ポリシーを適用すると、Secure Web Proxy はこれらのルールを無視します。

  • プロトコルと検査の要件: Secure Web Proxy 認可ポリシーを構成するには、TLS インスペクションを有効にする必要があります。

次のステップ