Auf dieser Seite wird beschrieben, wie Sie einen Schlüssel in Cloud KMS erstellen. Ein Schlüssel kann ein symmetrischer oder asymmetrischer Verschlüsselungsschlüssel, ein asymmetrischer Signaturschlüssel oder ein MAC-Signaturschlüssel sein.
Wenn Sie einen Schlüssel erstellen, fügen Sie ihn einem Schlüsselbund an einem bestimmten Cloud KMS-Standort hinzu. Sie können einen neuen Schlüsselbund erstellen oder einen vorhandenen verwenden. Auf dieser Seite generieren Sie einen neuen Cloud KMS-Schlüssel und fügen ihn einem vorhandenen Schlüsselbund hinzu. Informationen zum Erstellen eines Cloud EKM-Schlüssels finden Sie unter Externen Schlüssel erstellen. Informationen zum Importieren eines Cloud KMS- oder Cloud HSM-Schlüssels finden Sie unter Schlüssel importieren.
Hinweis
Bevor Sie die Aufgaben auf dieser Seite ausführen können, benötigen Sie Folgendes:
- Eine Cloud de Confiance Projektressource, die Ihre Cloud KMS-Ressourcen enthält. Wir empfehlen, für Ihre Cloud KMS-Ressourcen ein separates Projekt zu verwenden, das keine anderen Cloud de Confiance -Ressourcen enthält.
- Der Name und der Speicherort des Schlüsselbunds, in dem Sie den Schlüssel erstellen möchten. Wählen Sie einen Schlüsselbund an einem Standort aus, der sich in der Nähe Ihrer anderen Ressourcen befindet und die von Ihnen gewählte Schutzstufe unterstützt. Informationen zum Erstellen eines Schlüsselbunds finden Sie unter Schlüsselbund erstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt oder eine übergeordnete Ressource zuzuweisen, damit Sie die nötigen Berechtigungen zum Erstellen von Schlüsseln haben:
- Cloud KMS-Administrator (
roles/cloudkms.admin) -
So erstellen Sie Single-Tenant-HSM-Schlüssel:
Cloud KMS Single-Tenant HSM Key Creator (
roles/cloudkms.hsmSingleTenantKeyCreator)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen von Schlüsseln erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen von Schlüsseln erforderlich:
-
cloudkms.cryptoKeys.create -
cloudkms.cryptoKeys.get -
cloudkms.cryptoKeys.list -
cloudkms.cryptoKeyVersions.create -
cloudkms.cryptoKeyVersions.get -
cloudkms.cryptoKeyVersions.list -
cloudkms.keyRings.get -
cloudkms.keyRings.list -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get -
So rufen Sie einen öffentlichen Schlüssel ab:
cloudkms.cryptoKeyVersions.viewPublicKey -
So erstellen Sie HSM-Schlüssel für einzelne Mandanten:
-
cloudkms.singleTenantHsmInstances.get -
cloudkms.singleTenantHsmInstances.use
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Symmetrischen Verschlüsselungsschlüssel erstellen
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, für den Sie einen Schlüssel erstellen.
Klicken Sie auf Schlüssel erstellen.
Geben Sie unter Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau die Option Software aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Zweck die Option Symmetrisches Ver-/Entschlüsseln aus.
Übernehmen Sie die Standardwerte für Rotationszeitraum und Beginnt am.
Klicken Sie auf Erstellen.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die aktuelle Version der Google Cloud CLI installieren oder ein Upgrade darauf durchführen.
Verwenden Sie den Befehl kms keys create, um einen Softwareschlüssel zu erstellen:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption"
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Bevor Sie diesen Code ausführen, sollten Sie sich mit der Verwendung von PHP auf Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Verwenden Sie zum Erstellen eines Softwareschlüssels die Methode CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "ALGORITHM" }}'
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des Schlüssels.ALGORITHM: Der HMAC-Signaturalgorithmus, z. B.HMAC_SHA256. Eine Liste aller unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturalgorithmen.
Symmetrischen Verschlüsselungsschlüssel mit benutzerdefinierter automatischer Rotation erstellen
Wenn Sie einen Schlüssel erstellen, können Sie seinen Rotationszeitraum angeben. Das ist die Zeit zwischen der automatischen Erstellung neuer Schlüsselversionen. Sie können auch unabhängig die nächste Rotationszeit angeben, sodass die nächste Rotation früher oder später als ein Rotationszeitraum ab jetzt erfolgt.
Console
Wenn Sie einen Schlüssel mit der Cloud de Confiance Console erstellen, legt Cloud KMS den Rotationszeitraum und die nächste Rotationszeit automatisch fest. Sie können die Standardwerte verwenden oder andere Werte angeben.
So können Sie beim Erstellen Ihres Schlüssels einen anderen Rotationszeitraum und einen anderen Beginn angeben, bevor Sie auf den Button Erstellen klicken:
Wählen Sie für Schlüsselrotationszeitraum eine Option aus.
Wählen Sie unter Ab das Datum aus, an dem die erste automatische Rotation erfolgen soll. Sie können den Standardwert für Beginn am beibehalten, um die erste automatische Rotation einen Schlüsselrotationszeitraum nach dem Erstellen des Schlüssels zu starten.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--rotation-period ROTATION_PERIOD \
--next-rotation-time NEXT_ROTATION_TIME
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.ROTATION_PERIOD: Das Intervall für die Rotation des Schlüssels, z. B.30dfür eine Rotation alle 30 Tage. Der Rotationszeitraum muss mindestens 1 Tag und darf höchstens 100 Jahre betragen. Weitere Informationen finden Sie unter CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: Der Zeitstempel, zu dem die erste Rotation abgeschlossen werden soll, z. B.2023-01-01T01:02:03. Sie können--next-rotation-timeweglassen, um die erste Rotation für einen Rotationszeitraum ab dem Zeitpunkt der Befehlsausführung zu planen. Weitere Informationen finden Sie unterCryptoKey.nextRotationTime.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Wenn Sie diesen Code ausführen möchten, müssen Sie sich zuerst mit der Verwendung von PHP in Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Verwenden Sie zum Erstellen eines Schlüssels die Methode CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD",
"nextRotationTime": "NEXT_ROTATION_TIME"
}'
Ersetzen Sie Folgendes:
PURPOSE: der Zweck des Schlüssels.ROTATION_PERIOD: Das Intervall für die Rotation des Schlüssels, z. B.30dfür eine Rotation alle 30 Tage. Der Rotationszeitraum muss mindestens 1 Tag und darf höchstens 100 Jahre betragen. Weitere Informationen finden Sie unter CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: der Zeitstempel, zu dem die erste Rotation abgeschlossen werden soll, z. B.2023-01-01T01:02:03. Weitere Informationen finden Sie unter:CryptoKey.nextRotationTime.
Dauer des Status „Löschen geplant“ festlegen
Schlüsselversionen in Cloud KMS befinden sich standardmäßig 30 Tage lang im Status „Zum Löschen vorgemerkt“ (DESTROY_SCHEDULED), bevor sie gelöscht werden. Der Status für geplantes Löschen wird manchmal auch als Status für vorläufiges Löschen bezeichnet. Die Dauer, für die Schlüsselversionen in diesem Status verbleiben, ist konfigurierbar. Dabei gelten die folgenden Einschränkungen:
- Sie können die Dauer nur beim Erstellen des Schlüssels festlegen.
- Nachdem die Dauer für den Schlüssel angegeben wurde, kann sie nicht mehr geändert werden.
- Die Dauer gilt für alle Versionen des Schlüssels, die in Zukunft erstellt werden.
- Die Mindestdauer beträgt 24 Stunden für alle Schlüssel, mit Ausnahme von reinen Importschlüsseln, für die keine Mindestdauer gilt.
- Die maximale Dauer beträgt 120 Tage.
- Die Standarddauer beträgt 30 Tage.
In Ihrer Organisation ist möglicherweise ein Mindestwert für die Dauer des Status „Zum Löschen vorgemerkt“ durch Organisationsrichtlinien definiert. Weitere Informationen finden Sie unter Löschen von Steuerungsschlüsseln.
So erstellen Sie einen Schlüssel mit einer benutzerdefinierten Dauer für den Status scheduled for destruction (zur Vernichtung geplant):
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, für den Sie einen Schlüssel erstellen.
Klicken Sie auf Schlüssel erstellen.
Konfigurieren Sie die Einstellungen des Schlüssels für Ihre Anwendung.
Klicken Sie auf Weitere Einstellungen.
Wählen Sie unter Dauer des Status „Löschen geplant“ die Anzahl der Tage aus, die der Schlüssel im Status Löschen geplant verbleibt, bevor er endgültig gelöscht wird.
Klicken Sie auf Schlüssel erstellen.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die aktuelle Version der Google Cloud CLI installieren oder ein Upgrade darauf durchführen.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose PURPOSE \
--destroy-scheduled-duration DURATION
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.PURPOSE: der Zweck des Schlüssels, z. B.encryption.DURATION: Die Zeitspanne, in der der Schlüssel im Status Zum Löschen geplant verbleibt, bevor er endgültig gelöscht wird.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
Wir empfehlen, für alle Schlüssel die Standarddauer von 30 Tagen zu verwenden, es sei denn, Sie haben spezielle Anwendungs- oder behördliche Anforderungen, die einen anderen Wert erfordern.
Asymmetrischen Schlüssel erstellen
In den folgenden Abschnitten wird beschrieben, wie Sie asymmetrische Schlüssel erstellen.
Asymmetrischen Entschlüsselungsschlüssel erstellen
So erstellen Sie einen asymmetrischen Entschlüsselungsschlüssel für den angegebenen Schlüsselbund und Speicherort. Diese Beispiele können angepasst werden, um eine andere Schutzstufe oder einen anderen Algorithmus anzugeben. Weitere Informationen und alternative Werte finden Sie unter Algorithmen und Schutzstufen.
Wenn Sie den Schlüssel zum ersten Mal erstellen, hat die erste Schlüsselversion den Status Pending generation (Generierung ausstehend). Wenn sich der Status in Aktiviert ändert, können Sie den Schlüssel verwenden. Weitere Informationen zu Schlüsselversionsstatus finden Sie unter Schlüsselversionsstatus.
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, für den Sie einen Schlüssel erstellen.
Klicken Sie auf Schlüssel erstellen.
Geben Sie unter Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau die Option Software aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Zweck die Option Asymmetrische Entschlüsselung aus.
Wählen Sie für Algorithm (Algorithmus) die Option 3072 bit RSA – OAEP Padding – SHA256 Digest aus. Sie können diesen Wert in zukünftigen Schlüsselversionen ändern.
Klicken Sie auf Erstellen.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "asymmetric-encryption" \
--default-algorithm "ALGORITHM" \
--protection-level "PROTECTION_LEVEL"
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.ALGORITHM: Der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.rsa-decrypt-oaep-3072-sha256. Eine Liste der unterstützten asymmetrischen Verschlüsselungsalgorithmen finden Sie unter Asymmetrische Verschlüsselungsalgorithmen.PROTECTION_LEVEL: Die Schutzstufe, die Sie für den Schlüssel verwenden möchten.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Wenn Sie diesen Code ausführen möchten, müssen Sie sich zuerst mit der Verwendung von PHP in Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Erstellen Sie mit der MethodeCryptoKey.create einen asymmetrischen Entschlüsselungsschlüssel.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ASYMMETRIC_DECRYPT", "protectionLevel": "PROTECTION_LEVEL", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des SchlüsselsALGORITHM: der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.RSA_DECRYPT_OAEP_3072_SHA256. Eine Liste der unterstützten asymmetrischen Verschlüsselungsalgorithmen finden Sie unter Asymmetrische Verschlüsselungsalgorithmen.PROTECTION_LEVEL: Die Schutzstufe, die Sie für den Schlüssel verwenden möchten.
Asymmetrischen Signaturschlüssel erstellen
Führen Sie die folgenden Schritte aus, um einen Schlüssel für den Schlüsselbund und den Speicherort zu erstellen. Diese Beispiele können angepasst werden, um eine andere Schutzstufe oder einen anderen Algorithmus anzugeben. Weitere Informationen und alternative Werte finden Sie unter Algorithmen und Schutzstufen.
Wenn Sie den Schlüssel zum ersten Mal erstellen, hat die erste Schlüsselversion den Status Generierung ausstehend. Wenn sich der Status in Aktiviert ändert, können Sie den Schlüssel verwenden. Weitere Informationen zum Status von Schlüsselversionen
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, für den Sie einen Schlüssel erstellen.
Klicken Sie auf Schlüssel erstellen.
Geben Sie unter Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau die Option Software aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Zweck die Option Asymmetrische Signatur aus.
Wählen Sie für Algorithmus die Option Elliptische Kurve P-256 – SHA256-Digest aus. Sie können diesen Wert bei zukünftigen Schlüsselversionen ändern.
Klicken Sie auf Erstellen.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "asymmetric-signing" \
--default-algorithm "ALGORITHM" \
--protection-level "PROTECTION_LEVEL"
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.ALGORITHM: der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.ec-sign-p256-sha256. Eine Liste der unterstützten Algorithmen finden Sie unter Asymmetrische Signaturalgorithmen.PROTECTION_LEVEL: die Schutzstufe, die Sie für den Schlüssel verwenden möchten.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Wenn Sie diesen Code ausführen möchten, müssen Sie sich zuerst mit der Verwendung von PHP in Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Erstellen Sie einen asymmetrischen Signaturschlüssel, indem Sie [`CryptoKey.create`](/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys/create) aufrufen.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM"}}'
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des SchlüsselsPROTECTION_LEVEL: Die Schutzstufe, die Sie für den Schlüssel verwenden möchten.ALGORITHM: der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.EC_SIGN_P256_SHA256. Eine Liste der unterstützten Algorithmen finden Sie unter Asymmetrische Signaturalgorithmen.
KEM-Schlüssel erstellen
Führen Sie die folgenden Schritte aus, um einen Schlüssel für die Verwendung in einem Key Encapsulation Mechanism (KEM) für den angegebenen Schlüsselbund und Standort zu erstellen. Diese Beispiele können angepasst werden, um eine andere Schutzstufe oder einen anderen Algorithmus anzugeben. Weitere Informationen und alternative Werte finden Sie unter Algorithmen und Schutzstufen.
Wenn Sie den Schlüssel zum ersten Mal erstellen, hat die erste Schlüsselversion den Status Pending generation (Generierung ausstehend). Wenn sich der Status in Aktiviert ändert, können Sie den Schlüssel verwenden. Weitere Informationen zu Schlüsselversionsstatus finden Sie unter Schlüsselversionsstatus.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "key-encapsulation" \
--default-algorithm "ALGORITHM"
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.ALGORITHM: Der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.ml-kem-768. Eine Liste der unterstützten Algorithmen zur Schlüsselkapselung finden Sie unter Algorithmen zur Schlüsselkapselung.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Erstellen Sie einen Schlüssel mit dem Zweck KEY_ENCAPSULATION, indem Sie CryptoKey.create aufrufen.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "KEY_ENCAPSULATION", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des SchlüsselsALGORITHM: der Algorithmus, der für den Schlüssel verwendet werden soll, z. B.ML_KEM_768. Eine Liste der unterstützten Algorithmen zur Schlüsselkapselung finden Sie unter Algorithmen zur Schlüsselkapselung.
Öffentlichen Schlüssel abrufen
Wenn Sie einen asymmetrischen Schlüssel erstellen, generiert Cloud KMS ein öffentliches/privates Schlüsselpaar. Sie können den öffentlichen Schlüssel eines aktivierten asymmetrischen Schlüssels jederzeit nach dem Generieren des Schlüssels abrufen.
Der öffentliche Schlüssel liegt im PEM-Format (Privacy-enhanced Electronic Mail) vor. Weitere Informationen finden Sie in den Abschnitten General Considerations und Textual Encoding of Subject Public Key Info von RFC 7468.
So laden Sie den öffentlichen Schlüssel für eine vorhandene asymmetrische Schlüsselversion herunter:
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, der den asymmetrischen Schlüssel enthält, für den Sie den öffentlichen Schlüssel abrufen möchten.
Klicken Sie auf den Namen des Schlüssels, für den Sie den öffentlichen Schlüssel abrufen möchten.
Klicken Sie in der Zeile für die Schlüsselversion, für die Sie den öffentlichen Schlüssel abrufen möchten, auf Mehr anzeigen .
Klicken Sie auf Öffentlichen Schlüssel abrufen.
Der öffentliche Schlüssel wird in der Eingabeaufforderung angezeigt. Sie können den öffentlichen Schlüssel in die Zwischenablage kopieren. Klicken Sie auf Herunterladen, um den öffentlichen Schlüssel herunterzuladen.
Wenn die Option Öffentlichen Schlüssel abrufen nicht angezeigt wird, prüfen Sie Folgendes:
- Der Schlüssel ist ein asymmetrischer Schlüssel.
- Die Schlüsselversion ist aktiviert.
- Sie haben die Berechtigung
cloudkms.cryptoKeyVersions.viewPublicKey.
Der Dateiname eines öffentlichen Schlüssels, der aus der Cloud de Confiance -Konsole heruntergeladen wurde, hat das folgende Format:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Die einzelnen Teile des Dateinamens sind durch einen Bindestrich getrennt, z. B. ringname-keyname-version.pub.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
gcloud kms keys versions get-public-key KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--public-key-format PUBLIC_KEY_FORMAT \
--output-file OUTPUT_FILE_PATH
Ersetzen Sie Folgendes:
KEY_VERSION: die Schlüsselversionsnummer.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.PUBLIC_KEY_FORMAT: Das Format, in dem Sie den öffentlichen Schlüssel exportieren möchten. Verwenden Sie für NIST-PQC-Algorithmennist-pqcund für X-Wingxwing-raw-bytes. Für alle anderen Schlüssel können Siepem,derverwenden oder diesen Parameter weglassen.OUTPUT_FILE_PATH: Der Pfad, unter dem Sie die Datei mit dem öffentlichen Schlüssel speichern möchten, z. B.public-key.pub.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Wenn Sie diesen Code ausführen möchten, müssen Sie sich zuerst mit der Verwendung von PHP in Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Sie können den öffentlichen Schlüssel mithilfe der Methode CryptoKeyVersions.getPublicKey abrufen.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey?public_key_format=PUBLIC_KEY_FORMAT" \
--request "GET" \
--header "authorization: Bearer TOKEN"
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des SchlüsselsKEY_VERSION: die Schlüsselversionsnummer.PUBLIC_KEY_FORMAT: Das Format, in dem Sie den öffentlichen Schlüssel exportieren möchten. Verwenden Sie für PQC-AlgorithmenNIST_PQC. Für alle anderen Schlüssel können SiePEMverwenden oder diesen Parameter weglassen.
Wenn das Format des öffentlichen Schlüssels für einen Nicht-PQC-Schlüssel weggelassen wird, sieht die Ausgabe in etwa so aus:
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
Für einen PQC-Algorithmus mit dem öffentlichen Schlüsselformat NIST_PQC sieht die Ausgabe in etwa so aus:
{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
Öffentlichen Schlüssel in das JWK-Format konvertieren
Mit Cloud KMS können Sie einen öffentlichen Schlüssel im PEM-Format abrufen. Für einige Anwendungen sind möglicherweise andere Schlüsselformate wie JSON Web Key (JWK) erforderlich. Weitere Informationen zum JWK-Format finden Sie in RFC 7517.
So konvertieren Sie einen öffentlichen Schlüssel in das JWK-Format:
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Steuern Sie den Zugriff auf asymmetrische Schlüssel
Zur Signierung oder Signaturprüfung ist für den asymmetrischen Schlüssel die entsprechende Berechtigung oder Rolle erforderlich.
Gewähren Sie einem Nutzer oder Dienst, der für den Signiervorgang zuständig ist, die Berechtigung
cloudkms.cryptoKeyVersions.useToSignfür den asymmetrischen Schlüssel.Gewähren Sie einem Nutzer oder Dienst, von dem der öffentliche Schlüssel abgerufen wird, die Berechtigung
cloudkms.cryptoKeyVersions.viewPublicKeyfür den asymmetrischen Schlüssel. Der öffentliche Schlüssel wird zur Signaturprüfung benötigt.
Weitere Informationen zu Berechtigungen und Rollen in Cloud KMS finden Sie unter Berechtigungen und Rollen.
MAC-Signaturschlüssel erstellen
Console
Rufen Sie in der Cloud de Confiance Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, für den Sie einen Schlüssel erstellen.
Klicken Sie auf Schlüssel erstellen.
Geben Sie unter Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau die Option Software aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Zweck die Option MAC-Signatur/-Bestätigung aus.
Optional: Wählen Sie unter Algorithmus einen HMAC-Signaturalgorithmus aus.
Klicken Sie auf Erstellen.
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, müssen Sie zuerst die Google Cloud CLI installieren oder auf die neueste Version aktualisieren.
Verwenden Sie den Befehlkms keys create, um einen Softwareschlüssel zu erstellen:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "mac" \
--default-algorithm "ALGORITHM"
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.ALGORITHM: Der HMAC-Signaturalgorithmus, z. B.hmac-sha256. Eine Liste aller unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturalgorithmen.
Wenn Sie Details zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Bevor Sie diesen Code ausführen, sollten Sie sich mit der Verwendung von PHP auf Cloud de Confiance vertraut machen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Verwenden Sie zum Erstellen eines Softwareschlüssels die Methode CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "ALGORITHM" }}'
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des Schlüssels.ALGORITHM: Der HMAC-Signaturalgorithmus, z. B.HMAC_SHA256. Eine Liste aller unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturalgorithmen.