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.
Hinweise
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 Ort aus, der sich in der Nähe Ihrer anderen Ressourcen befindet und das von Ihnen gewählte 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.
In the Google Cloud console, activate Cloud Shell.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS-Administrator (
roles/cloudkms.admin
) für das Projekt oder eine übergeordnete Ressource zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Schlüsseln benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von Schlüsseln erforderlich sind. 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
Konsole
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 für 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
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" \ --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.software
oderhsm
. Sie können das Flag--protection-level
fü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.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 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.SOFTWARE
oderHSM
.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 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.
Konsole
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 die Schaltfläche Erstellen klicken:
Wählen Sie unter Schlüsselrotationszeitraum eine Option aus.
Wählen Sie unter Ab das Datum aus, an dem die erste automatische Rotation erfolgen soll. Sie können Beginnend am auf dem Standardwert belassen, um die erste automatische Rotation einen Schlüsselrotationszeitraum nach der Erstellung 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-time
weglassen, 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.
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.
-