OVHcloud Key Management Service (KMS) verwenden
Verschlüsseln oder signieren Sie Ihre Daten mit der regionalen REST-API des OVHcloud Key Management Service (KMS)
Ziel
Ziel dieser Anleitung ist es, Ihnen die Schritte zur Interaktion mit dem OVHcloud KMS zu zeigen, um Ihre Daten zu verschlüsseln oder zu signieren.
Voraussetzungen
- Sie verfügen über einen OVHcloud Kunden-Account.
- Sie haben ein OVHcloud KMS bestellt.
- Sie haben für die OKMS-Datenebene eine Authentifizierungsmethode konfiguriert (Personal Access Token, Service-Account oder Zugriffszertifikat).
In der praktischen Anwendung
Mit dem KMS kommunizieren
Die Kommunikation mit dem KMS für Verschlüsselungs- und Signaturvorgänge erfolgt über APIs.
Da das KMS regionalisiert ist, greifen Sie direkt in seiner Region auf die API zu: https://my-region.okms.ovh.net.
Zum Beispiel für ein KMS, das in der Region eu-west-rbx erstellt wurde: https://eu-west-rbx.okms.ovh.net.
Sie können mit dem KMS wie folgt kommunizieren:
- Die Swagger-Benutzeroberfläche
- Die OKMS CLI: https://github.com/ovh/okms-cli
- Das Golang SDK: https://pkg.go.dev/github.com/ovh/okms-sdk-go
Authentifizieren Sie sich mit einem Personal Access Token, einem Service-Account oder einem Zugriffszertifikat. Für die Nutzung der REST-API werden ein PAT oder ein Service-Account empfohlen. Zugriffszertifikate sind für KMIP-Integrationen erforderlich.
Um API-Aufrufe interaktiv zu testen, verwenden Sie die OKMS Swagger UI unter https://<region>.okms.ovh.net/swagger/.
Einen Verschlüsselungsschlüssel über die API erstellen
Die Erstellung eines Schlüssels kann entweder über die oder über die spezifische OVHcloud KMS API erfolgen. Das Ergebnis unterscheidet sich je nach Erstellungsmethode nicht.
Die folgenden Routen erwarten die Kennung Ihrer OKMS-Domain. Sie wird vom folgenden API-Aufruf zurückgegeben:
Sie erscheint zusammen mit dem regionalen Endpoint auch im Tab Allgemeine Informationen im .
Im Fall der spezifischen OVHcloud KMS API erstellen Sie einen Schlüssel über die folgende API:
Die API erwartet die folgenden Werte:
Beispiel für die Erstellung eines symmetrischen Schlüssels:
Beispiel für die Erstellung eines asymmetrischen Schlüssels:
Beispiel für die Erstellung eines EC-Schlüssels:
Je nach Schlüsseltyp sind die möglichen Größen und Operationen die folgenden:
- Oct:
- Größe: 128, 192, 256
- Operationen:
- encrypt, decrypt
- wrapKey, unwrapKey
- RSA:
- Größe: 2048, 3072, 4096
- Operationen:
- sign, verify
- wrapKey, unwrapKey
- EC:
- Größe: nicht angeben
- curve: P-256, P-384, P-521
- Operationen: sign, verify
Bei RSA-Schlüsseln schließen sich wrapKey / unwrapKey und sign / verify gegenseitig aus.
Einen Verschlüsselungsschlüssel importieren
Beim Erstellen eines Schlüssels können Sie einen vorhandenen Schlüssel im Klartext als JWK importieren.
Der Import von Schlüsselmaterial im Klartext wird für Schlüssel, die vertrauenswürdig bleiben müssen, nicht empfohlen. Bevorzugen Sie sicheres BYOK mit asymmetrischer RSA-Umschließung.
Fügen Sie dazu ein zusätzliches Feld keys in den Body der Anfrage ein:
Der Schlüssel muss im Format JSON Web Key (JWK) vorliegen. Die Werte der in der Tabelle enthaltenen Felder folgen der Dokumentation der RFC 7518.
Verschlüsselungsschlüssel verwalten
Zur Verwaltung der Verschlüsselungsschlüssel stehen mehrere APIs zur Verfügung:
Die Deaktivierung eines Verschlüsselungsschlüssels bedeutet, dass dieser nicht mehr verwendbar ist, obwohl der Schlüssel im KMS erhalten bleibt.
Das Löschen eines Verschlüsselungsschlüssels ist nur bei einem zuvor deaktivierten Schlüssel möglich.
Das Löschen eines Verschlüsselungsschlüssels ist endgültig. Alle damit verschlüsselten Daten werden dauerhaft unzugänglich.
Sensitivitätsattribute von Serviceschlüsseln
Wenn Sie einen Serviceschlüssel erstellen oder abrufen, werden die Flags für Sensitivität und Extrahierbarkeit im Objekt attributes der GET-Antwort zurückgegeben (neben anderen Metadaten wie state). Nur extractable ist vom Benutzer setzbar (bei der Erstellung oder per PATCH). Die anderen Flags werden vom KMS gesetzt. Das Setzen von extractable auf true setzt never_extractable dauerhaft auf false.
Beispiel einer GET-Antwort (Felder gekürzt):
Um einen Schlüssel sicher zu extrahieren, setzen Sie extractable nur für den Exportvorgang auf true, exportieren Sie ihn mit RSA-Umschließung und setzen Sie es anschließend wieder auf false. Siehe Einen umschlossenen Schlüssel exportieren.
Daten mit dem KMS verschlüsseln
Verschlüsselung über das KMS
Das OVHcloud KMS verfügt über eine dedizierte Verschlüsselungs-API für die Verschlüsselung kleiner Datenmengen (weniger als 4 kB).
Dies ist die einfachste Methode, sie bietet jedoch nicht die beste Performance.
Die API erwartet die folgenden Werte:
Beispiel für die Verschlüsselung
Die API gibt die verschlüsselten Daten anschließend in einem Feld ciphertext zurück:
Die Entschlüsselung der Daten erfolgt umgekehrt über die API:
Die API erwartet die folgenden Werte:
Das Feld context muss denselben Wert haben wie der bei der Verschlüsselung angegebene.
Verschlüsselung mit einem Data Key (DK)
Für eine bessere Performance können Sie einen Data Key (DK) aus einem symmetrischen Schlüssel (AES) generieren, um ihn in Ihrer Anwendung zu verwenden.
Der verwendete AES-Schlüssel muss mit den Operationen wrapKey und unwrapKey generiert worden sein.
Sie können einen DK über die folgende API generieren:
Die API erwartet die folgenden Werte:
Beispiel für die Generierung eines Data Key:
Die API gibt anschließend den Data Key zurück:
- key: verschlüsselter, in base64 codierter Schlüssel. Diese Information muss mit den verschlüsselten Daten gespeichert werden und wird vom KMS für die Entschlüsselung verwendet.
- plaintext: Schlüssel im Klartext, in base64 codiert. Diese Information muss nach Abschluss der Verschlüsselung gelöscht werden und darf nicht gesichert werden.
Die Verwendung des Data Key erfolgt anschließend über Verschlüsselungsalgorithmen wie AES-GCM. Dies wird in dieser Dokumentation nicht behandelt.
Umgekehrt können Sie die entschlüsselte Version eines Data Key über die folgende API abrufen:
Die API erwartet die folgenden Werte:
Und sie gibt den entschlüsselten Data Key in einem Feld plaintext zurück.
Mit dem KMS signieren
Die Signatur einer Datei erfolgt mit dem privaten Schlüssel eines asymmetrischen Schlüsselpaars.
Unterstützte Algorithmen
Das OVHcloud KMS unterstützt die folgende Liste von Signaturalgorithmen:
- RSASSA-PKCS1 v1.5
Gemäß der Dokumentation der RFC 7518.
- ECDSA
Gemäß der Dokumentation der RFC 7518.
- RSASSA-PSS
Gemäß der Dokumentation der RFC 7518.
Signatur einer Nachricht
Da der private Schlüssel nicht im Klartext aus dem KMS extrahiert werden kann, kann die Signatur nur direkt über das KMS erfolgen.
Die API erwartet die folgenden Werte:
Beispiel für eine Signatur:
Die API gibt anschließend die Signatur der Datei zurück:
Eine Datei überprüfen
Sie können eine Datei entweder direkt über das KMS oder mithilfe des öffentlichen Schlüssels überprüfen.
Über das KMS können Sie die folgende API verwenden:
Die API erwartet die folgenden Werte:
Beispiel für eine Überprüfung
Die API gibt anschließend das Ergebnis der Überprüfung zurück:
Weiterführende Informationen
Schlüssel auf OVHcloud KMS mit BYOK importieren und exportieren
OKMS-Authentifizierungsmethoden
Anleitung zum Verbinden eines kompatiblen Produkts über das KMIP-Protokoll
Treten Sie unserer User Community bei.