TLS-Prüfung aktivieren

Auf dieser Seite wird beschrieben, wie Sie die TLS-Prüfung (Transport Layer Security) für Ihre Secure Web Proxy-Instanz aktivieren. Secure Web Proxy bietet einen TLS-Prüfdienst, mit dem Sie TLS-Traffic abfangen, die verschlüsselte Anfrage prüfen und Sicherheitsrichtlinien erzwingen können. Weitere Informationen zur TLS-Prüfung finden Sie unter TLS-Prüfung.

Hinweis

Bevor Sie Ihre Secure Web Proxy-Instanz für die TLS-Prüfung konfigurieren, führen Sie die Aufgaben in den folgenden Abschnitten aus.

Certificate Authority Service aktivieren

Secure Web Proxy verwendet den Certificate Authority Service , um die für die TLS-Prüfung verwendeten Zertifikate zu generieren.

Verwenden Sie den folgenden Befehl, um CA Service zu aktivieren:

  gcloud services enable privateca.googleapis.com
  

CA-Pool erstellen

Ein Zertifizierungsstellenpool ist eine Sammlung mehrerer Zertifizierungsstellen mit einer gemeinsamen Richtlinie für das Ausstellen von Zertifikaten sowie einer IAM-Richtlinie (Identity and Access Management). CA-Pools bieten die Möglichkeit, Vertrauensketten ohne Ausfallzeiten für die zugehörigen Nutzlasten zu rotieren.

Sie müssen einen CA-Pool erstellen, bevor Sie CA Service zum Erstellen einer CA verwenden können. In diesem Abschnitt werden die Berechtigungen beschrieben, die Sie zum Ausführen dieser Aufgabe benötigen, und dann wird erläutert, wie Sie einen CA-Pool erstellen.

Zum Generieren von Zertifikaten verwendet die TLS-Prüfung für jedes Projekt ein separates Dienstkonto mit dem Namen service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com. Achten Sie darauf, dass Sie diesem Dienstkonto Berechtigungen zur Verwendung Ihres CA-Pools erteilt haben. Wenn dieser Zugriff widerrufen wird, funktioniert die TLS-Prüfung nicht mehr.

Verwenden Sie den folgenden Befehl, um die PROJECT_NUMBER mit der PROJECT_ID des CA-Pool-Projekts abzurufen:

gcloud projects describe <var>PROJECT_ID</var>
    --format="value(projectNumber)"

Verwenden Sie den Befehl gcloud privateca pools create und geben Sie die ID des untergeordneten Pools, die Ebene, die Projekt-ID und den Standort an, um den Pool zu erstellen.

gcloud privateca pools create SUBORDINATE_POOL_ID \
    --tier=TIER \
    --project=PROJECT_ID \
    --location=REGION

Ersetzen Sie Folgendes:

  • SUBORDINATE_POOL_ID: Name des CA-Pools
  • TIER: CA-Ebene, entweder devops oder enterprise

    Wir empfehlen, den CA-Pool auf der Ebene devops zu erstellen, da es nicht erforderlich ist, einzeln ausgestellte Zertifikate zu verfolgen.

  • PROJECT_ID: ID des CA-Pool-Projekts

  • REGION: Standort des CA-Pools

Untergeordneten CA-Pool erstellen

Wenn Sie mehrere Szenarien für die Zertifikatsausstellung haben, können Sie eine untergeordnete CA erstellen für jedes dieser Szenarien. Sie können eine untergeordnete CA in einem CA-Pool erstellen. Die Stamm-CA signiert alle CAs in diesem CA-Pool. Diese Zertifikate werden verwendet, um Serverzertifikate zu signieren, die für die TLS-Prüfung generiert werden.

Verwenden Sie eine der folgenden Methoden, um einen untergeordneten CA-Pool zu erstellen.

Untergeordneten CA-Pool mit einer vorhandenen Stamm-CA erstellen, die in Certificate Authority Service gespeichert ist

So generieren Sie eine untergeordnete CA:

  1. CA-Pool erstellen
  2. Untergeordnete CAs in einem CA-Pool erstellen

Untergeordneten CA-Pool mit einer vorhandenen externen Stamm-CA erstellen

So generieren Sie eine untergeordnete CA:

  1. CA-Pool erstellen
  2. Untergeordnete CAs erstellen, die von einer externen Stamm-CA signiert wurden

Stamm-CA erstellen

Wenn keine Stamm-CA vorhanden ist, können Sie in CA Service eine erstellen.

So erstellen Sie eine Stamm-Zertifizierungsstelle:

  1. Stamm-CA erstellen
  2. Untergeordneten CA-Pool mit einer vorhandenen Stamm-CA erstellen, die in CA Service gespeichert ist

