Erweiterung für Secure Web Proxy konfigurieren

Mit Service Extensions können Secure Web Proxy-Erweiterungen Callouts an Autorisierungsdienste senden, um benutzerdefinierte Verarbeitung in den Traffic-Verarbeitungspfad einzufügen. Auf dieser Seite wird beschrieben, wie Sie Secure Web Proxy-Erweiterungen mit Autorisierungsrichtlinien konfigurieren.

Secure Web Proxy-Erweiterungen werden mit Autorisierungsrichtlinien für Anfragen und Inhalte als Autorisierungserweiterungen konfiguriert. Erweiterungen, die auf Autorisierungsrichtlinien für Anfragen basieren, werden vor denen ausgeführt, die auf Autorisierungsrichtlinien für Inhalte basieren.

Informationen zur Funktionsweise von Secure Web Proxy-Erweiterungen finden Sie unter Übersicht über Secure Web Proxy-Erweiterungen.

Informationen zu den Limits für Autorisierungserweiterungen, finden Sie auf der Seite Kontingente und Limits.

Hinweis

  1. Erstellen, konfigurieren und stellen Sie eine Secure Web Proxy-Instanz mit dem Namen swp-instance1 an einem Ort bereit, den Sie für die Erweiterung verwenden möchten, z. B. us-west1.

    Der Proxy muss mit einer Gateway-Sicherheitsrichtlinie bereitgestellt werden, bei der die TLS-Prüfung (Transport Layer Security) aktiviert ist.

  2. Konfigurieren Sie die folgenden Beispieldienste:

    Secure Web Proxy-Erweiterungen können nur auf vollqualifizierte Domainnamen (Fully Qualified Domain Names, FQDNs) ausgerichtet werden. Wenn Sie FQDN-Ziele für Erweiterungen verwenden, verwendet die Datenebene das HTTP2-Protokoll mit TLS-Verschlüsselung, um über Port 443 mit den Endpunkten zu kommunizieren. Die Datenebene validiert jedoch das Serverzertifikat nicht. Aus Sicherheitsgründen müssen sich die aufgelösten Endpunkte innerhalb der VPC befinden.

Erweiterung für eine Autorisierungsrichtlinie für Anfragen konfigurieren

Im folgenden Beispiel wird gezeigt, wie Sie eine Autorisierungserweiterung konfigurieren, die eine Autorisierungsrichtlinie für Anfragen auf die Secure Web Proxy-Instanz in us-west1 anwendet. Die Richtlinie erfordert, dass der Traffic die gegenseitige TLS-Authentifizierung von einem bestimmten Prinzipal besteht, bevor er das Ziel example.com/mcp erreichen darf.

gcloud

  1. Konfigurieren Sie die Autorisierungserweiterung.

    1. Definieren Sie die Erweiterung in einer YAML-Datei, die die Erweiterung mit request-authz.com verknüpft. Verwenden Sie die angegebenen Beispielwerte.

      cat >swp-request-authz-extension.yaml <<EOF
      name: my-swp-request-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "request-authz.com"
      forwardHeaders:
        - Authorization
      failOpen: false
      timeout: "0.1s"
      wireFormat: EXT_AUTHZ_GRPC
      EOF
      

      Secure Web Proxy-Erweiterungen sind regionale Ressourcen und müssen sich in derselben Region wie Ihre Secure Web Proxy-Instanz befinden.

      Für Autorisierungsrichtlinien für Anfragen kann der Wert von wireFormat EXT_AUTHZ_GRPC sein, sodass der Callout das ext_authz-Protokoll verwendet, obwohl das ext_proc-Protokoll ebenfalls unterstützt wird.

      Standardmäßig ist failOpen auf false gesetzt. Wenn die Erweiterung eine Zeitüberschreitung verursacht oder fehlschlägt, wird die Anfrageverarbeitung beendet. Diese Standardoption wird bevorzugt, wenn Sicherheit oder Integrität Vorrang vor Verfügbarkeit haben.

    2. Importieren Sie die Autorisierungserweiterung. Verwenden Sie den gcloud beta service-extensions authz-extensions import Befehl mit den folgenden Beispielwerten.

      gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \
          --source=swp-request-authz-extension.yaml \
          --location=us-west1
      
  2. Konfigurieren Sie im selben Projekt eine Autorisierungsrichtlinie mit der Erweiterung.

    Für jede Anfrage an example.com/mcp erfordert die Richtlinie die gegenseitige TLS-Authentifizierung von einem bestimmten Prinzipal und delegiert die Autorisierungsentscheidung weiter an die Autorisierungserweiterung my-swp-authz-request-ext.

    1. Definieren Sie eine Autorisierungsrichtlinie, die die Erweiterung my-swp-authz-request-ext mit dem Secure Web Proxy-Proxy swp-instance1 verknüpft. Verwenden Sie die angegebenen Beispielwerte.

      cat >swp-request-authz-policy.yaml <<EOF
      name: my-swp-request-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: REQUEST_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/mcp"
        from:
          sources:
          - principals:
            - principal_selector: CLIENT_CERT_DNS_NAME_SANS
              principal:
                exact: "spiffe://p.global.123.workload.id.goog/ns/ns1/sa/hellomcp"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-request-authz-ext"
      EOF
      

      Ersetzen Sie PROJECT_ID durch die Projekt-ID.

      Für Autorisierungsrichtlinien für Anfragen muss der Wert von policyProfile REQUEST_AUTHZ sein.

      Die Aktion CUSTOM gibt an, dass eine Erweiterung mit dem Proxy verknüpft ist.

      Weitere Informationen zu einer Autorisierungsrichtlinienressource finden Sie in der authzPolicy Referenzdokumentation.

    2. Importieren Sie die Autorisierungsrichtlinie in das Projekt. Verwenden Sie den gcloud beta network-security authz-policies import Befehl mit den folgenden Beispielwerten.

      gcloud beta network-security authz-policies import my-swp-request-authz-policy \
          --source=swp-request-authz-policy.yaml \
          --location=us-west1
      

