In diesem Thema wird beschrieben, wie Sie einen kryptografischen Schlüssel als neue Schlüsselversion in Cloud HSM oder den Cloud Key Management Service importieren.
Weitere Informationen zum Importieren von Schlüsseln, einschließlich Einschränkungen, finden Sie unter Schlüsselimport.
Die in diesem Thema beschriebenen Schritte lassen sich in 5 bis 10 Minuten ausführen. Dabei sind die Schritte unter Vorbereitung nicht berücksichtigt. Wenn Sie den Schlüssel manuell verpacken, wird die Aufgabe komplexer.
Hinweise
Es wird empfohlen, ein neues Projekt zum Testen dieser Funktion zu erstellen. Das erleichtert die Bereinigung nach dem Test und Sie stellen sicher, dass Sie über die erforderlichen IAM-Berechtigungen (Identity and Access Management) zum Importieren eines Schlüssels verfügen.
Bevor Sie einen Schlüssel importieren können, müssen Sie das Projekt, das lokale System und den Schlüssel selbst vorbereiten.
Das Projekt vorbereiten
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Der Nutzer, der den Import durchführt, benötigt die folgenden IAM-Berechtigungen, um Schlüsselbunde, Schlüssel und Importjobs zu erstellen. Wenn der Nutzer nicht der Projektinhaber ist, können Sie ihm beide der folgenden vordefinierten Rollen zuweisen:
roles/editor
roles/cloudkms.importer
Weitere Informationen zu verfügbaren IAM-Rollen und Berechtigungen für Cloud KMS, siehe Berechtigungen und Rollen
In lokalem Datenspeicher suchen
Bereiten Sie das lokale System vor, indem Sie eine der folgenden Optionen auswählen. Für die meisten Nutzer wird das automatische Key-Wrapping empfohlen.
- Wenn Sie zulassen möchten, dass die Google Cloud CLI Ihre Schlüssel automatisch verpackt bevor Sie sie an Google Cloud übertragen, Pyca Cryptography-Bibliothek installieren auf Ihrem lokalen System. Die Pyca-Bibliothek wird von dem Importjob verwendet, der den Schlüssel lokal verpackt und schützt, bevor er an Google Cloud gesendet wird.
- Wenn Sie Ihre Schlüssel manuell verpacken möchten, müssen Sie OpenSSL für manuelles Key-Wrapping konfigurieren.
Den Schlüssel vorbereiten
Prüfen Sie, ob Algorithmus und Länge Ihres Schlüssels unterstützt werden. Die zulässigen Algorithmen für einen Schlüssel hängen davon ab, ob der Schlüssel für die synchrone Verschlüsselung, die asymmetrische Verschlüsselung oder die asymmetrische Signatur verwendet wird und ob der Schlüssel in Software oder in einem HSM gespeichert ist. Sie geben den Algorithmus des Schlüssels als Teil der Importanfrage an.
Unabhängig davon müssen Sie auch prüfen, wie der Schlüssel codiert ist, und gegebenenfalls Anpassungen vornehmen.
Folgendes kann für eine Schlüsselversion nicht mehr geändert werden, nachdem sie erstellt wurde oder importiert:
Das Schutzniveau gibt an, ob der Schlüssel in der Software, in in einem HSM oder in einem externen Schlüsselverwaltungssystem. Schlüsselmaterial kann nicht von einer dieser Speicherumgebungen in eine andere verschoben werden. Alle Versionen eines Schlüssel dasselbe Schutzniveau haben.
Der Zweck gibt an, ob Versionen des Schlüssels für die symmetrische Verschlüsselung, die asymmetrische Verschlüsselung oder die asymmetrische Signatur verwendet werden. Der Zweck des Schlüssels beschränkt die möglichen Algorithmen, die zum Erstellen von Versionen dieses Schlüssels verwendet werden können. Alle Versionen eines Schlüssels haben den gleichen Zweck.
Wenn Sie keinen Schlüssel zum Importieren haben, aber das Verfahren zum Importieren von Schlüsseln prüfen möchten, können Sie mit dem folgenden Befehl einen symmetrischen Schlüssel auf dem lokalen System erstellen:
openssl rand 32 > ${HOME}/test.bin
Verwenden Sie diesen Schlüssel nur zu Testzwecken. Ein in dieser Weise erstellter Schlüssel ist möglicherweise nicht für die Produktion geeignet.
Wenn Sie den Schlüssel manuell verpacken, dann tun Sie dies, bevor Sie mit den Verfahren in diesem Thema fortfahren.
Den Zielschlüssel und Schlüsselbund erstellen
Ein Cloud KMS-Schlüssel ist ein Containerobjekt, das null oder mehr Schlüsselversionen enthält. Jede Schlüsselversion hat einen kryptografischen Schlüssel.
Wenn Sie einen Schlüssel in Cloud KMS oder Cloud HSM importieren, wird der importierte Schlüssel zu einer neuen Schlüsselversion in einem vorhandenen Cloud KMS- oder Cloud HSM-Schlüssel. Im Folgenden wird dieser Schlüssel als Zielschlüssel bezeichnet. Der Zielschlüssel muss vorhanden sein, bevor Sie Schlüsselmaterial darin importieren können.
Das Importieren einer Schlüsselversion hat keine Auswirkungen auf die vorhandenen Versionen dieses Schlüssels. Es wird jedoch empfohlen, beim Testen des Schlüsselimports einen leeren Schlüssel zu erstellen. Ein leerer Schlüssel hat keine Version, ist nicht aktiv und kann nicht angewendet werden.
Optional können Sie angeben, dass Ihr neu erstellter Schlüssel nur importierte Versionen enthalten darf. Dadurch wird verhindert, dass in Cloud KMS versehentlich neue Versionen erstellt werden.
Ein Schlüssel befindet sich immer in einem Schlüsselbund. In diesem Thema wird dieser Schlüsselbund als Zielschlüsselbund bezeichnet. Der Speicherort des Zielschlüssels bestimmt, wo das Schlüsselmaterial nach dem Import verfügbar ist. Cloud HSM-Schlüssel können an einigen Standorten nicht erstellt oder importiert werden. Nachdem ein Schlüssel erstellt wurde, kann er nicht mehr zu einem anderen Schlüsselbund oder an einen anderen Speicherort verschoben werden.
Mit den unten aufgeführten Schritten können Sie einen leeren Schlüssel für einen neuen Schlüsselbund mit der Google Cloud CLI oder der Google Cloud Console erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf KeyRing erstellen.
Geben Sie im Feld Schlüsselbundname einen Namen für den Schlüsselbund ein.
Wählen Sie unter Standorttyp einen Standorttyp und einen Standort aus.
Klicken Sie auf Erstellen. Die Seite Schlüssel erstellen wird geöffnet.
Geben Sie im Feld Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau entweder Software oder HSM aus. klicken Sie auf Weiter.
Wählen Sie unter Schlüsselmaterial die Option Importierter Schlüssel aus und klicken Sie auf Weiter. Dadurch wird verhindert, dass eine erste Schlüsselversion erstellt wird.
Legen Sie den Zweck und den Algorithmus für den Schlüssel fest und klicken Sie auf Weiter.
Optional: Wenn dieser Schlüssel nur importierte Schlüsselversionen enthalten soll, wählen Sie Schlüsselversionen ausschließlich auf Import einschränken aus. Dies verhindert, dass Sie versehentlich neue Schlüsselversionen in Cloud KMS erstellt werden.
Optional: Bei importierten Schlüsseln ist die automatische Rotation standardmäßig deaktiviert. Wenn Sie die automatische Rotation aktivieren möchten, wählen Sie einen Wert aus dem Feld Rotationszeitraum für Schlüssel aus.
Wenn Sie die automatische Rotation aktivieren, werden in Cloud KMS neue Schlüsselversionen generiert und die importierte Schlüsselversion nach einer Rotation nicht mehr die Standardversion.
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.
Erstellen Sie den Zielschlüsselbund. Wenn Sie in einen Cloud HSM-Schlüssel importieren möchten, wählen Sie einen Standort mit Unterstützung für Cloud HSM aus.
gcloud kms keyrings create KEY_RING \ --location LOCATION
Weitere Informationen zur Erstellung von Schlüsselbunden
Erstellen Sie den Zielschlüssel.
- Geben Sie den Zweck des Schlüssels an.
- Mit dem Flag
--skip-initial-version-creation
verhindern Sie, dass eine anfängliche Version erstellt wird. - Optional: Erstellen neuer Versionen verhindern in
Cloud KMS mithilfe des Flags
--import-only
. - Optional: Geben Sie keine Rotationsrichtlinie an. Wenn Sie die automatische Rotation aktivieren, werden in Cloud KMS neue Schlüsselversionen generiert und die importierte Schlüsselversion nach einer Rotation nicht mehr die Standardversion. Sie können keine Rotationsrichtlinie angeben, wenn Sie das
--import-only
-Flag angegeben haben.
gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --skip-initial-version-creation \ --import-only
Hier erhalten Sie weitere Informationen zum Erstellen von Cloud KMS-Schlüsseln oder Cloud HSM-Schlüsseln
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.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python 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 neuen Schlüsselbund:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"
Weitere Informationen finden Sie in der
KeyRing.create
API-Dokumentation.Erstellen Sie einen leeren Schlüssel, der nur zum Importieren verwendet werden kann:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true&importOnly=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"
Weitere Informationen finden Sie in der
CryptoKey.create
API-Dokumentation.
Der Schlüsselbund und der Schlüssel sind jetzt vorhanden, aber der Schlüssel enthält kein Schlüsselmaterial, keine Version und ist nicht aktiv. Als Nächstes erstellen Sie einen Importjob.
Erstellen Sie den Importjob
Ein Importjob definiert die Merkmale der importierten Schlüssel, einschließlich der Attribute, die nach dem Import des Schlüssels nicht mehr geändert werden können.
Das Schutzniveau definiert, ob Die von diesem Importjob importierten Schlüssel befinden sich in der Software, in einem HSM oder externen Schlüsselverwaltungssystems. Das Schutzniveau kann nicht mehr geändert werden, nachdem der Schlüssel schließlich importiert wurde.
Die Importmethode definiert den Algorithmus, der zum Erstellen des Verpackungsschlüssels verwendet wird, der importierte Schlüssel bei der Übertragung von Ihrem lokalen System zum Google Cloud-Zielprojekt schützt. Sie können einen RSA-Schlüssel mit 3.072 Bit oder 4.096 Bit auswählen. Wenn es keine speziellen Anforderungen gibt, wird der 3.072-Bit-Verpackungsschlüssel empfohlen.
Sie können einen Importjob mit der gcloud CLI, der Google Cloud Console oder der Cloud Key Management Service API erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Zielschlüsselbunds.
Setzen Sie das Schutzniveau entweder auf Software oder auf HSM. Verwenden Sie dasselbe Schutzniveau wie für den Zielschlüssel.
Klicken Sie auf Importjob erstellen.
Geben Sie im Feld Name einen Namen für den Importjob ein.
Wählen Sie im Drop-down-Menü Importmethode entweder 3.072-Bit-RSA oder 4.096-Bit-RSA aus.
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.
Einen Importjob erstellen Sie mit einem Befehl wie dem folgenden.
gcloud kms import-jobs create IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level PROTECTION_LEVEL
- Verwenden Sie denselben Schlüsselbund und denselben Speicherort wie der Zielschlüssel.
- Legen Sie das Schutzniveau auf
software
oderhsm
fest. - Legen Sie als Importmethode entweder
rsa-oaep-3072-sha1-aes-256
festrsa-oaep-4096-sha1-aes-256
,rsa-oaep-3072-sha256-aes-256
,rsa-oaep-4096-sha256-aes-256
,rsa-oaep-3072-sha256
oderrsa-oaep-4096-sha256
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.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python 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 Importjobs die Methode
ImportJobs.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs?import_job_id=IMPORT_JOB_ID" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"import_method": "IMPORT_METHOD", "protection_level": "PROTECTION_LEVEL"}'
Ersetzen Sie Folgendes:
- IMPORT_METHOD: Eine unterstützte Schlüsselverpackungsmethode.
- PROTECTION_LEVEL: die Schutzebene der Schlüsselversionen, die mit diesem Importjob importiert wurden.
Status des Importjobs überprüfen
Der Ausgangsstatus für einen Importjob ist PENDING_GENERATION
. Wenn der Status ACTIVE
lautet, können Sie damit Schlüssel importieren.
Ein Importjob läuft nach drei Tagen ab. Wenn der Importjob abgelaufen ist, müssen Sie einen neuen erstellen.
Sie können den Status eines Importjobs mit der Google Cloud CLI prüfen. der Google Cloud Console oder der Cloud Key Management Service API.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds, der den Importjob enthält.
Klicken Sie oben auf der Seite auf den Tab Importjobs.
Der Status wird unter Status neben dem Namen des Importjobs angezeigt.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst die neueste Version der Google Cloud CLI installieren oder ein Upgrade ausführen.
Wenn ein Importjob aktiv ist, können Sie damit Schlüssel importieren. Dies kann einige Minuten dauern. Überprüfen Sie mit diesem Befehl, ob der Importjob aktiv ist. Verwenden Sie den Speicherort und den Schlüsselbund, an dem Sie den Importjob erstellt haben.
gcloud kms import-jobs describe IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --format="value(state)"
Die Ausgabe sieht in etwa so aus:
state: ACTIVE
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.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python 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 die Methode ImportJobs.get
, um den Status eines Importjobs zu prüfen:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs/IMPORT_JOB_ID" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Sobald der Importjob aktiv ist, können Sie eine Anfrage zum Importieren eines Schlüssels stellen.
Änderungen an Importjobs verhindern
Der Importjob bestimmt viele Eigenschaften des importierten Schlüssels, einschließlich seines Algorithmus und ob ein importierter Schlüssel ein HSM- oder Softwareschlüssel ist. Sie können IAM-Berechtigungen so konfigurieren, dass Nutzer keine Importjobs erstellen können, aber gleichzeitig zulassen, dass sie Importjobs zum Importieren von Schlüsseln verwenden.
- Gewähren Sie die Berechtigung
importjobs.create
nur wichtigen Administratoren. - Erteilen Sie dem Operator, der diesen Job zum Importieren von Schlüsseln verwendet, die Berechtigung
importjobs.useToImport
für einen bestimmten Importjob. - Geben Sie beim Erstellen des Importjobs das Schutzniveau und den Algorithmus an für Schlüsselversionen, die damit importiert wurden.
Bis zum Ablauf des Importjobs können Nutzer, die importjobs.useToImport
und nicht die Berechtigung importjobs.create
für einen bestimmten Importjob haben, Schlüssel importieren, jedoch nicht die Eigenschaften des Importjobs ändern.
Importieren Sie den Schlüssel
Nachdem Sie den Status des Importjobs überprüft haben, können Sie eine Importanfrage stellen.
Sie verwenden verschiedene Flags für die Importanfrage, je nachdem, ob die Google Cloud CLI Ihren Schlüssel automatisch verpacken soll oder ob Sie ihn bereits manuell verpackt haben.
Unabhängig davon, ob Sie Ihren Schlüssel manuell oder automatisch verpackt haben, müssen Sie unter Algorithmus einen unterstützten Algorithmus festlegen, der der Länge des tatsächlich zu importierenden Schlüssels entspricht und den Zweck des Schlüssels angibt.
Schlüssel mit dem Zweck
ENCRYPT_DECRYPT
verwenden den Algorithmusgoogle-symmetric-encryption
und haben eine Länge von 32.Schlüssel mit dem Zweck
ASYMMETRIC_DECRYPT
oderASYMMETRIC_SIGN
unterstützen eine Vielzahl von Algorithmen und Längen.Der Zweck eines Schlüssels kann nach dem Erstellen des Schlüssels nicht mehr geändert werden. Für nachfolgende Schlüsselversionen können Sie jedoch eine andere Länge als die ursprüngliche Schlüsselversion festlegen.
Schlüssel automatisch verpacken und importieren
Wenn Sie das automatische Wrapping verwenden möchten, müssen Sie die Google Cloud CLI verwenden.
Verwenden Sie einen Befehl wie den folgenden. Legen Sie für --target-key-file
den Speicherort des entpackten Schlüssels fest, der verpackt und importiert werden soll. Legen Sie nicht --wrapped-key-file
fest.
Sie können das Flag --public-key-file
optional auf den Speicherort festlegen, an dem der öffentliche Schlüssel bereits heruntergeladen wurde. Beim Importieren einer großen Anzahl von Schlüsseln wird dadurch verhindert, dass der öffentliche Schlüssel bei jedem Import heruntergeladen wird. Sie können beispielsweise ein Skript schreiben, das den öffentlichen Schlüssel einmal herunterlädt und dann beim Importieren jedes Schlüssels seinen Speicherort angibt.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --target-key-file PATH_TO_UNWRAPPED_KEY
Der Schlüssel wird von dem Verpackungsschlüssel, der dem Importjob zugeordnet ist, verpackt, an Google Cloud übertragen und als neue Schlüsselversion für den Zielschlüssel importiert.
Manuell verpackten Schlüssel importieren
Folgen Sie der Anleitung in diesem Abschnitt, um einen manuell verpackten Schlüssel zu importieren. Legen Sie für --wrapped-key-file
den Speicherort des manuell verpackten Schlüssels fest.
Legen Sie nicht --target-key-file
fest.
Sie können das Flag --public-key-file
optional auf den Speicherort festlegen, an dem der öffentliche Schlüssel bereits heruntergeladen wurde. Beim Importieren einer großen Anzahl von Schlüsseln wird dadurch verhindert, dass der öffentliche Schlüssel bei jedem Import heruntergeladen wird. Sie können beispielsweise ein Skript schreiben, das den öffentlichen Schlüssel einmal herunterlädt und dann beim Importieren jedes Schlüssels seinen Speicherort angibt.
Console
Öffnen Sie in der Google Cloud Console die Seite Schlüsselverwaltung.
Klicken Sie auf den Namen des Schlüsselbunds, der den Importjob enthält. Der Zielschlüssel wird zusammen mit allen anderen Schlüsseln auf dem Schlüsselbund angezeigt.
Klicken Sie auf den Namen des Zielschlüssels und dann auf Schlüsselversion importieren.
Wählen Sie den Importjob aus dem Drop-down-Menü Importjob auswählen aus.
Wählen Sie aus der Auswahl Verpackten Schlüssel hochladen den Schlüssel aus, den Sie bereits verpackt haben.
Wenn Sie einen asymmetrischen Schlüssel importieren, wählen Sie den Algorithmus aus dem Drop-down-Menü Algorithmus aus. Die Seite Schlüsselversion importieren sollte in etwa so aussehen:
Klicken Sie auf Importieren.
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.
Verwenden Sie einen Befehl wie den folgenden.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEY
Weitere Informationen finden Sie in der Ausgabe des Befehls gcloud kms keys versions import --help
.
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.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python 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 die Methode cryptoKeyVersions.import
, um einen Schlüssel zu importieren.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions:import" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"importJob": "IMPORT_JOB_ID", "algorithm": "ALGORITHM", "wrappedKey": "WRAPPED_KEY"}'
Ersetzen Sie Folgendes:
IMPORT_JOB_ID: der vollständige Ressourcenname des entsprechenden Imports Job.
ALGORITHM: die
algorithm
des importierten Schlüssels vom TypCryptoKeyVersionAlgorithm
.WRAPPED_KEY: Der manuell verpackte Schlüssel im Base64-Format.
Die Anfrage für den Schlüsselimport wird initiiert. Sie können den Status überwachen.
Status der importierten Schlüsselversion prüfen
Der Anfangsstatus für eine importierte Schlüsselversion ist PENDING_IMPORT
. Wenn der Parameter
ENABLED
lautet, wurde die Schlüsselversion erfolgreich importiert. Wenn der Parameter
schlägt er fehl, lautet der Status IMPORT_FAILED
.
Sie können den Status einer Importanfrage mit der Google Cloud CLI prüfen. Google Cloud Console oder die Cloud Key Management Service API.
Console
Öffnen Sie in der Google Cloud Console die Seite Schlüsselverwaltung.
Klicken Sie auf den Namen des Schlüsselbunds, der den Importjob enthält.
Klicken Sie oben auf der Seite auf den Tab Importjobs.
Der Status wird unter Status neben dem Namen des Importjobs angezeigt.
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.
Prüfen Sie den Status mithilfe des Befehls versions list
. Verwenden Sie denselben Speicherort, denselben Schlüsselbund und denselben Schlüssel, den Sie zuvor in diesem Thema erstellt haben.
gcloud kms keys versions list \ --keyring KEY_RING \ --location LOCATION \ --key KEY_NAME
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.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python 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.
Rufen Sie die Methode ImportJob.get
auf und überprüfen Sie das Feld state
. Wenn state
PENDING_GENERATION
lautet, wird der Importjob noch erstellt.
Prüfen Sie den Status regelmäßig, bis er ACTIVE
lautet.
Nachdem die erste Schlüsselversion importiert wurde, ändert sich der Status des Schlüssels in Aktiv. Bei symmetrischen Schlüsseln müssen Sie die importierte Schlüsselversion als primäre Version festlegen, bevor Sie den Schlüssel verwenden können.
Symmetrische Schlüssel: Legen Sie die primäre Version fest
Dieser Schritt ist beim Importieren von Symmetrieschlüsseln erforderlich und für asymmetrische Schlüssel nicht relevant. Ein asymmetrischer Schlüssel hat keine primäre Version. Sie müssen die Google Cloud CLI verwenden, um die primäre Version festzulegen.
gcloud kms keys set-primary-version KEY_NAME\ --location=LOCATION\ --keyring=KEY_RING\ --version=KEY_VERSION
Einen gelöschten Schlüssel noch einmal importieren
Cloud Key Management Service unterstützt den Neuimport von Schlüsseln. Sie können entsprechend durch Angabe des ursprünglichen Schlüsselmaterials eine zuvor importierte Schlüsselversion mit dem Status DESTROYED
oder IMPORT_FAILED
im ENABLED
-Status wiederherstellen. Wurde aufgrund eines anfänglichen Importfehlers kein Originalschlüsselmaterial importiert, kann ein beliebiges Schlüsselmaterial bereitgestellt werden.
Beschränkungen
- Nur zuvor importierte
CryptoKeyVersions
können noch einmal importiert werden. - Neu importiertes Schlüsselmaterial muss genau dem ursprünglichen Schlüsselmaterial entsprechen, wenn die Version zuvor erfolgreich importiert wurde.
CryptoKeyVersions
, die vor der Veröffentlichung dieser Funktion gelöscht wurden, kann nicht gelöscht werden Daten neu importiert. Das Feldreimport_eligible
vonCryptoKeyVersion
isttrue
, wenn die Version für einen Neuimport infrage kommt, undfalse
, wenn nicht.
Software- und Cloud HSM-Schlüssel können noch einmal importiert werden, externe Schlüssel können nicht noch einmal importiert werden.
Einen gelöschten Schlüssel noch einmal importieren
Erstellen Sie einen ImportJob
für den erneuten Import. Folgen Sie dazu den Schritten unter Importjob erstellen. Sie können entweder einen vorhandenen ImportJob
oder einen neuen ImportJob
verwenden, solange das Schutzniveau dem ursprünglichen Schutzniveau entspricht.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Schlüsselbunds mit dem Schlüssel, dessen Schlüsselversion Sie noch einmal importieren möchten.
Klicken Sie auf den Schlüssel, dessen Schlüsselversion Sie noch einmal importieren möchten.
Klicken Sie auf die drei Punkte neben der Schlüsselversion, die Sie noch einmal importieren möchten.
Wählen Sie Schlüsselversion neu importieren.
Wählen Sie den Importjob aus dem Drop-down-Menü Importjob auswählen aus.
Wählen Sie aus der Auswahl Verpackten Schlüssel hochladen den Schlüssel aus, den Sie bereits verpackt haben. Dieser Schlüssel muss dem ursprünglichen Schlüsselmaterial entsprechen.
Klicken Sie auf Neu importieren.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst die neueste Version der Google Cloud CLI installieren oder ein Upgrade ausführen.
Importieren Sie die Schlüsselversion mit dem ursprünglichen Schlüsselmaterial neu.
gcloud kms keys versions import \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --version KEY_VERSION \ --algorithm ALGORITHM \ --import-job IMPORT_JOB \ --target-key-file PATH_TO_KEY \
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.
Legen Sie im Anfragetext der
cryptoKeyVersions.import
-Methode dascryptoKeyVersion
-Feld auf den Namen der Schlüsselversion der zu importierenden Version fest. Dies muss ein untergeordnetes Element des kryptografischen Schlüssels sein.Setzen Sie im Anfragetext das
algorithm
-Feld auf den Algorithmus des zu importierenden Schlüssels fest. Dieser Wert muss dem Algorithmus der ursprünglichen Schlüsselversion entsprechen. Das Feldalgorithm
hat den TypCryptoKeyVersionAlgorithm
.Legen Sie im Anfragetext im
wrappedKeyMaterial
-Feld das Schlüsselmaterial fest, das Sie bereits verpackt haben.Rufen Sie die Methode
cryptoKeyVersions.import
auf. Die AntwortcryptoKeyVersions.import
hat den TypCryptoKeyVersion
. Wurde ein Schlüssel erfolgreich importiert, lautet der StatusENABLED
und Sie können ihn in Cloud KMS verwenden.
Nächste Schritte
- Prüfen Sie einen importierten Schlüssel. Nach der Bestätigung dass das importierte Schlüsselmaterial mit dem ursprünglichen Schlüssel identisch ist, können Sie Schlüssel zum Signieren oder zum Schutz von Daten.
- Fehler bei einem fehlgeschlagenen Schlüsselimport beheben