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 über einen externen Partner für die Schlüsselverwaltung verwalten, um Daten inGoogle Cloudzu schützen. In diesem Dokument werden Architekturen für Kunden von Google Cloud beschrieben, die einen hoch verfügbaren externen Schlüsselmanager (EKM) mit Cloud KMS und Cloud EKM bereitstellen möchten.

Die Verwendung von Cloud EKM mit Ihrem EKM-Dienst ist mit einem expliziten Risikoabwägung zwischen der Zuverlässigkeit von Cloud-Arbeitslasten und Datenschutzmaßnahmen verbunden. Die Verschlüsselung ruhender Daten in der Cloud mit Verschlüsselungsschlüsseln außerhalb der Cloud birgt neue Ausfallrisiken, die dazu führen können, dass auf Daten in Google Cloud -Diensten nicht mehr zugegriffen werden kann. Um diese Risiken zu minimieren, müssen Sie Hochverfügbarkeit und Ausfallsicherheit in die Cloud EKM-Architektur einbinden.

Ü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 (CMEK). Mit Cloud EKM können Sie Cloud KMS-Schlüsselressourcen mit den Schutzniveaus EXTERNAL und EXTERNAL_VPC erstellen und verwalten. Wenn Sie Cloud EKM aktivieren, führt jede Anfrage für kryptografische Vorgänge zu einem kryptografischen Vorgang am externen Schlüssel. Der Erfolg der ursprünglichen Anfrage hängt entscheidend vom Ergebnis der kryptografischen Operation auf dem externen Schlüssel ab.

Cloud KMS fordert Vorgänge für externe Schlüssel über eine 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 verfügbar ist, können Lese- und Schreibvorgänge aus den Datenebenen für integrierte Google Cloud -Dienste fehlschlagen. Diese Fehler treten ähnlich auf wie Fehler, wenn sich der abhängige Cloud KMS-Schlüssel in einem nicht verwendbaren Zustand befindet, z. B. wenn er deaktiviert ist. In der Fehlermeldung wird die Ursache des Fehlers und eine mögliche Maßnahme beschrieben. Darüber hinaus enthalten Audit-Logs für den Cloud KMS-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 von Google werden Best Practices für die Entwicklung und Wartung zuverlässiger Systeme beschrieben. In diesem Abschnitt werden einige dieser Praktiken im Zusammenhang mit der Einbindung 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 Virtual Private Cloud-Netzwerk (VPC) oder das Internet eine Verbindung zu EKM-Diensten her. Bei VPC-Lösungen wird häufig eine hybride Konnektivität verwendet, 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 zur Nichtverfügbarkeit des EKM-Dienstes und zur potenziellen Unmöglichkeit des Zugriffs auf EKM-geschützte Daten führen.

Wenn die Datenebene eines Google Cloud -Dienstes mit dem EKM-Dienst kommuniziert, hat jeder EKM-Dienst-gebundene Aufruf eine festgelegte Zeitüberschreitung (150 Millisekunden). Die Zeitüberschreitung wird vom Cloud KMS-Dienst an dem Speicherort des Cloud KMS-Schlüssels in der Google Cloud gemessen. Wenn sich der Standort derGoogle Cloud in mehreren Regionen befindet, beginnt die Zeitüberschreitung in der Region, in der Cloud KMS die Anfrage empfängt. Das ist in der Regel die Region, in der der Vorgang an der CMEK-geschützten Datenressource ausgeführt wurde. Diese Zeitüberschreitung ist ausreichend, damit ein EKM-Dienst Anfragen in einer nahe gelegenenGoogle Cloud -Region bearbeiten kann, aus der die Anfragen stammen.

Die Zeitüberschreitung hilft, Fehlerkaskaden in Downstream-Diensten zu verhindern, die vom externen Schlüssel abhängen. Probleme mit der Endlatenz, die normalerweise zu einer schlechten Nutzererfahrung in Anwendungen der höheren Ebene führen können, können sich als fehlgeschlagene Zugriffe auf den externen Schlüssel manifestieren, was zu einem Fehler bei der logischen Operation der höheren Ebene führt.