Erweiterung für eine Autorisierungsrichtlinie für Inhalte konfigurieren

Im folgenden Beispiel wird gezeigt, wie Sie eine Autorisierungserweiterung konfigurieren, die eine Autorisierungsrichtlinie für Inhalte auf die Secure Web Proxy-Instanz in us-west1 anwendet. Die Richtlinie erfordert, dass ein Dienst zur Bereinigung von Inhalten eine detaillierte Prüfung Ihrer Anwendungspayloads durchführt, um Anfragen zuzulassen oder abzulehnen oder die Anfragen und Antworten nach Bedarf zu ändern.

gcloud

  1. Konfigurieren Sie die Autorisierungserweiterung.

    1. Definieren Sie die Erweiterung in einer YAML-Datei, die die Erweiterung mit content-sdp.com verknüpft. Verwenden Sie die angegebenen Beispielwerte.

      cat >swp-authz-content-extension.yaml <<EOF
      name: my-swp-content-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "content-sdp.com"
      failOpen: false
      timeout: "0.1s"
      EOF
      

      Für Autorisierungsrichtlinien für Inhalte muss der Wert von policyProfile CONTENT_AUTHZ sein.

      Für CONTENT_AUTHZ-Richtlinien muss der Wert von wireFormat nicht explizit auf EXT_PROC_GRPC gesetzt werden. Standardmäßig verwendet der Callout das ext_proc-Protokoll.

    2. Importieren Sie die Autorisierungserweiterung. Verwenden Sie den gcloud beta service-extensions authz-extensions import Befehl mit den folgenden Beispielwerten.

      gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \
          --source=swp-content-authz-extension.yaml \
          --location=us-west1
      
  2. Konfigurieren Sie eine Autorisierungsrichtlinie mit der Erweiterung.

    1. Definieren Sie eine Autorisierungsrichtlinie, die die Erweiterung my-swp-content-authz-ext mit dem Secure Web Proxy-Proxy swp-instance1 verknüpft. Verwenden Sie die angegebenen Beispielwerte.

      cat >swp-content-authz-policy.yaml <<EOF
      name: my-swp-content-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: CONTENT_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/sensitive-stuff"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-content-authz-ext"
      EOF
      

      Für Autorisierungsrichtlinien für Inhalte ist der Wert von policyProfile auf CONTENT_AUTHZ gesetzt. Dieser Wert gibt an, dass der benutzerdefinierte Richtlinienanbieter den Anfrage- und Antwort-Traffic einschließlich der Verarbeitung des Nachrichtentexts verarbeitet.

    2. Importieren Sie die Autorisierungsrichtlinie in das Projekt. Verwenden Sie den gcloud beta network-security authz-policies import Befehl mit den folgenden Beispielwerten.

      gcloud beta network-security authz-policies import my-swp-content-authz-policy \
          --source=swp-content-authz-policy.yaml \
          --location=us-west1
      

Einschränkungen von Secure Web Proxy-Erweiterungen

Informationen zu den Einschränkungen von Secure Web Proxy-Erweiterungen finden Sie in den folgenden Abschnitten:

Nächste Schritte