Referenzarchitekturen für Cloud External Key Manager

Wenn Sie Cloud Key Management Service (Cloud KMS) mit Cloud External Key Manager (Cloud EKM) aktivieren, können Sie Schlüssel verwenden, die Sie mit einem externen Partner für die Schlüsselverwaltung verwalten, um Daten inGoogle Cloudzu schützen. In diesem Dokument werden Architekturen für Google Cloud -Kunden beschrieben, die einen hochverfügbaren externen Schlüsselverwaltungsdienst (External Key Manager, EKM) mit Cloud KMS und Cloud EKM bereitstellen möchten.

Die Verwendung von Cloud EKM mit Ihrem EKM-Dienst birgt ein explizites Risiko zwischen der Zuverlässigkeit von Cloud-Arbeitslasten und den Datenschutzkontrollen. Die Verschlüsselung ruhender Daten in der Cloud mit Verschlüsselungsschlüsseln außerhalb der Cloud birgt neue Risiken, die dazu führen können, dass Daten von Google Cloud -Diensten nicht mehr zugänglich sind. Um diese Risiken zu minimieren, müssen Sie Hochverfügbarkeit und Fehlertoleranz in die Cloud EKM-Architektur einbauen.

Übersicht

Mit Cloud EKM können Sie Schlüsselmaterial verwenden, das außerhalb von Google Cloud verbleibt, um den Zugriff auf Ihre Daten zu steuern, die in unterstützten Google Cloud-Diensten gespeichert sind. Cloud EKM-Schlüssel sind vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs). Mit Cloud EKM können Sie Cloud KMS-Schlüsselressourcen mit den Schutzstufen EXTERNAL und EXTERNAL_VPC erstellen und verwalten. Wenn Sie Cloud EKM aktivieren, führt jede Anfrage für einen kryptografischen Vorgang zu einem kryptografischen Vorgang für den externen Schlüssel. Der Erfolg des Vorgangs für die Erstanfrage hängt entscheidend vom Ergebnis des kryptografischen Vorgangs für den externen Schlüssel ab.

Cloud KMS fordert Vorgänge für externe Schlüssel über eine Spezial-API an, die in Ihr externes Schlüsselverwaltungssystem eingebunden ist. In diesem Dokument wird auf einen Dienst verwiesen, der diese API als EKM-Dienst bereitstellt.

Wenn ein EKM-Dienst nicht mehr verfügbar ist, können Lese- und Schreibvorgänge in den Datenebenen für integrierte Google Cloud -Dienste fehlschlagen. Diese Fehler werden ähnlich wie Fehler angezeigt, wenn sich der abhängige Cloud KMS-Schlüssel in einem nicht nutzbaren Zustand befindet, z. B. wenn er deaktiviert ist. Die Fehlermeldung beschreibt die Fehlerquelle und eine Vorgehensweise. Außerdem enthalten Cloud KMS-Audit-Logs zum Datenzugriff einen Eintrag für diese Fehlermeldungen zusammen mit beschreibenden Fehlertypen. Weitere Informationen finden Sie in der Cloud EKM-Fehlerreferenz.

Best Practices für Cloud EKM-Architekturen

Im SRE-Buch (Site Reliability Engineering) von Google werden Best Practices beschrieben, die bei der Entwicklung und Wartung zuverlässiger Systeme helfen. In diesem Abschnitt werden einige dieser Praktiken im Kontext der Integration Ihres EKM-Dienstes in Google Cloudbeschrieben. Die folgenden Best Practices gelten für die Cloud EKM-Referenzarchitekturen:

  • Zuverlässige Netzwerkverbindung mit niedriger Latenz konfigurieren
  • Hochverfügbarkeit aktivieren
  • Fehler schnell erkennen und beheben

Zuverlässige Netzwerkverbindung mit niedriger Latenz konfigurieren

