TLS-Prüfung einrichten

Auf dieser Seite wird beschrieben, wie Sie die TLS-Prüfung (Transport Layer Security) für Cloud Next Generation Firewall einrichten.

Hinweise

Bevor Sie die TLS-Prüfung konfigurieren, führen Sie die Aufgaben in den folgenden Abschnitten aus.

Certificate Authority Service aktivieren

Cloud NGFW verwendet den Certificate Authority Service, um Zwischenzertifizierungsstellen (Certificate Authorities, CA) zu generieren. Cloud NGFW verwendet diese Zwischen-CAs, um die Zertifikate zu generieren, die für die TLS-Prüfung verwendet werden.

Sie können die CA Service API über die Google Cloud Console aktivieren:

Rollen, die zum Aktivieren von APIs erforderlich sind

Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Informationen zum Zuweisen von Rollen.

API aktivieren

Verwenden Sie den folgenden Befehl, um CA Service mit der Google Cloud CLI zu aktivieren:

   gcloud services enable privateca.googleapis.com
  

Zertifikatmanager aktivieren

Cloud NGFW verwendet den Zertifikatsmanager, um Vertrauenskonfigurationen zu erstellen. Wenn Sie keine Vertrauenskonfigurationen verwenden möchten, überspringen Sie diesen Schritt.

Sie können die Certificate Manager API über die Google Cloud Console aktivieren:

Rollen, die zum Aktivieren von APIs erforderlich sind

Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Informationen zum Zuweisen von Rollen.

API aktivieren

Verwenden Sie den folgenden Befehl, um den Zertifikatmanager über die Google Cloud CLI zu aktivieren:

   gcloud services enable certificatemanager.googleapis.com
  

Vertrauenskonfiguration erstellen

Dieser Schritt ist optional. Führen Sie die Schritte in diesem Abschnitt aus, um eine Vertrauenskonfiguration zu erstellen.

  1. Erstellen Sie einen CA-Pool.

    Der CA-Pool, den Sie in diesem Schritt erstellen, unterscheidet sich von dem Pool, den Sie zum Konfigurieren der TLS-Prüfungsrichtlinie erstellen.

  2. Erstellen Sie eine Stamm-CA mit dem zuvor erstellten CA-Pool.

    Alternativ können Sie eine vorhandene externe Stamm-CA verwenden, indem Sie eine untergeordnete CA im CA Service erstellen. Die externe Stamm-CA muss diese untergeordnete CA signieren. Damit Cloud NGFW die CA verwenden kann, muss die Pfadlänge der Stamm- und der untergeordneten CA im CA-Pool mindestens 1 betragen. Die Pfadlänge wird im Feld pathLenConstraint eines CA-Zertifikats angegeben. In diesem Feld wird die maximale Anzahl untergeordneter CA-Zertifikate definiert, die in einem Zertifizierungspfad unter dem aktuellen CA-Zertifikat vorhanden sein können.

  3. Erstellen Sie ein Zertifikat mit einem automatisch generierten Schlüssel. Verwenden Sie denselben CA-Poolnamen wie zuvor.

  4. Rufen Sie das öffentliche Zertifikat der Zertifizierungsstelle aus dem erstellten Zertifikat ab.

    $PEM-CERT=$(gcloud privateca roots describe ROOT_CA_NAME \
       --location LOCATION \
       --project PROJECT_ID \
       --pool CA_POOL \
       --format "value(pemCaCertificates)")
    

    Ersetzen Sie dabei Folgendes:

    • ROOT_CA_NAME: der Name der Stammzertifizierungsstelle
    • LOCATION: der Standort der Stamm-CA
    • PROJECT_ID: die Projekt-ID der Stammzertifizierungsstelle
    • CA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollen
  5. Erstellen und importieren Sie eine Vertrauenskonfiguration mithilfe des PEM-CERT aus dem vorherigen Schritt. Wenn Sie Ihre eigene Zertifizierungsstelle verwenden, verwenden Sie das öffentliche Zertifikat, das von Ihrer CA abgerufen wurde.

Mit dieser Vertrauenskonfiguration erstellen Sie eine TLS-Prüfungsrichtlinie.

CA-Pool erstellen

Sie müssen einen CA-Pool erstellen, bevor Sie CA Service zum Erstellen einer CA verwenden können.

Folgen Sie der Anleitung unter CA-Pools erstellen, um einen CA-Pool zu erstellen.

Mit diesem CA-Pool erstellen Sie eine TLS-Prüfungsrichtlinie.

Stamm-Zertifizierungsstelle erstellen

Wenn Sie keine vorhandene Stamm-CA haben, können Sie in CA Service eine erstellen. Folgen Sie der Anleitung unter Stamm-Zertifizierungsstelle erstellen, und verwenden Sie denselben Zertifizierungsstellen-Pool, den Sie zuvor erstellt haben, um eine Stamm-Zertifizierungsstelle zu erstellen. Weitere Informationen finden Sie im Abschnitt Zertifizierungsstellen-Pool erstellen.

