このページでは、Secure Web Proxy の認可ポリシーを設定する方法について説明します。
始める前に
Secure Web Proxy の概要と認可ポリシーの概要のページを確認します。
-
- Network Security API
- Network Services API
- Certificate Manager API
適切なロールと権限があることを確認します。
デプロイされ、
GatewaySecurityPolicyに関連付けられているアクティブな Secure Web Proxy インスタンスが必要です。詳細については、Secure Web Proxy インスタンスをデプロイするをご覧ください。Secure Web Proxy 認可ポリシーを構成するには、TLS インスペクション ポリシーを有効にする必要があります。
認可ポリシーを作成する
このセクションでは、Secure Web Proxy インスタンスに適用するさまざまなタイプの認可ポリシーを作成する方法について説明します。
Secure Web Proxy の認可ポリシーを作成する手順は次のとおりです。
- ターゲットとルールを定義する YAML ファイルを構成します。
gcloud network-security authz-policies importコマンドを使用してファイルをインポートします。
mTLS ID に基づく認可ポリシー
Secure Web Proxy は、相互 TLS(mTLS)証明書から派生した ID に基づくセキュリティ ルールの適用をサポートしています。これらの ID に基づくルールの適用は、クライアントとプロキシ間のトラフィックが mTLS で保護されているゼロトラスト環境で特に役立ちます。詳細については、プリンシパルに基づく認可ポリシーをご覧ください。
次の例は、swp1 という名前の Secure Web Proxy インスタンスの認可ポリシーを示しています。この例では、プロキシへのトラフィックが HTTPS プロトコルを使用していることを前提としています。
REQUEST_AUTHZ プロファイルを含むポリシーは、example.com/mcp へのすべてのトラフィックが、トラフィックが通過する前に特定のプリンシパルからの mTLS 認証を必要とすることを強制します。このポリシーは、example.com/mcp 宛てではないすべての送信トラフィックも拒否します。
認可ポリシーの 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 プロジェクトの IDLOCATION: Secure Web Proxy インスタンスのリージョン
gcloud network-security authz-policies importコマンドを使用して、認可ポリシーを作成し、YAML ファイルをインポートします。gcloud beta network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONLOCATIONは、Secure Web Proxy インスタンスのリージョンに置き換えます。
サービス アカウントまたはタグに基づく認可ポリシー
さまざまな Google Cloud リソースに接続されているサービス アカウントまたはタグに基づく認可ポリシーを適用できます。
この例では、次の操作が完了していることを前提としています。
タグを作成し、Key-Value ペアとして Google Cloud リソースに関連付けました。タグを作成するときに、
--purposeフラグをGCE_FIREWALLに設定します。認可ポリシーでは、タグを適用するGCE_FIREWALL目的が必要です。
サービス アカウント
特定のリクエストを許可する認可ポリシー 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 プロジェクトの IDLOCATION: Secure Web Proxy インスタンスのリージョン
gcloud network-security authz-policies importコマンドを使用して、認可ポリシーを作成し、YAML ファイルをインポートします。次のコマンドの例は、前に作成したポリシー ファイルをインポートして認可ポリシーを作成する方法を示しています。
gcloud network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONLOCATIONは、Secure Web Proxy インスタンスのリージョンに置き換えます。
タグ
特定のリクエストを許可する認可ポリシー 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 プロジェクトの IDLOCATION: Secure Web Proxy インスタンスのリージョンGATEWAY_NAME: Secure Web Proxy ゲートウェイの名前TAG_VALUE_PERMANENT_ID: タグ値の永続 ID(tagValues/123456789012など)
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= LOCATIONLOCATIONは、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 インスペクションを有効にする必要があります。