This is not an officially supported Google product. This code creates PoC demo environment for CSA Certificate Authority Service demo. This demo code is not built for production workload.
Dieser Architekturleitfaden ermöglicht eine optimierte und sichere Bereitstellung des Certificate Authority Service (CAS). Es erstellt eine Stammzertifizierungsstelle zusammen mit zwei untergeordneten Zertifizierungsstellen und einem Blattzertifikat. Diese Zertifizierungsstellen sind hochverfügbar, skalierbar und einfach zu warten, sodass Sie eine private Public-Key-Infrastruktur (PKI) aufbauen können, um Identitäten über Zertifikate zu bestätigen und eine Vertrauensbasis für Ihre Workloads aufzubauen.
Während sich dieser Architekturleitfaden auf eine vollständige CAS-Bereitstellung konzentriert – in der Abbildung unten als Architektur 1 bezeichnet (d. h. eine, bei der alle Zertifizierungsstellen in Google Cloud gehostet werden) –, ist CAS äußerst flexibel und ermöglicht Ihrem Unternehmen die Erstellung einer privaten PKI auf vielfältige Weise Es gibt verschiedene Möglichkeiten, wie im Diagramm unten dargestellt.
Wir stellen außerdem Einzelheiten zur Verwendung von CSR (Certificate Signing Request) zur Implementierung einer Hybridarchitektur bereit, in der sich Zertifizierungsstellen außerhalb der GCP befinden können (Architekturen Nr. 2–3).
Certificate Authority Service (CAS) – Der Certificate Authority Service ist ein hochverfügbarer, skalierbarer Google Cloud-Dienst, der es Ihnen ermöglicht, die Bereitstellung, Verwaltung und Sicherheit privater Zertifizierungsstellen (CA) zu vereinfachen, zu automatisieren und anzupassen.
Key Management Service (KMS) – Mit dem Cloud Key Management Service können Sie kryptografische Schlüssel erstellen, importieren und verwalten sowie kryptografische Vorgänge in einem einzigen zentralen Cloud-Dienst ausführen. Sie können diese Schlüssel verwenden und diese Vorgänge ausführen, indem Sie Cloud KMS direkt verwenden, indem Sie Cloud HSM oder Cloud External Key Manager verwenden oder indem Sie CMEK-Integrationen (Customer-Managed Encryption Keys) in andere Google Cloud-Dienste verwenden.
Google Cloud Storage (GCS) – Cloud Storage ist ein verwalteter Dienst zum Speichern unstrukturierter Daten. Speichern Sie beliebige Datenmengen und rufen Sie diese beliebig oft ab.
Beim Entwerfen einer PKI mit GCP CAS sollten die folgenden Grenzwerte sowie Kontingente und Grenzwerte sowie bekannte Einschränkungen berücksichtigt werden:
Ressource | Einheit | Wert |
---|---|---|
Ausstehende CAs 1 | pro Standort pro Projekt | 100 |
Zertifizierungsstellen | pro Standort pro Projekt | 1.000 |
Nicht abgelaufene widerrufene Zertifikate 2 | pro CA oder Zertifikatssperrliste (CRL) | 500.000 |
1 ausstehende Zertifizierungsstelle (CA) ist eine untergeordnete CA, die erstellt, aber noch nicht aktiviert wurde und sich daher im Status AWAITING_USER_ACTIVATION befindet.
2 CRL kann höchstens 500.000 nicht abgelaufene widerrufene Zertifikate enthalten. Wenn Sie versuchen, mehr als dieses Limit zu widerrufen, schlägt die Widerrufsanforderung fehl. Wenn Sie mehr als 500.000 Zertifikate sperren müssen, empfehlen wir Ihnen, zu warten, bis die vorhandenen gesperrten Zertifikate abgelaufen sind, oder das ausstellende CA-Zertifikat zu sperren.
##Terraform-Anleitung:
Melden Sie sich bei Ihrer Organisation an und weisen Sie sich eine CA Service Admin- und Cloud KMS Admin- Rolle für das Projekt zu, das für die Bereitstellung verwendet werden soll.
Wenn ein neues Projekt erstellt und die Abrechnung aktiviert werden muss. Befolgen Sie die Schritte in dieser Anleitung.
Öffnen Sie Cloud Shell und klonen Sie das folgende Git-Repository mit dem folgenden Befehl:
git clone https://github.com/GCP-Architecture-Guides/csa-certificate-authority-service.git
Navigieren Sie zum Ordner „csa-certificate-authority-service“.
cd csa-certificate-authority-service</th>
Exportieren Sie die Projekt-ID in die Terraform-Variable
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
Führen Sie im Ordner „csa-certificate-authority-service“ die folgenden Befehle der Reihe nach aus.
terraform init terraform plan terraform apply
Wenn Sie dazu aufgefordert werden, autorisieren Sie den API-Aufruf.
Sobald die Bereitstellung abgeschlossen ist, wird die Ausgabezusammenfassung der orchestrierten Assets veröffentlicht. Die Ressourcen werden innerhalb von fünf Minuten bereitgestellt.
Navigieren Sie nach Abschluss der Demo zum Ordner „Certificate-Authority-Service“ und führen Sie den folgenden Befehl aus, um alle Demoressourcen zu zerstören.
terraform destroy
##Terraform-Zusammenfassung:
Pool | CA | Gültigkeit | Zustand | Betreffname | Region | Stufe |
---|---|---|---|---|---|---|
Demo-Root-Pool | Root-CA | 10 Jahre | Ermöglicht | Organisation: Demo CA CN: Demo Ressourcen-ID: [Standard] | us-central1 (Iowa) | Unternehmen |
Demo-Sub-Pool | Sub-CA mit Root-CA in Google Cloud | 3 Jahre | Ermöglicht | Organisation: Demo CA CN: Demo Ressourcen-ID: [Standard] | us-central1 (Iowa) | Unternehmen |
Demo-Sub-Pool-2 | Sub-CA mit Root-CA in Google Cloud | 3 Jahre | Ermöglicht | Organisation: Demo CA CN: Demo Ressourcen-ID: [Standard] | us-east1 | Unternehmen |
Pool | Akzeptierte CSR-Methoden | Zulässige Schlüssel und Algorithmen | Schlüsselgröße und Algorithmus | Veröffentlichungsoptionen | Konfigurierte Basiswerte | Konfigurierte Erweiterungseinschränkungen | Konfigurierte Identitätsbeschränkungen |
---|---|---|---|---|---|---|---|
Demo-Root-Pool | Alles zulassen | Keine Einschränkungen | RSA_PKCS1_4096_SHA256 | Zum GCS-Bucket im PEM-Format | Keiner | Kopieren Sie alle Erweiterungen aus Zertifikatsanfragen | Betreff und SAN(s) aus Zertifikatsanfragen kopieren |
Demo-Sub-Pool | Alles zulassen | Keine Einschränkungen | RSA_PKCS1_4096_SHA256 | Zum GCS-Bucket im PEM-Format | Keiner | Kopieren Sie alle Erweiterungen aus Zertifikatsanfragen | Betreff und SAN(s) aus Zertifikatsanfragen kopieren |
Demo-Sub-Pool-2 | Alles zulassen | Keine Einschränkungen | RSA_PKCS1_4096_SHA256 | Zum GCS-Bucket im PEM-Format | Keiner | Kopieren Sie alle Erweiterungen aus Zertifikatsanfragen | Betreff und SAN(s) aus Zertifikatsanfragen kopieren |
Best Practices für den Zertifizierungsstellendienst
Für den Zertifizierungsstellendienst von Google Cloud gelten mehrere Protokollierungs- und Überwachungsanforderungen, um die Sicherheit und Integrität des Dienstes zu gewährleisten. Zu diesen Anforderungen gehört Folgendes:
Prüfprotokollierung: Für den Dienst ausgeführte Protokollvorgänge, wie z. B. Zertifikatsausstellung, -erneuerung und -widerruf, werden protokolliert und können von Kunden geprüft werden.
Ereignisbenachrichtigungen: Kunden können Benachrichtigungen über wichtige Ereignisse, wie z. B. den Ablauf des Zertifikats, per E-Mail oder über einen Webhook erhalten.
Zertifikatstransparenz: Alle ausgestellten Zertifikate werden in Transparenzprotokollen protokolliert, was eine Prüfung der Ausstellung und des Widerrufs von Zertifikaten ermöglicht.
Sicherheits- und Verfügbarkeitsüberwachung: Sicherheits- und Betriebsteams überwachen den Dienst ständig auf potenzielle Sicherheitsbedrohungen und Verfügbarkeitsprobleme.
Compliance: Der Zertifizierungsstellendienst von Google Cloud entspricht verschiedenen Standards, die Sicherheits- und Betriebsanforderungen für Zertifizierungsstellen festlegen.
Insgesamt zielen diese Protokollierungs- und Überwachungsanforderungen darauf ab, den Kunden Transparenz und Sichtbarkeit des Dienstes zu bieten und gleichzeitig die Sicherheit und Verfügbarkeit des Dienstes zu gewährleisten.
Google Cloud-Dienste schreiben Audit-Protokolle, um Ihnen bei der Beantwortung der Fragen zu helfen: „Wer hat was, wo und wann getan?“ innerhalb Ihrer Google Cloud-Ressourcen.
Die folgenden Arten von Audit-Protokollen sind für CA Service verfügbar:
Überwachungsprotokolle für Administratoraktivitäten
Beinhaltet „Administrator-Schreibvorgänge“, die Metadaten oder Konfigurationsinformationen schreiben.
Sie können die Überwachungsprotokolle für Administratoraktivitäten nicht deaktivieren.
Überwachungsprotokolle für den Datenzugriff
Beinhaltet „Administrator-Lese“-Vorgänge, die Metadaten oder Konfigurationsinformationen lesen. Umfasst auch „Datenlese-“ und „Datenschreibvorgänge“, die vom Benutzer bereitgestellte Daten lesen oder schreiben.
Um Datenzugriffs-Überwachungsprotokolle zu erhalten, müssen Sie diese explizit aktivieren.
Spezifische Prüfprotokolle, die vom Zertifizierungsstellendienst erstellt wurden, finden Sie hier.
Überwachungsprotokolle für Administratoraktivitäten sind immer aktiviert. Sie können sie nicht deaktivieren.
Überwachungsprotokolle zum Datenzugriff sind standardmäßig deaktiviert und werden nicht geschrieben, sofern sie nicht ausdrücklich aktiviert sind.
Informationen zum Aktivieren einiger oder aller Ihrer Datenzugriffs-Überwachungsprotokolle finden Sie unter Aktivieren von Datenzugriffs-Überwachungsprotokollen.
In der Google Cloud Console können Sie den Logs Explorer verwenden, um Ihre Audit-Log-Einträge für Ihr Cloud-Projekt, Ihren Ordner oder Ihre Organisation abzurufen:
Gehen Sie in der Google Cloud Console zur Seite Protokollierung > Protokoll-Explorer.
Wählen Sie ein vorhandenes Cloud-Projekt, einen Ordner oder eine Organisation aus.
Gehen Sie im Bereich „Abfrage-Generator“ wie folgt vor:
protoPayload.serviceName="privateca.googleapis.com"
Cloud Monitoring kann zur Überwachung von Vorgängen verwendet werden, die an Ressourcen im Certificate Authority Service ausgeführt werden.
Befolgen Sie die folgenden Anweisungen, um empfohlene Warnungen zu aktivieren.
Gehen Sie zur Seite „CA Service Overview“ in der Google Cloud Console.
Klicken Sie oben rechts auf der Übersichtsseite auf + 5 empfohlene Benachrichtigungen .
Aktivieren oder deaktivieren Sie jede Warnung, indem Sie ihre Beschreibung lesen.
Einige Warnungen unterstützen benutzerdefinierte Schwellenwerte. Sie können beispielsweise angeben, wann Sie über ein ablaufendes CA-Zertifikat benachrichtigt werden möchten, oder die Fehlerrate bei einer hohen Rate an Fehlern bei der Zertifikatserstellung festlegen.
Alle Warnungen unterstützen Benachrichtigungskanäle.
Klicken Sie auf „Senden“, sobald Sie alle gewünschten Benachrichtigungen aktiviert haben.
Richtlinien und Vorlagen für Dokumentzertifikate
Identitätsbeschränkungen
Erweiterungsbeschränkungen
Wichtige Nutzungsbedingungen
Richtlinienbezeichner
Erweiterungen
Um das Missbrauchsrisiko zu verringern, sollten Zertifikatsrichtlinien überprüft werden, um sicherzustellen, dass Vorlagen über genehmigte und definierte Funktionen verfügen
Erstellen Sie einen CA-Kompromittierungsreaktionsplan
Informieren Sie alle Beteiligten
Überprüfen Sie mindestens einmal jährlich die Sicherheits- und Kommunikationsrichtlinien von CA
Erstellen Sie Backup-CA-Pläne
Inventarzertifizierungsstellen
Stellen Sie sicher, dass nur genehmigte Zertifizierungsstellen verwendet werden
Stellen Sie sicher, dass nur zugelassenen Roots vertraut wird
Inventarisieren Sie Stammzertifizierungsstellen, denen die Systeme der vertrauenden Parteien vertrauen
Überprüfen und verifizieren Sie die Berechtigungen für vorhandene Zertifikatvorlagen
Erzwingen Sie die Sperrprüfung auf Systemen der vertrauenden Seite
Aktivieren Sie Audit-Protokolle und Warnungen
Identifizieren Sie den Kompromiss anhand des Alarmierungs- und Berichtsdesigns
Schaffen Sie ein klares Verständnis darüber, was passiert ist
Wer hat den Vorfall entdeckt?
Falls verfügbar, wer den Vorfall begangen hat.
Als die CA kompromittiert wurde.
Wo sich der Vorfall ereignete.
Welche Roots, Sub-CAs und die Anzahl der vom Vorfall betroffenen Endbenutzerzertifikate.
Die vermutete Ursache des Vorfalls.
Welche Abhilfemaßnahmen wurden ergriffen oder werden ergriffen, um die zugrunde liegende Ursache des Vorfalls zu beheben?
Eine Liste der von der Sicherheitsverletzung betroffenen Zertifikate und Domänen.
Wie wurde der Vorfall festgestellt?
Detaillierte Beschreibung des Exploits.
Details darüber, welche Infrastruktur kompromittiert wurde.
Details darüber, wie die Infrastruktur kompromittiert wurde.
Eine detaillierte Zeitleiste der Ereignisse.
Wurde die Schwachstelle im normalen Betrieb erkannt? Wenn nicht, warum?
Wurde die Schwachstelle bei der letzten Prüfung entdeckt? Wenn ja, wurde die Schwachstelle behoben? Wenn die Schwachstelle nicht behoben wurde, warum nicht?
Wurde diese Schwachstelle bei der letzten Prüfung entdeckt? Wenn nicht, erläutern Sie bitte den Grund.
Welche politischen Änderungen müssen vorgenommen werden?
Alle anderen geeigneten Informationen.
Aktivieren Sie das Incident-Response-Team
Eindämmen und Isolieren der betroffenen CA-Umgebung a. Informationen zum Deaktivieren der Ausstellung von Zertifikaten durch eine Zertifizierungsstelle finden Sie unter
Erstellen Sie einen Plan, um den betroffenen Stakeholdern (intern/extern) die Auswirkungen und die nächsten Abhilfemaßnahmen mitzuteilen.
Führen Sie nach Abschluss einer Untersuchung und verifizierter Eindämmung Folgendes durch:
Widerrufen und Zurücksetzen der Anmeldeinformationen für alle gefährdeten Identitäten, die einer Rolle zugeordnet wurden, die erhöhte Berechtigungen für Zertifizierungsstellen und zugehörige Richtlinien/templates.reference-1 und reference-2 bereitstellt
Widerrufen Sie kompromittierte CAs und zugehörige Zertifikate und richten Sie eine neue CA-Referenz ein
Zum CRL-/Aktualisierungsstatus im OCSP-Responder hinzufügen (sofern nicht automatisiert), um Subjekte, vertrauende Parteien und Anbieter zu benachrichtigen
Widerrufen Sie vorhandene Zertifikate und stellen Sie Zertifikate aus der Referenz neuer Zertifizierungsstellen erneut aus
Stammzertifikate entfernen/ersetzen
Überprüfen Sie, ob die Sperrprüfung auf Systemen der vertrauenden Seite aktiviert ist
Validieren Sie Zertifikat- und Root-Ersetzungen
Verfolgen und berichten Sie über den Fortschritt
Nachfolgend finden Sie die geschätzten monatlichen Kosten für den Betrieb dieser Demonstrationsumgebung. Beachten Sie, dass dies zum Zeitpunkt der Mustererstellung geschätzt wurde. Die Schätzung kann sich mit der Zeit ändern und je nach Region variieren. Bitte überprüfen Sie die Kosten für jede Ressource im Google Cloud-Preisrechner.
DevOps-SKU | Enterprise-SKU | |
---|---|---|
Monatliche CA-Gebühr | 20 $ | 200 $ |
Zertifikatsgebühren | 0-50.000 @ 0,3 $ 50.000 - 100.000 $ bei 0,03 $ 100.000+ @ 0,0009 $ Tiering über mehrere Zertifizierungsstellen hinweg | 0-50.000 @ 0,5 $ 50.000 - 100.000 $ bei 0,05 $ 100.000+ @ 0,001 $ Tiering über mehrere Zertifizierungsstellen hinweg |
HSM-Unterstützung für CA-Schlüssel | ||
BYO CA-Schlüssel | X | |
Zertifikate nachverfolgt und widerrufen | X | |
QPS | 25 | 7 |
Optimiert für ... | Hohes Volumen, kurze Lebensdauer | Geringes Volumen, langlebig |
CAS-Übersicht
Wir stellen den CAS-Blog vor
CAS-Lehrvideos
CAS GitHub Repo