Cloud KMS stellt über ein VPC-Netzwerk (Virtual Private Cloud) oder das Internet eine Verbindung zu EKM-Diensten her. VPC-Lösungen verwenden häufig hybride Konnektivität, um den EKM-Dienst in einem lokalen Rechenzentrum zu hosten. Die Verbindung zwischenGoogle Cloud und dem Rechenzentrum muss schnell und zuverlässig sein. Wenn Sie das Internet nutzen, benötigen Sie eine stabile, unterbrechungsfreie Erreichbarkeit und eine schnelle, zuverlässige DNS-Auflösung. Aus Sicht von Google Cloudkann jede Unterbrechung dazu führen, dass der EKM-Dienst nicht verfügbar ist und möglicherweise nicht auf EKM-geschützte Daten zugegriffen werden kann.

Wenn die Datenebene eines Google Cloud -Dienstes mit dem EKM-Dienst kommuniziert, hat jeder EKM-dienstgebundene Aufruf einen definierten Zeitüberschreitungszeitraum (150 Millisekunden). Das Zeitlimit wird vom Cloud KMS-Dienst am Google Cloud -Standort des Cloud KMS-Schlüssels gemessen. Wenn derGoogle Cloud -Standort eine multiregionale Region ist, beginnt das Zeitlimit in der Region, in der Cloud KMS die Anfrage empfängt. Das ist in der Regel die Region, in der der Vorgang für die CMEK-geschützte Datenressource ausgeführt wurde. Dieses Zeitlimit ist ausreichend, damit ein EKM-Dienst Anfragen in einer nahegelegenenGoogle Cloud -Region bearbeiten kann, aus der die Anfragen stammen.

Das Zeitlimit trägt dazu bei, Fehlerkaskaden in Downstream-Diensten zu verhindern, die vom externen Schlüssel abhängen. Probleme mit der Tail-Latenz, die normalerweise zu einer schlechten Nutzererfahrung in Anwendungen auf höherer Ebene führen, können sich als fehlgeschlagene Zugriffe auf den externen Schlüssel manifestieren, was zum Fehlschlagen des logischen Vorgangs auf höherer Ebene führt.

Um die Latenz zu minimieren und zuverlässige Netzwerke zu erstellen, sollten Sie Folgendes beachten:

  • Latenz der Roundtrip-Kommunikation mit Cloud KMS minimieren:Konfigurieren Sie den EKM-Dienst so, dass Anfragen so geografisch nah wie möglich an den Google Cloud Standorten verarbeitet werden, die den Cloud KMS-Schlüsseln entsprechen, die für die Verwendung des EKM-Dienstes konfiguriert sind. Weitere Informationen finden Sie unter Best Practices für die Auswahl der Region in Compute Engine und Regionen und Zonen.
  • Cloud Interconnect nach Möglichkeit verwenden:Cloud Interconnect>stellt über ein VPC-Netzwerk eine hochverfügbare Verbindung mit niedriger Latenz zwischen Google Cloudund Ihrem Rechenzentrum her und trägt dazu bei, Abhängigkeiten vom Internet zu vermeiden.
  • Bei Bedarf Netzwerklösungen in der Region bereitstellen, die dem EKM-Dienst am nächsten ist Google Cloud :Idealerweise werden Cloud KMS-Schlüssel in der Region gespeichert, die dem EKM-Dienst am nächsten ist. Wenn es eineGoogle Cloud -Region gibt, die näher am EKM-Dienst liegt als die Region mit den Cloud KMS-Schlüsseln, verwenden Sie Google Cloud -Netzwerklösungen wie Cloud VPN in der Region, die dem EKM-Dienst am nächsten ist. Diese Option trägt dazu bei, dass der Netzwerkverkehr nach Möglichkeit die Google-Infrastruktur nutzt, wodurch die Abhängigkeit vom Internet verringert wird.
  • Premium-Stufe verwenden, wenn EKM-Traffic über das Internet übertragen wird:Bei der Premium-Stufe wird der Traffic nach Möglichkeit über die Infrastruktur von Google über das Internet weitergeleitet, um die Zuverlässigkeit zu verbessern und die Latenz zu verringern.
  • Angemessene Client-Frist verwenden:Wenn Sie die Cloud KMS API für Cloud EKM-Schlüssel direkt aufrufen, konfigurieren Sie eine Client-Frist von mindestens 10 Sekunden, damit genügend Zeit für den Abschluss externer Schlüsselvorgänge bleibt.