Dienstkonto erstellen

Ein Dienstkonto bietet die erforderlichen Berechtigungen für die TLS-Prüfung, ohne die Sicherheit Ihrer Nutzerkonten oder Ihrer Secure Web Proxy-Instanz zu beeinträchtigen.

Wenn Sie kein Dienstkonto haben, müssen Sie eines erstellen und diesem Dienstkonto dann die erforderlichen Berechtigungen erteilen.

  1. Erstellen Sie ein Dienstkonto.

    gcloud beta services identity create \
        --service=networksecurity.googleapis.com \
        --project=PROJECT_ID
    

    Als Antwort erstellt die Google Cloud CLI ein Dienstkonto mit dem Namen service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.

    Verwenden Sie den folgenden Befehl, um die PROJECT_NUMBER mit der PROJECT_ID des CA-Pool-Projekts abzurufen:

    gcloud projects describe PROJECT_ID
        --format="value(projectNumber)"
    
  2. Erteilen Sie dem erstellten Dienstkonto die Berechtigung, Zertifikate mit Ihrem CA-Pool zu generieren.

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --member='serviceAccount:SERVICE_ACCOUNT' \
        --role='roles/privateca.certificateManager' \
        --location='REGION'
    

Secure Web Proxy für die TLS-Prüfung konfigurieren

Sie können erst mit den Aufgaben in diesem Abschnitt fortfahren, wenn Sie die erforderlichen Aufgaben ausgeführt haben, die im Abschnitt Hinweis aufgeführt sind.

Führen Sie die Aufgaben in den folgenden Abschnitten aus, um die TLS-Prüfung zu konfigurieren.

TLS-Prüfungsrichtlinie erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite TLS-Prüfungsrichtlinien auf.

    Zu den TLS-Prüfungsrichtlinien

  2. Wählen Sie im Menü „Projektauswahl“ Ihr Projekt aus.

  3. Klicken Sie auf TLS-Prüfungsrichtlinie erstellen.

  4. Geben Sie im Feld Name einen Namen für die Richtlinie ein.

  5. Optional: Geben Sie im Feld Beschreibung eine Beschreibung für die Richtlinie ein.

  6. Wählen Sie in der Liste Region die Region aus, in der Sie die Richtlinie erstellen möchten.

  7. Wählen Sie in der Liste CA-Pool den CA-Pool aus, aus dem Sie die Zertifikate erstellen möchten.

    Wenn Sie keinen CA-Pool konfiguriert haben, klicken Sie auf Neuer Pool und folgen Sie der Anleitung im Abschnitt CA-Pool erstellen.

  8. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Datei TLS_INSPECTION_FILE.yaml. Ersetzen Sie TLS_INSPECTION_FILE durch den gewünschten Dateinamen.

  2. Fügen Sie der YAML-Datei den folgenden Code hinzu, um die erforderliche TlsInspectionPolicy zu konfigurieren:

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts
    • REGION: Region, in der die Richtlinie erstellt werden soll
    • TLS_INSPECTION_NAME: Name der TLS-Prüfungsrichtlinie für Secure Web Proxy
    • CA_POOL: Name des CA-Pools, aus dem die Zertifikate erstellt werden sollen

    Der CA-Pool muss in derselben Region vorhanden sein.

TLS-Prüfungsrichtlinie importieren

Importieren Sie die TLS-Prüfungsrichtlinie, die Sie im vorherigen Schritt erstellt haben:

gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
    --source=TLS_INSPECTION_FILE.yaml \
    --location=REGION

TLS-Prüfungsrichtlinie der Sicherheitsrichtlinie hinzufügen

Console

Web-Proxy-Richtlinie erstellen

  1. Rufen Sie in der Google Cloud Console die Seite SWP Policies (SWP-Richtlinien) auf.

    Zu den SWP-Richtlinien

  2. Klicken Sie auf Richtlinie erstellen.

  3. Geben Sie einen Namen für die zu erstellende Richtlinie ein, z. B. myswppolicy.

  4. Geben Sie eine Beschreibung der Richtlinie ein, z. B. My new swp policy.

  5. Wählen Sie in der Liste Regions (Regionen) die Region aus, in der Sie die Secure Web Proxy-Richtlinie erstellen möchten.

  6. Wählen Sie Configure TLS inspection (TLS-Prüfung konfigurieren) aus, um die TLS-Prüfung zu konfigurieren.

  7. Wählen Sie in der Liste TLS inspection policy (TLS-Prüfungsrichtlinie) die von Ihnen erstellte TLS -Prüfungsrichtlinie aus.

  8. Wenn Sie Regeln für die Richtlinie erstellen möchten, klicken Sie auf Weiter und dann auf Regel hinzufügen. Weitere Informationen finden Sie unter Secure Web Proxy-Regeln erstellen.

  9. Klicken Sie auf Erstellen.