Wenn Sie eine vorhandene externe Stamm-CA verwenden möchten, erstellen Sie eine untergeordnete CA im CA Service, die von Ihrer externen Stamm-CA signiert wird.

Für NGFW Enterprise müssen untergeordnete Zertifikate eine Pfadlängenbeschränkung von mindestens 1 haben, damit eine Zwischen-Zertifizierungsstelle generiert werden kann. Standardmäßig werden das untergeordnete Zertifikat und die CSR mit einer Pfadlängenbeschränkung von 0 generiert. Das muss geändert werden. Derzeit ist dies nicht über die Console möglich, sondern nur über die von CAS bereitgestellten Google Cloud CLI-Befehle mit einigen der folgenden Flags:

  • Flag --extended-key-usages: gibt die erweiterten Schlüsselverwendungen für das Zertifikat an.

  • Flag --key-usages: gibt die Schlüsselverwendungen für das Zertifikat an.

  • Flag --max-chain-length: definiert die maximale Tiefe untergeordneter CAs, die unter dieser CA für ein CA-Zertifikat zulässig sind.

gcloud

gcloud privateca subordinates create SUBORDINATE_CA_ID \
    --pool=SUBORDINATE_POOL_ID \
    --location=LOCATION \
    --create-csr --csr-output-file=FILE_NAME \
    --key-algorithm="ec-p256-sha256" \
    --subject="CN=Example Server TLS CA, O=Example LLC
    --key-algorithm=rsa-pss-4096-sha256 \
    --key-usages=cert_sign,crl_sign \
    --extended-key-usages=server_auth \
    --max-chain-length=1"
  

Ersetzen Sie dabei Folgendes:

  • SUBORDINATE_CA_ID: die eindeutige ID der untergeordneten CA.
  • SUBORDINATE_POOL_ID: der Name des CA-Pools.
  • LOCATION: der Standort des CA-Pools.
  • FILE_NAME: der Name der Datei, in die die PEM-codierte CSR geschrieben wird.

Dadurch wird die CSR erstellt und Folgendes zurückgegeben:

    Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.
    

Um die untergeordnete CA zu aktivieren, müssen Sie die CSR nach dem Erstellen signieren.

Dienstkonto erstellen

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

  1. Erstellen Sie ein Dienstkonto:

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

    Ersetzen Sie PROJECT_ID durch die Projekt-ID des Dienstkontos.

    Die Google Cloud CLI erstellt ein Dienstkonto mit dem Namen service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com. Hier ist PROJECT_NUMBER die eindeutige Kennung des PROJECT_ID, den Sie im vorherigen Befehl angegeben haben.

  2. Gewähren Sie Ihrem Dienstkonto die Berechtigung, Zertifikate zu generieren, die Ihren CA-Pool verwenden:

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

    Ersetzen Sie dabei Folgendes:

    • CA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollen
    • SERVICE_ACCOUNT: der Name des Dienstkontos, das Sie im vorherigen Schritt erstellt haben
    • LOCATION: die Region des CA-Pools

TLS-Prüfung konfigurieren

