Auf dieser Seite finden Sie Anleitungen für den Application Operator (AO) zum Ausführen wichtiger Importvorgänge für Schlüssel aus exportierten Key Management Systems (KMS). Der AO führt die Import- und Exportvorgänge mit der kubectl-Befehlszeile (CLI) aus den folgenden Ressourcen aus:
Weitere Informationen zu diesen Ressourcen finden Sie in der KMS API-Übersicht.
Eine vollständige Liste und Details der von KMS unterstützten Schlüssel finden Sie im Abschnitt Unterstützte Schlüssel auf der Seite Key Management Systems (KMS).
Hinweise
Bevor Sie fortfahren, benötigen Sie Folgendes:
Der Befehl
kubectlist für den Zugriff auf den Management API-Server konfiguriert. Folgen Sie dazu den Abschnitten kubeconfig-Datei abrufen und gcloud-Befehlszeile (CLI).Die Rollen „KMS Key Import Admin“ und „KMS Key Export Admin“. Bitten Sie Ihren Plattformadministrator, Ihnen die Rollen „KMS Key Import Admin“ (
kms-keyimport-admin) und „KMS Key Export Admin“ (kms-keyexport-admin) zuzuweisen, damit Sie die erforderlichen Berechtigungen zum Importieren eines exportierten Schlüssels erhalten.
Exportierten Schlüssel importieren
Führen Sie die folgenden Schritte aus, um einen exportierten Schlüssel zu importieren:
Erstellen Sie eine YAML-Datei und fügen Sie die
KeyImport-Ressource als Wert deskind-Objekts hinzu:apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISMErsetzen Sie die folgenden Variablen:
- KEY_IMPORT_NAME: der Name der
KeyImport-Ressource, z. B.key-import-test. - PROJECT: der Name des Projekt-Namespace, z. B.
kms-test1. - MECHANISM: Der Mechanismus zur Schlüsselweitergabe des Schlüssels, z. B. `EDCH_P521_AES256` .
- KEY_IMPORT_NAME: der Name der
Wenden Sie den Inhalt der YAML-Datei auf den KMS an und erstellen Sie die Ressource
KeyImport:kubectl apply -f FILENAME.yamlErsetzen Sie FILENAME durch den Namen der YAML-Datei.
Mit dem öffentlichen Schlüssel eines intern generierten Schlüsselpaars aktualisiert KMS den Status der
KeyImport-Ressource aufAwaitingKeyToImport. Um fortzufahren, müssen Sie den Status der Ressource aufrufen und den von KMS generierten öffentlichen Schlüssel abrufen.So rufen Sie den Status der
KeyImport-Ressource auf und erhalten den von KMS generierten öffentlichen Schlüssel:kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECTErsetzen Sie die folgenden Variablen:
- KEY_IMPORT_NAME: Der
KeyImport-Ressourcenname, z. B.key-import-test. - PROJECT: der Name des Projekt-Namespace, z. B.
kms-test1.
Nach der Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht:
... Status: Conditions: Last Transition Time: 2022-12-14T20:43:50Z Message: waiting for user to provide KeyToImport Observed Generation: 1 Reason: AwaitingKeyToImport Status: False Type: Ready Imported Key Ref: Kind: KeyImport Name: key-import-test Peer Context: Private Key: Public Key: PUBLIC_KEY Events: <none>Der Wert PUBLIC_KEY steht für den von KMS generierten öffentlichen Schlüssel. Kopieren Sie den öffentlichen Schlüssel und fügen Sie ihn im nächsten Schritt der
KeyExport-Ressource hinzu.- KEY_IMPORT_NAME: Der
Erstellen Sie eine weitere YAML-Datei, fügen Sie die
KeyExport-Ressource als Wert deskind-Objekts und den folgenden Inhalt hinzu:apiVersion: "kms.gdc.goog/v1" kind: KeyExport metadata: name: KEY_EXPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM publicKey: PUBLIC_KEY keyToExport: kind: KEY_PRIMITIVE name: KEY_NAMEErsetzen Sie die folgenden Variablen:
- KEY_EXPORT_NAME: der Name der
KeyExport-Ressource, z. B.key-export-test. PROJECT: der Name des Projekt-Namespace, z. B.
kms-test1.MECHANISM: Der Mechanismus zur Schlüsselweitergabe des Schlüssels, z. B. `EDCH_P521_AES256` .
PUBLIC_KEY: Der öffentliche Schlüssel aus
keyImport.Status.PeerContext.PublicKey.KEY_PRIMITIVE: Die CRD des Schlüssels, z. B. „aeadkey“ und „signingkey“.
KEY_NAME: der Name des Schlüssels, z. B.
key-1.
- KEY_EXPORT_NAME: der Name der
Wenden Sie den Inhalt der YAML-Datei auf den KMS an und erstellen Sie die Ressource
KeyExport:kubectl apply -f FILENAME.yamlErsetzen Sie FILENAME durch den Namen der YAML-Datei.
Nachdem Sie den Befehl ausgeführt haben, aktualisiert der KMS den Status der
KeyExport-Ressource und generiert einen exportierten Schlüssel. Um den exportierten Schlüssel zu erhalten, sehen Sie sich den Status der Ressource an.Führen Sie Folgendes aus, um den Status der Ressource aufzurufen:
kubectl describe keyexport KEY_EXPORT_NAME --namespace PROJECTErsetzen Sie die folgenden Variablen:
- KEY_EXPORT_NAME: der Name der
KeyExport-Ressource, z. B.key-export-test. - PROJECT: der Name des Projekt-Namespace, z. B.
kms-test1.
Nach der Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht:
... Status: Conditions: Last Transition Time: 2022-12-14T20:45:57Z Message: key successfully exported Observed Generation: 1 Reason: KeyExportCompleted Status: True Type: Ready Exported Key: EXPORTED_KEYEXPORTED_KEY steht für die Metadaten des exportierten Schlüssels. Kopieren Sie den Inhalt von EXPORTED_KEY, um mit dem nächsten Schritt fortzufahren.
- KEY_EXPORT_NAME: der Name der
Bearbeiten Sie die YAML-Datei, die die
KeyImport-Ressource enthält, und fügen Sie den Inhalt ein, den Sie aus der Ausgabe inkeyexport.status.exportedkeykopiert haben.apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: key-import-test namespace: kms-test1 spec: context: mechanism: EDCH_P521_AES256 keyToImport: EXPORTED_KEYWenden Sie nach dem Bearbeiten der YAML-Datei den Inhalt auf den KMS an:
kubectl apply -f FILENAME.yamlNach der Ausführung des Befehls importiert KMS den von Ihnen bereitgestellten exportierten Schlüssel.
Führen Sie Folgendes aus, um Details zum importierten Schlüssel aufzurufen:
kubectl get keyimport KEY_IMPORT_NAMEDie Ausgabe sollte in etwa so aussehen:
NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVEKEY_PRIMITIVE steht für den Typ des importierten Schlüssels, entweder AEAD- oder Signaturschlüssel.