Hochverfügbarkeit aktivieren

Das Vorhandensein eines Single Point of Failure im EKM-Dienst verringert die Verfügbarkeit abhängiger Google Cloud Ressourcen auf die des Single Point of Failure. Solche Fehlerquellen können sich in kritischen Abhängigkeiten des EKM-Dienstes sowie der zugrunde liegenden Compute- und Netzwerkinfrastruktur befinden.

Berücksichtigen Sie Folgendes, um Hochverfügbarkeit zu aktivieren:

  • Replikate in unabhängigen Ausfallzonen bereitstellen:Stellen Sie mindestens zwei Replikate des EKM-Dienstes bereit. Wenn Sie multiregionale Google CloudStandorte verwenden, stellen Sie EKM an mindestens zwei separaten geografischen Standorten mit jeweils mindestens zwei Replikaten bereit. Achten Sie darauf, dass jedes Replikat nicht nur eine replizierte Datenebene des EKM-Dienstes darstellt, indem Sie die Fehlervektoren zwischen den Replikaten minimieren und härten. Hier einige Beispiele:
    • Konfigurieren Sie Produktionsänderungen, einschließlich Server-Binärdateien und Konfigurations-Pushes, so, dass jeweils nur ein Replikat geändert wird. Prüfen Sie, ob alle Änderungen unter Aufsicht vorgenommen werden und getestete Rollbacks verfügbar sind.
    • Die Fehlerarten für Replikate der zugrunde liegenden Infrastruktur verstehen und minimieren. Achten Sie beispielsweise darauf, dass Replikate von unabhängigen und redundanten Stromversorgungen abhängen.
  • Replikate gegen Ausfälle einzelner Maschinen absichern:Prüfen Sie, ob jedes Replikat des Dienstes aus mindestens drei Geräten, Maschinen oder VM-Hosts besteht. Mit dieser Konfiguration kann das System Traffic verarbeiten, während ein Computer für Updates oder bei einem unerwarteten Ausfall nicht verfügbar ist (N+2-Bereitstellung).

  • Betroffenen Bereich von Problemen mit der Steuerungsebene einschränken:Konfigurieren Sie die Steuerungsebene (z. B. das Erstellen oder Löschen von Schlüsseln) des EKM-Dienstes so, dass die Konfiguration oder Daten über Replikate hinweg repliziert werden. Diese Vorgänge sind in der Regel komplexer, da sie eine Synchronisierung erfordern und sich auf alle Replikate auswirken. Probleme können sich schnell auf das gesamte System auswirken. Hier sind einige Strategien, um die Auswirkungen von Problemen zu verringern:

    • Geschwindigkeit der Weitergabe von Änderungen steuern:Sorgen Sie standardmäßig dafür, dass Änderungen so langsam wie möglich weitergegeben werden, ohne die Nutzerfreundlichkeit und Sicherheit zu beeinträchtigen. Richten Sie bei Bedarf Ausnahmen ein, z. B. wenn der Zugriff auf einen Schlüssel schnell weitergegeben werden soll, damit ein Nutzer einen Fehler rückgängig machen kann.
    • System in Shards aufteilen:Wenn viele Nutzer den EKM gemeinsam verwenden, teilen Sie sie in logische Shards auf, die völlig unabhängig voneinander sind. So können Probleme, die von einem Nutzer in einem Shard ausgelöst werden, keine Auswirkungen auf Nutzer in einem anderen Shard haben.
    • Auswirkungen von Änderungen in der Vorschau ansehen:Wenn möglich, sollten Nutzer die Auswirkungen von Änderungen sehen können, bevor sie angewendet werden. Wenn Sie beispielsweise eine Richtlinie für den Schlüsselzugriff ändern, kann das EKM die Anzahl der letzten Anfragen bestätigen, die gemäß der neuen Richtlinie abgelehnt worden wären.
    • Data Canarying implementieren:Senden Sie Daten zuerst nur an eine kleine Teilmenge des Systems. Wenn das Subset fehlerfrei bleibt, übertragen Sie die Daten an den Rest des Systems.
  • Ganzheitliche Systemdiagnosen implementieren:Erstellen Sie Systemdiagnosen, die messen, ob das gesamte System funktioniert. Systemdiagnosen, die nur die Netzwerkverbindung prüfen, sind beispielsweise nicht hilfreich, um auf viele Probleme auf Anwendungsebene zu reagieren. Im Idealfall spiegelt die Systemdiagnose die Abhängigkeiten für echten Traffic genau wider.

  • Failover für Replikate einrichten:Richten Sie das Load-Balancing in Ihren EKM-Dienstkomponenten so ein, dass die Systemdiagnosen verwendet werden und der Traffic aktiv von fehlerhaften Replikaten abgeleitet und sicher auf fehlerfreie Replikate umgeleitet wird.

  • Sicherheitsmechanismen zur Bewältigung von Überlastung und zur Vermeidung von kaskadierenden Fehlern einbauen:Systeme können aus verschiedenen Gründen überlastet werden. Wenn beispielsweise einige Replikate fehlerhaft werden, kann der zu den fehlerfreien Repliken weitergeleitete Traffic diese überlasten. Wenn das System mehr Anfragen erhält, als es verarbeiten kann, sollte es versuchen, die Anfragen, die es sicher und schnell verarbeiten kann, zu bearbeiten und gleichzeitig übermäßigen Traffic abzulehnen.

  • Für eine robuste Datenaufbewahrung sorgen:Daten in Google Cloud , die mit einem externen Schlüssel im EKM-Dienst verschlüsselt werden, können ohne den externen Schlüssel nicht wiederhergestellt werden. Daher ist die Langlebigkeit von Schlüsseln eine der zentralen Designanforderungen des EKM-Dienstes. Konfigurieren Sie den EKM-Dienst so, dass redundante Kopien von Schlüsselmaterial an mehreren physischen Standorten sicher gesichert werden. Konfigurieren Sie zusätzliche Schutzmaßnahmen wie Offline-Backups für Schlüssel mit hohem Wert. Ihre Löschmechanismen müssen genügend Zeit für die Wiederherstellung im Falle von Unfällen und Fehlern lassen.