Beachten Sie Folgendes, um die Latenz zu minimieren und zuverlässige Netzwerke zu erstellen:

  • Latenz der runden Kommunikation mit Cloud KMS minimieren: Konfigurieren Sie den EKM-Dienst so, dass Anfragen so nah wie möglich an den Standorten von Google Cloud ausgeführt 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.
  • Verwenden Sie nach Möglichkeit Cloud Interconnect: Mit Cloud Interconnect wird eine hochverfügbare Verbindung mit niedriger Latenz zwischen Google Cloudund Ihrem Rechenzentrum über ein VPC-Netzwerk hergestellt. So werden Abhängigkeiten vom Internet reduziert.
  • Bereitstellen Sie Google Cloud -Netzwerklösungen bei Bedarf in der Region, die dem EKM-Dienst am nächsten ist: 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 als die Region mit den Cloud KMS-Schlüsseln liegt, verwenden Sie Google Cloud -Netzwerklösungen wie Cloud VPN in der Region, die dem EKM-Dienst am nächsten liegt. Mit dieser Option wird dafür gesorgt, dass der Netzwerkverkehr nach Möglichkeit die Google-Infrastruktur nutzt. Dadurch wird die Abhängigkeit vom Internet reduziert.
  • Netzwerke der Premium-Stufe verwenden, wenn EKM-Traffic über das Internet geleitet wird:Die Premium-Stufe leitet den Traffic nach Möglichkeit über die Google-Infrastruktur durch das Internet, um die Zuverlässigkeit zu verbessern und die Latenz zu reduzieren.

Hochverfügbarkeit aktivieren

Die Existenz eines einzigen Punkts der Ausfallstoleranz im EKM-Dienst reduziert die Verfügbarkeit der abhängigen Google Cloud -Ressourcen auf die des einzelnen Punkts der Ausfallstoleranz. Solche Fehlerquellen können sich in kritischen Abhängigkeiten des EKM-Dienstes sowie in der zugrunde liegenden Rechen- und Netzwerkinfrastruktur befinden.

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

  • Repliken über unabhängige Ausfallzonen hinweg bereitstellen:Stellen Sie mindestens zwei Repliken des EKM-Dienstes bereit. Wenn Sie multiregionale Google Cloud-Standorte verwenden, stellen Sie EKM an mindestens zwei verschiedenen Standorten mit jeweils mindestens zwei Replicas bereit. Achten Sie darauf, dass jedes Replikat nicht nur eine replizierte Datenebene des EKM-Dienstes darstellt, indem Sie die replikationsübergreifenden Fehlervektoren minimieren und härten. Betrachten Sie die folgenden Beispiele:
    • Konfigurieren Sie Produktionsänderungen, einschließlich Server-Binärdateien und Konfigurationspushes, so, dass nur ein Replikat gleichzeitig geändert wird. Prüfen Sie, ob alle Änderungen unter Aufsicht durchgeführt werden und getestete Rollbacks jederzeit verfügbar sind.
    • Die replikationsübergreifenden Fehlermodi der zugrunde liegenden Infrastruktur verstehen und minimieren Achten Sie beispielsweise darauf, dass Replikatsysteme von unabhängigen und redundanten Stromversorgungen abhängig sind.
  • Resilienz der Replikate gegenüber Ausfällen einzelner Maschinen: Prüfen Sie, ob jedes Replikat des Dienstes aus mindestens drei Appliances, Maschinen oder VM-Hosts besteht. Mit dieser Konfiguration kann das System Traffic verarbeiten, während ein Computer aufgrund von Updates oder bei einem unerwarteten Ausfall (N+2-Bereitstellung) ausgefallen ist.

  • Begrenzten Bereich der Steuerungsebenenprobleme eingrenzen:Konfigurieren Sie die Steuerungsebene (z. B. Schlüsselerstellung oder ‑löschung) des EKM-Dienstes, um die Konfiguration oder Daten über Repliken zu replizieren. 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, mit denen sich die Auswirkungen von Problemen verringern lassen:

    • Geschwindigkeit der Weiterleitung steuern:Standardmäßig sollten Änderungen so langsam wie möglich übertragen werden, was für die Nutzerfreundlichkeit und Sicherheit akzeptabel ist. Sie können bei Bedarf Ausnahmen einrichten, 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 partitionieren: Wenn viele Nutzer das EKM gemeinsam nutzen, partitionieren Sie es in logische Shards, die völlig unabhängig voneinander sind, damit Probleme, die von einem Nutzer in einem Shard ausgelöst werden, nicht auf Nutzer in einem anderen Shard übergreifen.
    • Vorschau der Auswirkungen von Änderungen: Lassen Sie Nutzer nach Möglichkeit die Auswirkungen von Änderungen sehen, bevor Sie sie anwenden. Wenn Sie beispielsweise eine Richtlinie für den Schlüsselzugriff ändern, kann der 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 einen kleinen Teil des Systems. Wenn die Teilmenge weiterhin fehlerfrei ist, werden die Daten an den Rest des Systems gesendet.
  • Umfassende Systemdiagnosen implementieren:Erstellen Sie Systemdiagnosen, die prüfen, ob das gesamte System funktioniert. Beispielsweise sind Systemdiagnosen, die nur die Netzwerkverbindung prüfen, bei vielen Problemen auf Anwendungsebene nicht hilfreich. Idealerweise spiegelt die Systemdiagnose die Abhängigkeiten für den tatsächlichen Traffic genau wider.

  • Failover für Replikas einrichten:Richten Sie das Load Balancing in Ihren EKM-Dienstkomponenten so ein, dass es die Systemdiagnosen nutzt, den Traffic aktiv von fehlerhaften Replikas ableitet und bei einem Ausfall sicher auf fehlerfreie Replikas umstellt.

  • Sicherheitsmechanismen zur Verwaltung von Überlastungen und Vermeidung von Kaskadenfehlern einbinden: Systeme können aus verschiedenen Gründen überlastet werden. Wenn beispielsweise einige Replikats fehlerhaft werden, kann der Traffic, der an die fehlerfreien Replikats weitergeleitet wird, diese überlasten. Wenn mehr Anfragen eingehen, als das System bedienen kann, sollte es versuchen, so viele Anfragen wie möglich sicher und schnell zu bedienen und überschüssigen Traffic abzulehnen.

  • Sorgen Sie für eine robuste Langlebigkeit: Daten in der Google Cloud , die mit einem externen Schlüssel im EKM-Dienst verschlüsselt sind, können ohne den externen Schlüssel nicht wiederhergestellt werden. Daher ist die Schlüsseldauer 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 Offlinesicherungen für Schlüssel mit hohem Wert. Achten Sie darauf, dass Ihre Löschmechanismen bei Unfällen und Fehlern genügend Zeit für die Wiederherstellung lassen.