Bevor Sie mit den Aufgaben in diesem Abschnitt fortfahren, müssen Sie Ihre Zertifikate konfiguriert oder die erforderlichen Aufgaben ausgeführt haben, die im Abschnitt Hinweise 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. Öffnen Sie in der Google Cloud Console die Seite TLS-Prüfungsrichtlinien.

    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 für Name einen Namen ein.

  5. Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.

  6. Wählen Sie in der Liste Region die Region aus, in der Sie die TLS-Prüfungsrichtlinie 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 unter CA-Pool erstellen.

  8. Optional: Wählen Sie in der Liste Mindest-TLS-Version die von der Richtlinie unterstützte Mindest-TLS-Version aus.

  9. Wählen Sie für die Vertrauensstellungskonfiguration eine der folgenden Optionen aus:

    • Nur öffentliche Zertifizierungsstellen: Wählen Sie diese Option aus, wenn Sie Servern mit öffentlich signierten Zertifikaten vertrauen möchten.
    • Nur private Zertifizierungsstellen: Wählen Sie diese Option aus, wenn Sie Servern mit privat signierten Zertifikaten vertrauen möchten.

      Wählen Sie in der Liste Konfiguration der privaten Vertrauensstellung die Vertrauenskonfiguration mit dem konfigurierten Trust Store aus, der für das Vertrauen in vorgelagerten Serverzertifikaten verwendet werden soll. Weitere Informationen zum Erstellen einer Vertrauenskonfiguration finden Sie unter Vertrauenskonfiguration erstellen.

    • Öffentliche und private Zertifizierungsstellen: Wählen Sie diese Option aus, wenn Sie sowohl öffentliche als auch private Zertifizierungsstellen verwenden möchten.

  10. Optional: Wählen Sie in der Liste Cipher-Suite-Profil den TLS-Profiltyp aus. Sie können einen der folgenden Werte auswählen:

    • Kompatibel: ermöglicht den umfassendsten Satz von Clients, einschließlich Clients, die nur veraltete TLS-Features unterstützen, um TLS auszuhandeln.
    • Modern: unterstützt einer Vielzahl von TLS-Features, mit denen moderne Clients TLS aushandeln können.
    • Eingeschränkt: unterstützt einen reduzierten Satz von TLS-Features, die strengere Compliance-Anforderungen erfüllen sollen.
    • Benutzerdefiniert: Hiermit können Sie TLS-Features einzeln auswählen.

      Wählen Sie in der Liste Cipher-Suites den Namen der Cipher Suites aus, die vom benutzerdefinierten Profil unterstützt werden.

  11. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine YAML-Datei vom Typ TLS_INSPECTION_FILE.yaml. Ersetzen Sie TLS_INSPECTION_FILE durch einen Dateinamen Ihrer Wahl.

  2. Fügen Sie der YAML-Datei den folgenden Code hinzu, um die TLS-Prüfungsrichtlinie zu konfigurieren.

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    minTlsVersion: TLS_VERSION
    tlsFeatureProfile: PROFILE_TYPECIPHER_NAME
    excludePublicCaSet: `TRUE`|`FALSE`
    trustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME
    

    Ersetzen Sie dabei Folgendes:

    • PROJECT_ID: die Projekt-ID der TLS-Prüfungsrichtlinie
    • REGION: die Region, in der die TLS-Prüfungsrichtlinie erstellt wird
    • TLS_INSPECTION_NAME: der Name der TLS-Prüfungsrichtlinie.
    • CA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollen

      Der CA-Pool muss in derselben Region vorhanden sein.

    • TLS_VERSION: ein optionales Argument, das die von Cloud NGFW unterstützte Mindest-TLS-Version angibt

      Sie können einen der folgenden Werte auswählen:

      • TLS_1_0
      • TLS_1_1
      • TLS_1_2
    • PROFILE_TYPE: ein optionales Argument, das den Typ des TLS-Profils angibt

      Sie können einen der folgenden Werte auswählen:

      • PROFILE_COMPATIBLE: ermöglicht den umfassendsten Satz von Clients, einschließlich Clients, die nur veraltete TLS-Features unterstützen, um TLS auszuhandeln.
      • PROFILE_MODERN: unterstützt einer Vielzahl von TLS-Features, mit denen moderne Clients TLS aushandeln können.
      • PROFILE_RESTRICTED: unterstützt einen reduzierten Satz von TLS-Features, die strengere Compliance-Anforderungen erfüllen sollen.
      • PROFILE_CUSTOM: Hiermit können Sie TLS-Features einzeln auswählen.
    • CIPHER_NAME: ein optionales Argument zur Angabe des Namens der Cipher Suite, die vom benutzerdefinierten Profil unterstützt wird.

      Sie geben dieses Argument nur an, wenn der Profiltyp auf PROFILE_CUSTOM gesetzt ist.

    • excludePublicCaSet: ein optionales Flag zum Ein- oder Ausschließen eines öffentlichen CA-Satzes. Dieses Flag ist standardmäßig auf „false“ eingestellt. Wenn dieses Flag auf "true" gesetzt ist, vertrauen TLS-Verbindungen keinen öffentlichen CA-Servern. In diesem Fall kann Cloud NGFW nur TLS-Verbindungen zu Servern mit Zertifikaten herstellen, die von CAs in der Vertrauenskonfiguration signiert sind.

    • TRUST_CONFIG_NAME: ein optionales Argument zur Angabe des Namens der Vertrauenskonfigurationsressource

  3. Importieren Sie die TLS-Prüfungsrichtlinie, die Sie im Abschnitt TLS-Prüfungsrichtlinie erstellen erstellt haben.

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

    Ersetzen Sie dabei Folgendes:

    • TLS_INSPECTION_NAME: der Name der TLS-Prüfungsrichtlinie
    • TLS_INSPECTION_FILE: der Name der YAML-Datei der TLS-Prüfungsrichtlinie.

TLS-Prüfungsrichtlinie zu einer Firewall-Endpunktverknüpfung hinzufügen

Führen Sie die Schritte unter Firewall-Endpunktverknüpfungen erstellen aus, um die TLS-Prüfungsrichtlinie zu einer Firewall-Endpunktverknüpfung hinzuzufügen.

Firewallrichtlinienregeln mit TLS-Prüfung konfigurieren

Legen Sie in der Firewallrichtlinienregel das Flag --tls-inspect fest, um die TLS-Prüfung für Ihr VPC-Netzwerk (Virtual Private Cloud) zu aktivieren. Dieses Flag gibt an, dass die TLS-Prüfung ausgeführt werden kann, wenn die Sicherheitsprofilgruppe angewendet wird.

Weitere Informationen zum Aktivieren des Flags --tls-inspect in hierarchischen Firewall richtlinienregeln finden Sie unter Regel erstellen.

Weitere Informationen zum Aktivieren des Flags --tls-inspect in globalen Netzwerk-Firewall richtlinienregeln finden Sie unter Regel erstellen.

Nächste Schritte