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- oder Cloud HSM-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, benötigen Sie Folgendes:
- Eine Google Cloud Projektressource für Ihre Cloud KMS-Ressourcen. Wir empfehlen, ein separates Projekt für Ihre Cloud KMS-Ressourcen zu verwenden, das keine anderen Google Cloud -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 Ihr ausgewähltes Schutzniveau unterstützt. Informationen zu verfügbaren Standorten und den von ihnen unterstützten Schutzstufen finden Sie unter Cloud KMS-Standorte. Informationen zum Erstellen eines Schlüsselbunds finden Sie unter Schlüsselbund erstellen.
- Optional: Wenn Sie die gcloud CLI verwenden möchten, bereiten Sie Ihre Umgebung vor.
Aktivieren Sie Cloud Shell in der Google Cloud Console.
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 Google Cloud 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 entweder Software, HSM oder HSM für einen einzelnen Mandanten aus.
Wenn Sie HSM für einzelnen Mandanten ausgewählt haben, wählen Sie die HSM-Instanz für einzelnen Mandanten aus, in der Sie den Schlüssel erstellen möchten.
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 in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Verwenden Sie den Befehl kms keys create, um einen Software- oder Multi-Tenant Cloud HSM-Schlüssel zu erstellen:
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ältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.PROTECTION_LEVEL: Das Schutzniveau, das für den Schlüssel verwendet werden soll, z. B.softwareoderhsm. Sie können das Flag--protection-levelfürsoftware-Schlüssel weglassen.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
kms keys create das Flag --crypto-key-backend hinzu:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "hsm-single-tenant" \
--crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Ersetzen Sie Folgendes:
INSTANCE_PROJECT: Die Kennung des Projekts, in dem sich Ihre Single-Tenant Cloud HSM-Instanz befindet.INSTANCE_NAME: Der Name der Single-Tenant Cloud HSM-Instanz, in der Sie den Schlüssel erstellen möchten. Weitere Informationen zu Cloud HSM-Instanzen für einzelne Mandanten finden Sie unter Cloud HSM-Instanz für einzelne Mandanten erstellen und verwalten.
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 die Informationen zur Verwendung von PHP in Google Cloud lesen 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 Software- oder Multi-Tenant Cloud HSM-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-Speicherort des Schlüsselbunds.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME: der Name des Schlüssels.PROTECTION_LEVEL: Das Schutzniveau des Schlüssels, z. B.SOFTWAREoderHSM.ALGORITHM: Der HMAC-Signaturalgorithmus, z. B.HMAC_SHA256. Eine Liste aller unterstützten HMAC-Algorithmen finden Sie unter HMAC-Signaturalgorithmen.
PROTECTION_LEVEL auf HSM_SINGLE_TENANT fest und fügen Sie dem Befehl kms keys create das Flag --crypto-key-backend hinzu:
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": "HSM_SINGLE_TENANT",
"algorithm": "ALGORITHM",
"crypto-key-backend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME" }}'
Ersetzen Sie Folgendes:
INSTANCE_PROJECT: Die Kennung des Projekts, in dem sich Ihre Single-Tenant Cloud HSM-Instanz befindet.INSTANCE_NAME: Der Name der Single-Tenant Cloud HSM-Instanz, in der Sie den Schlüssel erstellen möchten. Weitere Informationen zu Cloud HSM-Instanzen für einzelne Mandanten finden Sie unter Cloud HSM-Instanz für einzelne Mandanten erstellen und verwalten.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
Symmetrischen Verschlüsselungsschlüssel mit benutzerdefinierter automatischer Rotation erstellen
Wenn Sie einen Schlüssel erstellen, können Sie seinen Rotationszeitraum angeben. Das ist der Zeitraum 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 die Google Cloud Console zum Erstellen eines Schlüssels verwenden, 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 einen Schlüsselrotationszeitraum aus.
Wählen Sie unter Ab das Datum aus, an dem die erste automatische Rotation erfolgen soll. Sie können den Standardwert für Beginnend am beibehalten, um die erste automatische Rotation einen Schlüsselrotationszeitraum nach dem Erstellen des Schlüssels zu starten.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
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.30d, um den Schlüssel alle 30 Tage zu rotieren. Der Rotationszeitraum muss mindestens 1 Tag und höchstens 100 Jahre lang sein. 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 zu planen, an dem Sie den Befehl ausführen. 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.