Fehler schnell erkennen und beheben

Jede Minute, in der der EKM-Dienst ausfällt, sind möglicherweise abhängige Google Cloud-Ressourcen nicht zugänglich. Dies kann die Wahrscheinlichkeit eines kaskadierenden Ausfalls anderer abhängiger Komponenten Ihrer Infrastruktur weiter erhöhen.

Beachten Sie Folgendes, um Ausfälle schnell zu erkennen und zu beheben:

  • Konfigurieren Sie den EKM-Dienst so, dass Messwerte gemeldet werden, die auf Zuverlässigkeit bedrohende Vorfälle signalisieren:Richten Sie Messwerte wie Antwortfehlerraten und Antwortlatenzen ein, um Probleme schnell zu erkennen.
  • Betriebspraktiken für die zeitnahe Benachrichtigung und Behebung von Vorfällen einrichten: Bestimmen Sie die Effektivität der Betriebspraktiken, indem Sie die Messwerte „Mean Time to Detect“ (MTTD, mittlere Zieldiagnosezeit) und „Mean Time to Restore“ (MTTR, mittlere Wiederherstellungszeit) 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

In den folgenden Architekturen werden einige Möglichkeiten beschrieben, den EKM-Dienst mithilfe von Netzwerk- und Load Balancing-Produkten vonGoogle Cloud 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 hoher Durchsatzleistung inGoogle Cloud ausführen und der EKM-Dienst in einem einzigen 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 eine hybride Konnektivität in der Region auf den EKM-Dienst in einem lokalen Rechenzentrum zu, ohne Zwischenlastausgleich in Google Cloud.