Secure Web Proxy-Regeln erstellen

  1. Rufen Sie in der Google Cloud Console die Seite SWP Policies (SWP-Richtlinien) auf.

    Zu den SWP-Richtlinien

  2. Wählen Sie im Menü „Projektauswahl“ Ihre Organisations-ID oder den Ordner aus, der die Richtlinie enthält.

  3. Klicken Sie auf den Namen Ihrer Richtlinie.

  4. Klicken Sie auf Regel hinzufügen.

  5. Füllen Sie die Regelfelder aus:

    1. Name
    2. Beschreibung
    3. Status
    4. Priorität: die numerische Auswertungsreihenfolge der Regel. Die Regeln werden von der höchsten bis zur niedrigsten Priorität ausgewertet, wobei 0 die höchste Priorität ist.
    5. Geben Sie im Abschnitt Aktion an, ob Verbindungen, die der Regel entsprechen, zugelassen (Zulassen) oder abgelehnt (Ablehnen) werden sollen.
    6. Geben Sie im Abschnitt Sitzungsübereinstimmung die Kriterien für den Abgleich der Sitzung an. Weitere Informationen zur Syntax für SessionMatcher, finden Sie in der CEL-Referenz für Abgleichausdrücke.
    7. Wählen Sie Enable TLS inspection (TLS-Prüfung aktivieren) aus, um die TLS-Prüfung zu aktivieren.
    8. Geben Sie im Abschnitt Anwendungsübereinstimmung die Kriterien für den Abgleich der Anfrage an. Wenn Sie die Regel nicht für die TLS-Prüfung aktivieren, kann die Anfrage nur mit HTTP-Traffic übereinstimmen.
    9. Klicken Sie auf Erstellen.
  6. Klicken Sie auf Regel hinzufügen , um eine weitere Regel hinzuzufügen.

  7. Klicken Sie auf Erstellen , um die Richtlinie zu erstellen.

Web-Proxy einrichten

  1. Rufen Sie in der Google Cloud Console die Seite Web Proxies (Web-Proxys) auf.

    Zu den Web-Proxys

  2. Klicken Sie auf Sicheren Web-Proxy erstellen.

  3. Geben Sie einen Namen für den zu erstellenden Web-Proxy ein, z. B. myswp.

  4. Geben Sie eine Beschreibung des Web-Proxys ein, z. B. My new swp.

  5. Wählen Sie in der Liste Regions (Regionen) die Region aus, in der Sie den Web-Proxy erstellen möchten.

  6. Wählen Sie in der Liste Network (Netzwerk) das Netzwerk aus, in dem Sie den Web-Proxy erstellen möchten.

  7. Wählen Sie in der Liste Subnetwork (Subnetzwerk) das Subnetzwerk aus, in dem Sie den Web-Proxy erstellen möchten.

  8. Optional: Geben Sie die IP-Adresse des sicheren Web-Proxys ein. Sie können eine IP Adresse aus dem Bereich der IP-Adressen des sicheren Web-Proxys eingeben, die sich im Subnetzwerk befinden, das Sie im vorherigen Schritt erstellt haben. Wenn Sie die IP-Adresse nicht eingeben, wählt Ihre Secure Web Proxy -Instanz automatisch eine IP-Adresse aus dem ausgewählten Subnetzwerk aus.

  9. Wählen Sie in der Liste Certificate (Zertifikat) das Zertifikat aus, das Sie zum Erstellen des Web-Proxys verwenden möchten.

  10. Wählen Sie in der Liste Policy (Richtlinie) die Richtlinie aus, die Sie dem Web-Proxy zuordnen möchten.

  11. Klicken Sie auf Erstellen.

Cloud Shell

  1. Erstellen Sie die Datei policy.yaml:

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    
  2. Erstellen Sie die Secure Web Proxy-Richtlinie:

      gcloud network-security gateway-security-policies import policy1 \
          --source=policy.yaml --location=REGION
    
  3. Erstellen Sie die Datei rule.yaml:

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com
      description: Allow example.com
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'example.com'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
    
  4. Erstellen Sie die Regel für die Sicherheitsrichtlinie.

      gcloud network-security gateway-security-policies rules import allow-example-com \
          --source=rule.yaml \
          --location=REGION \
          --gateway-security-policy=policy1
    
  5. Wenn Sie eine TLS-Prüfungsrichtlinie an eine vorhandene Sicherheitsrichtlinie anhängen möchten, erstellen Sie die Datei POLICY_FILE.yaml. Ersetzen Sie POLICY_FILE durch Ihren Dateinamen.

      description: My Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    

Nächste Schritte