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.
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.
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.
-
Der CA-Pool, den Sie in diesem Schritt erstellen, unterscheidet sich von dem Pool, den Sie zum Konfigurieren der TLS-Prüfungsrichtlinie erstellen.
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
pathLenConstrainteines 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.Erstellen Sie ein Zertifikat mit einem automatisch generierten Schlüssel. Verwenden Sie denselben CA-Poolnamen wie zuvor.
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 StammzertifizierungsstelleLOCATION: der Standort der Stamm-CAPROJECT_ID: die Projekt-ID der StammzertifizierungsstelleCA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollen
Erstellen und importieren Sie eine Vertrauenskonfiguration mithilfe des
PEM-CERTaus 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.
Erstellen Sie ein Dienstkonto:
gcloud beta services identity create \ --service networksecurity.googleapis.com \ --project PROJECT_IDErsetzen Sie
PROJECT_IDdurch 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 istPROJECT_NUMBERdie eindeutige Kennung desPROJECT_ID, den Sie im vorherigen Befehl angegeben haben.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 REGIONErsetzen Sie dabei Folgendes:
CA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollenSERVICE_ACCOUNT: der Name des Dienstkontos, das Sie im vorherigen Schritt erstellt habenLOCATION: 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
Öffnen Sie in der Google Cloud Console die Seite TLS-Prüfungsrichtlinien.
Wählen Sie im Menü „Projektauswahl“ Ihr Projekt aus.
Klicken Sie auf TLS-Prüfungsrichtlinie erstellen.
Geben Sie für Name einen Namen ein.
Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.
Wählen Sie in der Liste Region die Region aus, in der Sie die TLS-Prüfungsrichtlinie erstellen möchten.
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.
Optional: Wählen Sie in der Liste Mindest-TLS-Version die von der Richtlinie unterstützte Mindest-TLS-Version aus.
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.
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.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine YAML-Datei vom Typ
TLS_INSPECTION_FILE.yaml. Ersetzen SieTLS_INSPECTION_FILEdurch einen Dateinamen Ihrer Wahl.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_NAMEErsetzen Sie dabei Folgendes:
PROJECT_ID: die Projekt-ID der TLS-PrüfungsrichtlinieREGION: die Region, in der die TLS-Prüfungsrichtlinie erstellt wirdTLS_INSPECTION_NAME: der Name der TLS-Prüfungsrichtlinie.CA_POOL: der Name des CA-Pools, aus dem die Zertifikate erstellt werden sollenDer CA-Pool muss in derselben Region vorhanden sein.
TLS_VERSION: ein optionales Argument, das die von Cloud NGFW unterstützte Mindest-TLS-Version angibtSie können einen der folgenden Werte auswählen:
TLS_1_0TLS_1_1TLS_1_2
PROFILE_TYPE: ein optionales Argument, das den Typ des TLS-Profils angibtSie 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_CUSTOMgesetzt 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
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 REGIONErsetzen Sie dabei Folgendes:
TLS_INSPECTION_NAME: der Name der TLS-PrüfungsrichtlinieTLS_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
- TLS-Prüfung verwalten
- URL-Filterdienst konfigurieren
- Dienst zur Einbruchserkennung und -vermeidung konfigurieren
- Firewall-Endpunkte erstellen und verwalten