In diesem Dokument wird das empfohlene Verfahren zum Konfigurieren und Erzwingen des Schutzes von VPC Service Controls in Ihrer Google Cloud -Organisation beschrieben.
Die sorglose Aktivierung von VPC Service Controls kann Probleme mit vorhandenen Anwendungen verursachen und möglicherweise einen Ausfall verursachen. Wir empfehlen eine sorgfältige Planung, damit Sie ausreichend Zeit haben, um Daten zu erheben, Tests durchzuführen und Logs über Verstöße zu analysieren. Sorgen Sie dafür, dass Mitglieder aus Ihrem VPC Service Controls-Betriebsteam und Ihrem Anwendungsteam für die Aufgabe verfügbar sind.
Wiederholen Sie den Aktivierungsprozess für jede Arbeitslast oder Anwendung, die Sie in VPC Service Controls aufnehmen.
Kommunikation koordinieren
Häufig führt das Team für Netzwerksicherheit oder Cloud-Aktivierung die Aktivierung von VPC Service Controls durch. Wir empfehlen, eine feste Person auszuwählen, die funktionsübergreifende Besprechungen erstellt und verfolgt und Aufgaben dokumentiert. Ihre Teams arbeiten bei folgenden Themen zusammen:
- Zugriffsmuster fürGoogle Cloud APIs
- Identifizieren von Dienstperimeterverstößen
- Zugriff auf den Perimeter zulassen
Ähnlich wie bei herkömmlichen Netzwerkfirewalls besteht die Absicht darin, die für das effiziente Funktionieren legitimer Geschäftsanwendungen erforderlichen Flows zu identifizieren und zuzulassen.
Zugriffsmuster und Anwendungsfälle dokumentieren
Zu Beginn der Aktivierung müssen Sie alle gültigen Zugriffsmuster identifizieren und eindeutig dokumentieren. Zugriffsmuster sind wiederholbare Typen von Interaktionen zwischen Elementen außerhalb und innerhalb des Perimeters. Im Folgenden sind einige gängige Zugriffsmuster aufgeführt:
- Datenzugriffsmuster: Dienste außerhalb des Perimeters speichern Daten, die sich im Perimeter befinden, oder rufen diese ab.
- Ressourcenzugriffsmuster:
- Nutzer greifen über dieGoogle Cloud Console auf Projekte im Perimeter zu.
- Tools und Dienste von Drittanbietern verwalten Ressourcen innerhalb des Perimeters und greifen darauf zu.
- Dienste oder Ressourcen innerhalb des Perimeters greifen auf Google APIs zu.
- Endpunktzugriffsmuster:
- Nutzer greifen über ein von Ihrer Organisation verwaltetes Gerät auf Ressourcen innerhalb des Perimeters zu.
- Lokale Ressourcen kommunizieren mit Ressourcen innerhalb des Perimeters.
Nachdem Sie die Zugriffsmuster für eine Arbeitslast identifiziert haben, identifizieren Sie Ihre Anwendungsfälle und kategorisieren sie unter einem der Zugriffsmuster in der obigen Liste. Im Folgenden sind einige gängige Anwendungsfälle aufgeführt:
- Cloud-Administratoren verwalten Projekte, die zu einem Perimeter gehören.
- Automatisierungsdienste wie Terraform, Jenkins und Microsoft Azure DevOps, die sich außerhalb des Perimeters befinden, verwalten die Ressourcenzuweisung innerhalb des Perimeters.
- Dienste zur Konfigurationsverwaltung wie Ansible, Chef oder Puppet, die sich außerhalb des Perimeters befinden, verwalten die Bereitstellung und Konfiguration von Software für Ressourcen, die sich im Perimeter befinden.
- Dienste für das Monitoring und die Erzwingung von Sicherheitsmaßnahmen wie Forseti oder SIEM, die sich außerhalb des Perimeters befinden, nutzen Daten oder erzwingen die Sicherheitsrichtlinien für eine Ressource, die sich innerhalb des Perimeters befindet.
Dokumentieren Sie für jeden Anwendungsfall Folgendes:
- Das Zugriffsmuster
- Die Aktoren, die den Anwendungsfall auslösen können
- Bedingungen, die den Anwendungsfall auslösen
- Ob der Anwendungsfall ein gültiges Zugriffsmuster ist und zugelassen werden sollte
- Alle Annahmen, die diesen Anwendungsfall betreffen
Ein Beispiel für das Zugriffsmuster und einen Tracker für den Anwendungsfall finden Sie unter Vorlage für die VPC Service Controls-Einführung: Anwendungsfälle (PDF).
Interviews durchführen
Führen Sie Interviews mit Ihren Arbeitslastteams durch, um Zugriffsmuster und Anwendungsfälle zu besprechen, die Sie aus den vorangegangenen Kommunikationsvorlagen erfassen. Im Folgenden finden Sie Beispiele für Fragen, die Sie in diesen Interviews stellen können:
Haben Ihre Anwendungsfälle eine hohe Priorität und werden bei der VPC Service Controls-Aktivierung berücksichtigt? Wir empfehlen, dass Sie bei der ersten Aktivierung nur Arbeitslasten mit höchster Priorität berücksichtigen und andere, weniger kritische Arbeitslasten erst nach dem Schutz geschäftskritischer Ressourcen einbinden.
Können Sie alle Anwendungsfälle umfassend und abschließend ausführen? Dies machen Sie, um alle möglichen Perimeter-Szenarien auszulösen, damit Sie vollständig analysieren und bestätigen können, dass die Anwendung nach dem Erzwingen des Perimeters ordnungsgemäß funktioniert.
Wie lange dauert die Ausführung des Anwendungsfalls?
Planen Sie größere Änderungen an dieser Arbeitslast, die möglicherweise mit der Aktivierung von VPC Service Controls in Konflikt stehen? Arbeitslast-Features müssen einen stabilen Zustand haben, bevor Sie VPC Service Controls aktivieren.
Probelauf vorbereiten
Der Probelaufmodus erleichtert das Testen der Erzwingung von VPC Service Controls, indem Verstöße ohne Unterbrechung der Anwendungen identifiziert werden. Sie konfigurieren einen Probelauf als separaten Perimeter, der alle Verstöße in Logs erfasst, aber keine Blockierung ausführt. Sie können Arbeitslasten ausführen, während sie sich im Probelaufperimeter befinden, und Logs über Verstöße erstellen, die dann analysiert werden.
So bereiten Sie die Umgebung für den Probelauf vor:
- Identifizieren Sie alle Projekte, die als Teil des Perimeters qualifiziert sind, und schließen Sie den Anwendungsfall und das Interviewverfahren für diese Projekte ab.
- Erstellen Sie einen Probelaufperimeter und fügen Sie alle Projekte hinzu.
- Fügen Sie im VPC Service Controls-Dienstperimeter unter Eingeschränkte Dienste > Zu schützende Dienste alle unterstützten Dienste hinzu.
Erstellen Sie eine zusammengefasste Logsenke, die alle Logs an BigQuery sendet, oder erstellen Sie eine Logsenke für jedes Projekt, das die Probelauflogs an ein gemeinsames BigQuery-Dataset sendet. Mit einer SQL-Abfrage können Sie diese Logeinträge abfragen und VPC Service Controls-Verstöße identifizieren.
Verwenden Sie den folgenden Filter, um eine Logsenke zu erstellen, die alle relevanten VPC Service Controls-Logeinträge enthält:
logName="projects/$PROJECT/logs/cloudaudit.googleapis.com%2Fpolicy"Um die Sicherheit zu maximieren, sollten Sie den Zugriff auf nicht unterstützte Dienste nicht zulassen. Konfigurieren Sie Ihren Perimeter so, dass nur eingeschränkte Dienste im Perimeter funktionieren. Dazu konfigurieren Sie die Liste der zugänglichen Dienste auf
RESTRICTED-SERVICES.Wenn Sie bereits eine Liste zulässiger öffentlicher IP-Adressen, Identitäten, vertrauenswürdiger Geräte, Projekte oder VPC-Netzwerke haben, fügen Sie diese zu einer Regel für eingehenden Traffic oder einer Zugriffsebene im Probelaufperimeter hinzu. Wenn Sie bekannte legitime Flows zulassen, können Sie die Anzahl von Logs über Verstöße reduzieren und Ihre Prüfer können sich auf umsetzbare Ereignisse konzentrieren.
Prüfen Sie, dass keine der VPCs in den Projekten einen ausgehenden Pfad zum Internet oder privaten VIP hat.
Prüfen Sie, dass bei allen VPCs das
*.googleapis.com-DNS aufrestricted.googleapis.comverweist.
Anwendungsfälle ausführen
Lassen Sie Ihr Anwendungsteam zu einem vereinbarten Zeitpunkt die Arbeitslast für das Projekt im Probelaufperimeter ausführen. Achten Sie darauf, dass Sie den gesamten Code kennen, der Google APIs aufrufen kann. Wenn der Probelauf abgeschlossen ist, kann Ihr zuständiges Prüfteam die Logs für Verstöße analysieren.
Verstöße analysieren
Logs zu Probelaufverstößen enthalten die meisten der benötigten Informationen, mit denen Sie feststellen können, ob ein Anwendungsverstoß Maßnahmen erfordert, wie beispielsweise das Hinzufügen von Identitäten oder IP-Adressen zur Zulassungsliste für den Perimeter. Die Daten zu Verstößen werden in der BigQuery-Tabelle cloudaudit_googleapis_com_policy gespeichert.
Im Folgenden sind die Hauptelemente zur Analyse des Verstoßes aufgeführt:
- Der geschützte Dienst und die aufgerufene API-Methode.
- Das Projekt innerhalb des Perimeters, das die Anfrage blockiert hätte.
- Die E-Mail-Adresse der Identität, die die geschützte API aufruft.
- Die IP-Adresse des Aufrufers.
- Die Art des Verstoßes.
Das folgende Beispiel ist eine BigQuery-Abfrage, die alle Details zu Verstößen zurückgibt:
SELECT
receiveTimestamp, #time of violation
Resource.labels.service, #protected Google Cloud service being blocked
protopayload_auditlog.methodName, #method name being called
resource.labels.project_id as PROJECT, #protected project blocking the call
protopayload_auditlog.authenticationInfo.principalEmail, #caller identity
protopayload_auditlog.requestMetadata.callerIp, #caller IP
JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.dryRun') as DRYRUN, #dry-run indicator
JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.violationReason') as REASON, #reason for violation
protopayload_auditlog.metadataJson, #raw violation entry
FROM `BQ_DATASOURCE_NAME.cloudaudit_googleapis_com_policy_*`
where JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.dryRun') = "true" #ensure these are dry-run logs
Relevante Verstöße abfragen
Mit diesen Strategien können Sie die relevanten Verstöße erkennen:
Fügen Sie einen Zeitstempel-Qualifier für das Zeitfenster hinzu, wenn jede eindeutige Anwendung ihren Anwendungsfall ausgeführt hat:
WHERE receiveTimestamp >'2020-07-23 19:53:48.241317 UTC'Fügen Sie einen Filter für die Namenskonvention von Arbeitslastidentitäten oder Projekten hinzu:
WHERE where resource.labels.project_id like '%APPLICATION_NAME%'
Logs zu Verstößen prüfen
Stellen Sie bei der Prüfung der Logs für Verstöße fest, ob Folgendes zutrifft:
- Wird die Identität (E-Mail) die geschützten APIs voraussichtlich aufrufen?
- Sollte der Aufrufer die API von außerhalb des Perimeters aufrufen können?
Bestimmen Sie anhand der vorherigen Kriterien, ob Sie der Identität, dem Gerät, der IP-Adresse, dem CIDR-Bereich, dem Projekt oder dem Netzwerk den Zugriff auf den Perimeter von außerhalb gestatten müssen.
Einige Einträge haben möglicherweise die IP-Adresse private. Dies bedeutet, dass der Aufruf aus dem Google-Netzwerk stammt, entweder von Google-Diensten oder von einer VPC in einem Projekt außerhalb des Perimeters. Für Google-Dienste wie Autoren von Logsenken müssen Sie das Google-Dienstkonto einer Zulassungsliste hinzufügen.
Einträge ohne E-Mail-Adressen entstehen durch das Entfernen von Cloud-Audit-Logs für schreibgeschützte Vorgänge, die aufgrund fehlender IAM-Berechtigungen abgelehnt wurden. In solchen Fällen können Sie anhand der IP-Adresse und Ressourcennamen den Ursprung des Zugriffsversuchs nachvollziehen. Diese Art von Zugriffsversuch kann ein versehentlicher Zugriff von einem Nutzer außerhalb Ihrer Organisation sein. Dies kann etwa ein Nutzer sein, der einen Bucket mit ähnlichem Namen falsch eingibt.
Wenn Sie den Verstoßtyp SERVICE_NOT_ALLOWED_FROM_VPC sehen, verwendet die Arbeitslast möglicherweise einen Dienst, der von VPC Service Controls unterstützt wird, aber nicht der Liste der geschützten APIs hinzugefügt wurde. Wenn ein solcher Verstoß beispielsweise durch IAM verursacht wurde, sollte der Administrator IAM der Liste der zugänglichen Dienste hinzufügen, indem er den folgenden Google Cloud CLI-Befehl ausführt:
gcloud access-context-manager perimeters update perimeter_test \
--add-vpc-allowed-services=RESTRICTED-SERVICES,IAM.googleapis.com \
--policy=1234567890
Sie können ein Looker Studio-Dashboard erstellen, um Verstöße zu prüfen. Weitere Informationen finden Sie unter VPC Service Controls-Verstöße in Ihrer Google Cloud Organisation mit Looker Studio überwachen. Looker Studio wurde früher als Data Studio bezeichnet.
Nächste Schritte
- Weitere Informationen zu Dienstperimetern
- Dienstperimeter erstellen