Stellen Sie die Cloud EKM-zu-EKM-Dienstverbindung nach Möglichkeit mit der Konfiguration mit einer Verfügbarkeit von 99, 9% für Anwendungen in einer einzelnen Region bereit. Für die Konfiguration mit einer Verfügbarkeit von 99,99% ist die Verwendung von Cloud Interconnect in mehreren Regionen von Google Clouderforderlich.Dies ist möglicherweise nicht ausreichend, wenn Ihr Unternehmen eine regionale Isolation benötigt. Wenn für die Verbindung zum lokalen Rechenzentrum das Internet verwendet wird, verwenden Sie anstelle von Cloud Interconnect HA VPN.

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

Wenn Sie ein VPC-Netzwerk einrichten, müssen für externe Schlüssel, auf die über das VPC-Netzwerk zugegriffen wird, regionale Speicherorte 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 über das Internet in Google Cloud

Wenn Sie Cloud KMS-Schlüssel für mehrere Regionen benötigen, wird die Verwendung eines Load Balancers in Google Cloud mit einer Internetverbindung empfohlen. Das folgende Diagramm zeigt diese Architektur.

Architektur für eine lastausgleichende Verbindung aus dem Internet.

In dieser Architektur hat das EKM Replikate an zwei Standorten vor Ort. Jedes Backend wird in Google Cloud mithilfe einer Netzwerk-Endpunktgruppe mit Hybridkonnektivität dargestellt. Bei der Bereitstellung wird ein externer Proxy-Network Load Balancer verwendet, um den Traffic direkt an eines der Replikats 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.

Jede NEG für die Hybridkonnektivität 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 Rechenzentrum ist nicht erforderlich.

Der externe Proxy-Network Load Balancer ist nicht an eine bestimmte Region gebunden. Es kann eingehenden Traffic an die nächstgelegene fehlerfreie Region weiterleiten, was es für Cloud KMS-Schlüssel mit mehreren Regionen geeignet macht. Der Load Balancer ermöglicht jedoch nicht die Konfiguration von primären und Failover-Back-Ends. Der Traffic wird gleichmäßig auf mehrere Backends in einer Region verteilt.

Load Balancing in einem VPC-Netzwerk in Google Cloud

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

Architektur für eine load-balanced Verbindung aus einem VPC-Netzwerk

In dieser Architektur greift Cloud EKM auf den EKM-Dienst zu, der über eine hybride Konnektivität mit Zwischenebenen für das Load Balancing zwischen zwei Rechenzentren vor Ort repliziert wird, in der Region Google Cloud . Wenn für die Verbindung zum lokalen Rechenzentrum das Internet verwendet wird, können Sie anstelle von Cloud Interconnect HA VPN verwenden.

Der interne Passthrough-Network Load Balancer stellt eine einzelne IP-Adresse bereit, über die Ressourcen Traffic mithilfe von virtuellem Networking senden können. Der Load Balancer führt einen Failover zum Sicherungsrechenzentrum aus, basierend auf dem Zustand der Back-Ends.

Die VM-Instanzgruppe ist für den Proxy-Traffic erforderlich, da der interne Load Balancer den Traffic nicht direkt an On-Premises-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 On-Premises-Load Balancer erforderlich. Die Load Balancer von Google Cloud können direkt mit Instanzen des EKM-Dienstes verbunden werden und die Last auf diese verteilen. Wenn Sie den lokalen Load Balancer entfernen, wird die Konfiguration vereinfacht, aber die Flexibilität des EKM-Dienstes wird eingeschränkt. Ein L7-Load Balancer vor Ort könnte beispielsweise automatisch Anfragen 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, regionale Speicherorte 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 Optionen für die Referenzarchitektur 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 den EKM als Dienst für Kunden bereit.

Option Direkte Verbindung Load Balancing über das Internet Load Balancing in einem VPC-Netzwerk Vollständig verwaltetes EKM vom Partner

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 für multiregionale Cloud KMS-Standorte

Nein

Ja

Nein

Ja

Empfohlen für

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

Wenn multiregionale Cloud KMS-Schlüssel erforderlich sind.

Die meisten EKM-Dienste, bei denen Sie Ihr eigenes EKM bereitstellen.

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

Nächste Schritte