Fehler schnell erkennen und beheben

Bei jedem Ausfall des EKM-Dienstes sind abhängige Google CloudRessourcen möglicherweise nicht zugänglich, was die Wahrscheinlichkeit eines kaskadierenden Ausfalls anderer abhängiger Komponenten Ihrer Infrastruktur weiter erhöhen kann.

Um Fehler schnell zu erkennen und zu beheben, sollten Sie Folgendes berücksichtigen:

  • EKM-Dienst so konfigurieren, dass Messwerte gemeldet werden, die auf Vorfälle hinweisen, die die Zuverlässigkeit gefährden:Richten Sie Messwerte wie Fehlerraten bei Antworten und Antwortlatenzen ein, um Probleme schnell zu erkennen.
  • Betriebsabläufe für die rechtzeitige Benachrichtigung und Behebung von Vorfällen einrichten:Quantifizieren Sie die Effektivität von Betriebsabläufen, indem Sie die Messwerte für die durchschnittliche Zeit bis zur Erkennung (Mean Time To Detect, MTTD) und die durchschnittliche Zeit bis zur Wiederherstellung (Mean Time To Restore, MTTR) erfassen und Ziele definieren, die anhand dieser Messwerte gemessen werden. Anhand dieser Messwerte können Sie Muster und Mängel in den aktuellen Prozessen und Systemen erkennen, um schnell auf Vorfälle reagieren zu können.

Referenzarchitekturen für Cloud EKM

Die folgenden Architekturen beschreiben einige Möglichkeiten, den EKM-Dienst mitGoogle Cloud Netzwerk- und Load-Balancing-Produkten bereitzustellen.

