In diesem Dokument wird das empfohlene Verfahren zum Konfigurieren und Durchsetzen des VPC Service Controls-Schutzes in Ihrer Google Cloud-Organisation beschrieben.
Die sorglose Aktivierung von VPC Service Controls kann Probleme mit vorhandenen Anwendungen verursachen und 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
Oft ist das Team für Netzwerksicherheit oder Cloud-Aktivierung für die Aktivierung von VPC Service Controls verantwortlich. 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ür Google Cloud APIs
- Identifikation von Verstößen gegen den Dienstperimeter
- Zugriff auf den Perimeter erlauben
Ähnlich wie bei herkömmlichen Netzwerk-Firewalls geht es darum, die für die effiziente Funktion legitimer geschäftlicher Arbeitslasten erforderlichen Datenflüsse 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:
- Muster für den Datenzugriff: Dienste außerhalb des Perimeters speichern Daten, die sich im Perimeter befinden, oder rufen diese ab.
- Ressourcenzugriffsmuster:
- Nutzer greifen über die Google 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, verwaltet werden, verwalten die Ressourcenbereitstellung 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.
- Sicherheitsmonitoring und Durchsetzungsdienste wie Forseti oder SIEM, die sich außerhalb des Perimeters befinden, nutzen Daten oder setzen 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 eine Anwendungsfallverfolgung 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 hoher Priorität berücksichtigen und andere, weniger kritische nach dem Schutz geschäftskritischer Ressourcen einführen.
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 Status haben, bevor Sie VPC Service Controls aktivieren.
Probelauf vorbereiten
Der Probelaufmodus erleichtert das Testen der VPC Service Controls-Durchsetzung, indem Verstöße ohne Unterbrechung der Anwendungen identifiziert werden. Sie konfigurieren einen Probelauf als separaten Perimeter, der alle Verstöße protokolliert, aber keine Blockierung ausführt. Sie können Arbeitslasten ausführen, während sie sich im Probelaufperimeter befinden, und Verstoßlogs erstellen, die dann analysiert werden.
So bereiten Sie 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 Perimeter für den Testlauf 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 Logging-Senke, 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, wenn Sie eine Logsenke erstellen, um alle relevanten VPC Service Controls-Logeinträge einzubeziehen:
logName="projects/$PROJECT/logs/cloudaudit.googleapis.com%2Fpolicy"
Für maximale Sicherheit sollten Sie den Zugriff auf nicht unterstützte Dienste sperren. Konfigurieren Sie den Perimeter so, dass nur eingeschränkte Dienste darin 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 sie einer Ingress-Regel oder Zugriffsebene im Probelaufperimeter hinzu. Wenn Sie bekannte legitime Abläufe zulassen, können Sie die Anzahl der Logs über Verstöße reduzieren und sich auf umsetzbare Ereignisse konzentrieren.
Prüfen Sie, dass keine der VPCs in den Projekten einen ausgehenden Pfad zum Internet oder der privaten VIP hat.
Prüfen Sie, dass bei allen VPCs das
*.googleapis.com
-DNS aufrestricted.googleapis.com
verweist.
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 Analyse der Verstoßprotokolle durchführen.
Verstöße analysieren
Probelaufverletzungs-Logs enthalten die meisten Informationen, die Sie benötigen, um festzustellen, ob ein Anwendungsverstoß Aktionen wie das Hinzufügen von Identitäten oder IP-Adressen zur Zulassungsliste des Perimeters erfordert. 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 API-Methode, die aufgerufen.
- 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 einem ähnlichen 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 beispielsweise IAM einen solchen Verstoß verursacht hat, sollte der Administrator IAM der Liste der zugänglichen Dienste hinzufügen. Führen Sie dazu den folgenden Google Cloud CLI-Befehl aus:
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 beobachten. Looker Studio wurde früher als Data Studio bezeichnet.