Auf dieser Seite wird beschrieben, wie Sie einen Schlüssel in Cloud KMS erstellen. Ein Schlüssel kann ein ein symmetrischer oder asymmetrischer Verschlüsselungsschlüssel, ein asymmetrischer Signaturschlüssel oder ein MAC Signaturschlüssel.
Wenn Sie einen Schlüssel erstellen, fügen Sie ihn einem Schlüsselbund in einer bestimmten Cloud KMS-Standort. Sie können einen neuen Schlüssel klingeln lassen oder einen vorhandenen verwenden. Auf dieser Seite generieren Sie einen neuen Cloud KMS- oder Cloud HSM-Schlüssel und fügen ihn einer vorhandener Schlüsselbund. Informationen zum Erstellen eines Cloud EKM-Schlüssels finden Sie unter Externen Schlüssel erstellen Schlüssel. So importieren Sie einen Cloud KMS- oder Cloud HSM-Schlüssel: Siehe Schlüssel importieren.
Hinweise
Bevor Sie die Aufgaben auf dieser Seite ausführen, benötigen Sie Folgendes:
- Eine Google Cloud-Projektressource für Ihr Cloud KMS-Ressourcen. Wir empfehlen die Verwendung eines separaten Projekts für Ihr Cloud KMS-Ressourcen, die keine anderen Ressourcen Google Cloud-Ressourcen
- Der Name und der Speicherort des Schlüsselbunds, an dem Sie Ihren Schlüssel erstellen möchten. Wählen Sie einen Schlüsselbund an einem Ort aus, der sich in der Nähe Ihrer anderen Ressourcen befindet unterstützt das gewünschte Schutzniveau. Bis verfügbare Standorte und unterstützte Schutzniveaus sehen Sie Cloud KMS-Standorte Schlüssel erstellen Weitere Informationen finden Sie unter Schlüsselbund erstellen.
- Optional: Bereiten Sie Ihre Umgebung vor, um die gcloud CLI zu verwenden.
gcloud-CLI
In the Google Cloud console, activate Cloud Shell.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Erstellen von Schlüsseln benötigen,
bitten Sie Ihren Administrator, Ihnen
IAM-Rolle Cloud KMS-Administrator (roles/cloudkms.admin
) für das Projekt oder eine übergeordnete Ressource.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält Berechtigungen zum Erstellen von Schlüsseln. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen 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
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Symmetrischen Verschlüsselungsschlüssel erstellen
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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 Software oder HSM aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Purpose (Zweck) die Option Symmetric encrypt/decrypt aus.
Übernehmen Sie die Standardwerte für Rotationszeitraum und Beginnt am.
Klicken Sie auf Erstellen.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.PROTECTION_LEVEL
: das Schutzniveau, das für den Schlüssel, z. B.software
oderhsm
. Sie können das Tag Flag--protection-level
fürsoftware
-Schlüssel.
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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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": "ENCRYPT_DECRYPT", "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-Standort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.KEY_NAME
: Der Name des Schlüssels.PROTECTION_LEVEL
: das Schutzniveau des Schlüssel, z. B.SOFTWARE
oderHSM
.ALGORITHM
: der HMAC-Signaturalgorithmus, z. B.HMAC_SHA256
. Informationen zu allen unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturprozess Algorithmen.
Symmetrische Verschlüsselungsschlüssel mit benutzerdefinierter automatischer Rotation erstellen
Wenn Sie einen Schlüssel erstellen, können Sie seine Rotation Zeitraum, d. h. die Zeit zwischen der automatischen Erstellung eines neue Schlüsselversionen erstellen. Sie können auch unabhängig die nächste Rotationszeit angeben, damit die nächste Rotation früher oder später als ein Rotationszeitraum vom .
Console
Wenn Sie die Google Cloud Console zum Erstellen eines Schlüssels verwenden, legt Cloud KMS den Rotationszeitraum und nächster Rotationszeit automatisch. Sie können wählen, oder andere Werte angeben.
Wenn Sie beim Erstellen von Ihren Schlüssel, aber bevor Sie auf über die Schaltfläche Erstellen:
Wählen Sie für Schlüsselrotationszeitraum eine Option aus.
Wählen Sie unter Ab dem das Datum aus, an dem die erste automatische Drehung erfolgen soll. Sie können den Standardwert für Ab am beibehalten: die erste automatische Rotation einen Schlüsselrotationszeitraum nach erstellen Sie den Schlüssel.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.ROTATION_PERIOD
: das Intervall bis Schlüssel rotieren, z. B. mit30d
, um den Schlüssel alle 30 Tage zu rotieren Die Rotation Der Zeitraum muss mindestens 1 Tag und darf höchstens 100 Jahre betragen. Weitere Informationen finden Sie unter CryptoKey.rotationPeriod verwendet werden.NEXT_ROTATION_TIME
: der Zeitstempel, zu dem der Abschluss erfolgen soll die erste Rotation, z. B."2023-01-01T01:02:03"
. Sie können die--next-rotation-time
, um die erste Rotation 7 Tage nach der Ausführung des . Weitere Informationen finden Sie unter CryptoKey.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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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
: die Zweck des Schlüssels.ROTATION_PERIOD
: das Intervall bis Schlüssel rotieren, z. B. mit30d
, um den Schlüssel alle 30 Tage zu rotieren Die Rotation Der Zeitraum muss mindestens 1 Tag und darf höchstens 100 Jahre betragen. Weitere Informationen finden Sie unter CryptoKey.rotationPeriod verwendet werden.NEXT_ROTATION_TIME
: der Zeitstempel, zu dem der Abschluss erfolgen soll die erste Rotation, z. B."2023-01-01T01:02:03"
. Sie können die--next-rotation-time
, um die erste Rotation 7 Tage nach der Ausführung des . Weitere Informationen finden Sie unter CryptoKey.nextRotationTime.
Legen Sie die Dauer der geplanten Löschung fest. Bundesland
Standardmäßig verbringen Schlüsselversionen in Cloud KMS 30 Tage im
zum Löschen vorgemerkt (DESTROY_SCHEDULED
), bevor sie gelöscht werden
zerstört. Der zum Löschen vorgemerkte Status wird manchmal auch als
Vorläufig gelöscht. Die Dauer, wie lange Schlüsselversionen in diesem Status bleiben
ist mit den folgenden Einschränkungen konfigurierbar:
- Sie können die Dauer nur bei der Schlüsselerstellung festlegen.
- Nachdem die Dauer für den Schlüssel festgelegt 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 für alle Schlüssel mit Ausnahme von reinen Importschlüsseln beträgt 24 Stunden mit einer Mindestdauer von 0.
- Die maximale Dauer beträgt 120 Tage.
- Die Standarddauer beträgt 30 Tage.
Für Ihre Organisation ist möglicherweise eine Mindestdauer für das Löschen geplant Wert definiert durch Organisationsrichtlinien. Weitere Informationen finden Sie unter Löschen von Schlüsseln
So erstellen Sie einen Schlüssel mit einer benutzerdefinierten Dauer für Löschen geplant: führen Sie die folgenden Schritte aus:
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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.
In Dauer von "Zum Löschen vorgemerkt" wählen Sie die Anzahl der Tage, an denen der Schlüssel zum Löschen vorgemerkt wird, bevor er gelöscht wird endgültig zerstört werden.
Klicken Sie auf Schlüssel erstellen.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.PURPOSE
: der Zweck des Schlüssels, z. B.encryption
.DURATION
: die Zeit, die der Schlüssel im zum Löschen vorgemerkt, 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, die Standarddauer von 24 Stunden für alle Schlüssel zu verwenden, es sei denn, bestimmte Anwendungs- oder regulatorische Anforderungen, die eine unterschiedlichen Wert.
Asymmetrischen 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 ein anderes Schutzniveau oder Algorithmus. Weitere Informationen und alternative Werte finden Sie unter Algorithmen und Schutzniveaus:
Wenn Sie den Schlüssel zum ersten Mal erstellen, hat die anfängliche Schlüsselversion den Status Generierung ausstehend: Wenn sich der Status in Enabled (Aktiviert) ändert, können Sie Folgendes verwenden: den Schlüssel. Weitere Informationen zu den Status der Schlüsselversion finden Sie unter Schlüsselversionsstatus. Bundesländer.
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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 Software oder HSM 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 unter 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
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.ALGORITHM
: der Algorithmus, der für den Schlüssel verwendet werden soll – für Beispiel:rsa-decrypt-oaep-3072-sha256
. Eine Liste der unterstützten asymmetrischen Verschlüsselungsalgorithmen finden Sie unter Asymmetrische Verschlüsselung Algorithmen.
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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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 Entschlüsselungsschlüssel, 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": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, das den Schlüsselbund enthält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.KEY_NAME
: Der Name des Schlüssels.ALGORITHM
: der Algorithmus, der für den Schlüssel, z. B.RSA_DECRYPT_OAEP_3072_SHA256
. Eine Liste mit Unterstützte asymmetrische Verschlüsselungsalgorithmen finden Sie unter Asymmetrische Verschlüsselung Algorithmen.
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 ein anderes Schutzniveau oder Algorithmus. Weitere Informationen und alternative Werte finden Sie unter Algorithmen und Schutzniveaus:
Wenn Sie den Schlüssel zum ersten Mal erstellen, hat die anfängliche Schlüsselversion den Status Generierung ausstehend: Wenn sich der Status in Enabled (Aktiviert) ändert, können Sie Folgendes verwenden: den Schlüssel. Weitere Informationen zu den Status der Schlüsselversion finden Sie unter Schlüsselversionsstatus. Bundesländer.
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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 Software oder HSM aus.
Wählen Sie unter Schlüsselmaterial die Option Generierter Schlüssel aus.
Wählen Sie unter Zweck die Option Asymmetrisches Signieren aus.
Wählen Sie als Algorithmus die Option Elliptische Kurve P-256 – SHA256-Digest aus. Sie können ändern Sie diesen Wert für zukünftige Schlüsselversionen.
Klicken Sie auf Erstellen.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.ALGORITHM
: der für den Schlüssel zu verwendende Algorithmus, z. B.ec-sign-p256-sha256
. Eine Liste der unterstützten Algorithmen finden Sie unter Asymmetrische Algorithmen Signaturalgorithmen.
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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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
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": {"algorithm": "ALGORITHM"}}'
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, das den Schlüsselbund enthält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.KEY_NAME
: Der Name des Schlüssels.ALGORITHM
: der Algorithmus, der für den Schlüssel, z. B.EC_SIGN_P256_SHA256
. Eine Liste der unterstützten Algorithmen finden Sie unter Asymmetrische Signatur Algorithmen.
Öffentlichen Schlüssel abrufen
Beim Erstellen eines asymmetrischen Schlüssels erstellt Cloud KMS einen öffentlichen/privaten Schlüssel. Schlüsselpaar. Sie können den öffentlichen Schlüssel eines aktivierten asymmetrischen Schlüssels jederzeit abrufen nachdem der Schlüssel generiert wurde.
Der öffentliche Schlüssel liegt im PEM-Format (Privacy-enhanced Electronic Mail) vor. Weitere Informationen Weitere Informationen finden Sie in den Abschnitten zu RFC 7468. Allgemein Überlegungen und Textcodierung der Person, die öffentlich ist Wichtige Informationen
So laden Sie den öffentlichen Schlüssel für eine vorhandene asymmetrische Schlüsselversion herunter: Schritte:
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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 von der Google Cloud Console heruntergeladen wurde, lautet das Formular:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Jeder Teil des Dateinamens ist durch einen Bindestrich getrennt, z. B.
ringname-keyname-version.pub
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
Ersetzen Sie Folgendes:
KEY_VERSION
: die Schlüsselversionsnummer.KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.OUTPUT_FILE_PATH
ist der Pfad, unter dem Sie die Datei speichern möchten. Datei mit dem öffentlichen Schlüssel, 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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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" \ --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-Standort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.KEY_NAME
: Der Name des Schlüssels.KEY_VERSION
: die Schlüsselversionsnummer.
Die Ausgabe sollte in etwa so aussehen:
{ "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": "SOFTWARE" }
Öffentlichen Schlüssel in 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 unter 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.useToSign
für den asymmetrischen Schlüssel.Gewähren Sie einem Nutzer oder Dienst, von dem der öffentliche Schlüssel abgerufen wird, die Berechtigung
cloudkms.cryptoKeyVersions.viewPublicKey
für den asymmetrischen Schlüssel. Der öffentliche Schlüssel wird zur Signaturprüfung benötigt.
Informationen zu Berechtigungen und Rollen im Cloud KMS-Release finden Sie unter Berechtigungen und Rollen:
MAC-Signaturschlüssel erstellen
Console
Rufen Sie in der Google Cloud Console die Seite Key Management 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 Protection level (Schutzniveau) entweder Software oder HSM 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 für den Algorithmus eine HMAC-Signatur Algorithmus
Klicken Sie auf Erstellen.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --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ält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.ALGORITHM
: der HMAC-Signaturalgorithmus, z. B.hmac-sha256
. Informationen zu allen unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturprozess Algorithmen.PROTECTION_LEVEL
: das Schutzniveau des Schlüssels – für Beispiel:hsm
. Sie können das Flag--protection-level
fürsoftware
weglassen Schlüssel.
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
Um diesen Code auszuführen, müssen Sie zuerst PHP in Google Cloud verwenden lernen 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": "MAC", "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-Standort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.KEY_NAME
: Der Name des Schlüssels.PROTECTION_LEVEL
: das Schutzniveau des Schlüssels, z. B.SOFTWARE
oderHSM
.ALGORITHM
: der HMAC-Signaturalgorithmus, z. B.HMAC_SHA256
. Informationen zu allen unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturprozess Algorithmen.
Nächste Schritte
- Weitere Informationen zur Schlüsselrotation
- Weitere Informationen zum Erstellen und Validieren Signaturen.
- Daten mit einem RSA verschlüsseln und entschlüsseln Schlüssel.
- Öffentlichen Schlüssel abrufen