Direkte Verbindung über Cloud VPN oder Cloud Interconnect

Eine direkte Verbindung zwischen Google Cloud und Ihrem lokalen Rechenzentrum wird empfohlen, wenn Sie Anwendungen mit hohem Durchsatz aufGoogle Cloud ausführen und der EKM-Dienst in einem einzelnen Rechenzentrum ausgeführt wird. Das folgende Diagramm zeigt diese Architektur.

Architektur für eine direkte Verbindung über Cloud VPN oder Cloud Interconnect.

In dieser Architektur greift Cloud EKM über Hybridkonnektivität in der Region ohne Zwischen-Load-Balancing in Google Cloudauf den EKM-Dienst zu, der sich in einem lokalen Rechenzentrum befindet.

Wenn möglich, stellen Sie die Verbindung zwischen Cloud EKM und EKM-Dienst mit der Konfiguration mit einer Verfügbarkeit von 99,9% für Anwendungen in einer einzelnen Region bereit. Die Konfiguration mit einer Verfügbarkeit von 99,99% erfordert die Verwendung von Cloud Interconnect in mehreren Google CloudRegionen.Das ist möglicherweise nicht für Sie geeignet, wenn Ihr Unternehmen eine regionale Isolation erfordert. Wenn die Verbindung zum lokalen Rechenzentrum das Internet verwendet, verwenden Sie HA VPN anstelle von Cloud Interconnect.

Der Hauptvorteil dieser Architektur besteht darin, dass es in Google Cloudkeine Zwischen-Hops gibt, was die Latenz und potenzielle Engpässe reduziert. Wenn Sie eine direkte Verbindung einrichten möchten, während Ihr EKM-Dienst in mehreren Rechenzentren gehostet wird, müssen Sie Load Balancer in allen Rechenzentren konfigurieren, die dieselbe (Anycast-)IP-Adresse verwenden. Wenn Sie diese Konfiguration verwenden, sind Load Balancing und Failover zwischen Rechenzentren nur auf die Verfügbarkeit von Routen beschränkt.

Wenn Sie ein VPC-Netzwerk einrichten, müssen für externe Schlüssel, auf die über das VPC-Netzwerk zugegriffen wird, ein regionaler Standort in Cloud KMS verwendet werden. Die Schlüssel dürfen keinen multiregionalen Standort verwenden. Weitere Informationen finden Sie unter Externe Schlüsselmanager und Regionen.

Load-Balancing aus dem Internet in Google Cloud

Die Verwendung eines Load-Balancers in Google Cloud mit einer Internetverbindung wird empfohlen, wenn Sie multiregionale Cloud KMS-Schlüssel benötigen. Das folgende Diagramm zeigt diese Architektur.

Architektur für eine Load-Balancing-Verbindung aus dem Internet.

In dieser Architektur hat das EKM Replikate an zwei lokalen Standorten. Jedes Backend wird in Google Cloud durch eine Netzwerk-Endpunktgruppe (NEG) mit Hybridkonnektivität dargestellt. Bei der Bereitstellung wird ein externer Proxy-Network Load Balancer verwendet, um Traffic direkt an eines der Replikate weiterzuleiten. Im Gegensatz zu den anderen Ansätzen, die auf VPC-Netzwerken basieren, hat der externe Proxy-Network-Load-Balancer eine externe IP-Adresse und der Traffic stammt aus dem Internet.

Jedes Hybridkonnektivitäts-NEG kann mehrere IP-Adressen enthalten, sodass der externe Proxy-Network Load Balancer den Traffic direkt auf Instanzen des EKM-Dienstes verteilen kann. Ein zusätzlicher Load Balancer im lokalen Rechenzentrum ist nicht erforderlich.

Der externe Proxy-Network Load Balancer ist nicht an eine bestimmte Region gebunden. Er kann eingehenden Traffic an die nächstgelegene fehlerfreie Region weiterleiten und eignet sich daher für multiregionale Cloud KMS-Schlüssel. Der Load-Balancer lässt jedoch keine Konfiguration von primären und Failover-Backends zu. Der Traffic wird gleichmäßig auf mehrere Backends in einer Region verteilt.

Load-Balancing in einem VPC-Netzwerk in Google Cloud

Die Verwendung eines Load Balancers in Google Cloud mit einem VPC-Netzwerk wird für die meisten EKM-Dienste empfohlen, in denen Sie Ihr EKM bereitstellen. Das folgende Diagramm zeigt diese Architektur.

Architektur für eine Load-Balancing-Verbindung aus einem VPC-Netzwerk.

In dieser Architektur greift Cloud EKM über Hybridkonnektivität mit Zwischenlastenausgleichsebenen in der Google Cloud Region auf den EKM-Dienst zu, der zwischen zwei lokalen Rechenzentren repliziert wird. Wenn die Verbindung zum lokalen Rechenzentrum das Internet verwendet, können Sie HA VPN anstelle von Cloud Interconnect verwenden.

Der interne Passthrough-Network-Load-Balancer bietet eine einzelne IP-Adresse, die Ressourcen verwenden können, um Traffic über virtuelle Netzwerke zu senden. Der Load Balancer führt ein Failover zum Backup-Rechenzentrum durch, basierend auf dem Zustand der Back-Ends.

Die VM-Instanzgruppe ist für das Proxying von Traffic erforderlich, da der interne Load-Balancer Traffic nicht direkt an lokale Backends weiterleiten kann. Sie können Load-Balancer-Proxys bereitstellen, um Nginx-Docker-Images aus dem Cloud Marketplace in Instanzgruppen auszuführen. Sie können Nginx als TCP-Load-Balancer verwenden.

Da bei diesem Ansatz Load Balancer in Google Cloudverwendet werden, ist kein lokaler Load Balancer erforderlich. Die Google Cloud Load-Balancer können direkt eine Verbindung zu Instanzen des EKM-Dienstes herstellen und die Last zwischen ihnen ausgleichen. Wenn Sie den lokalen Load-Balancer entfernen, wird die Konfiguration vereinfacht, aber die Flexibilität des EKM-Dienstes wird eingeschränkt. Ein lokaler L7-Load-Balancer könnte beispielsweise Anfragen automatisch wiederholen, wenn eine EKM-Instanz einen Fehler zurückgibt.

Wenn Sie ein VPC-Netzwerk einrichten, müssen für externe Schlüssel, auf die über das VPC-Netzwerk zugegriffen wird, ein regionaler Standort in Cloud KMS verwendet werden. Die Schlüssel dürfen keinen multiregionalen Standort verwenden. Weitere Informationen finden Sie unter Externe Schlüsselmanager und Regionen.

Vergleich der Referenzarchitekturen

In der folgenden Tabelle werden die Referenzarchitektur-Optionen für Cloud EKM verglichen. Die Tabelle enthält auch eine Spalte für die vom Partner verwaltete EKM-Architektur. In diesem Szenario ist der Partner für die Bereitstellung und Verwaltung des EKM verantwortlich und stellt das EKM als Dienst für Kunden bereit.

Option Direkte Verbindung Load-Balancing aus dem Internet Load-Balancing in einem VPC-Netzwerk Vollständig verwaltetes EKM, das vom Partner bereitgestellt wird

Internet oder VPC-Netzwerk

VPC

Internet

VPC

Internet

Load Balancer in Google Cloud

Nein

Ja

Ja

Nein

Lokaler Load Balancer erforderlich

Ja

Nein

Nein

Ja (von Partner verwaltet)

Unterstützung multiregionaler Cloud KMS-Standorte

Nein

Ja

Nein

Ja

Empfohlen für

Anwendungen mit hohem Durchsatz, bei denen der EKM-Dienst an einem einzelnen Standort ausgeführt wird.

Wann sind multiregionale Cloud KMS-Schlüssel erforderlich?

Die meisten EKM-Dienste, in denen Sie Ihren eigenen EKM bereitstellen.

Sie können das EKM eines Partners verwenden, anstatt ein eigenes bereitzustellen.

Nächste Schritte