Questa pagina contiene le istruzioni per l'operatore dell'applicazione (AO) per eseguire operazioni di importazione delle chiavi dalle chiavi dei sistemi di gestione delle chiavi (KMS) esportate. L'AO
esegue le operazioni di importazione ed esportazione utilizzando l'interfaccia a riga di comando (CLI) kubectl
dalle seguenti risorse:
Per visualizzare ulteriori dettagli su queste risorse, consulta la panoramica dell'API KMS.
Consulta la sezione Chiavi supportate nella pagina Sistemi di gestione delle chiavi (KMS) per visualizzare l'elenco completo e i dettagli delle chiavi KMS supportate.
Prima di iniziare
Prima di eseguire le operazioni KMS, configura kubectl per accedere al server API Management e ottenere le autorizzazioni necessarie.
Configurare l'accesso al server dell'API Management
Configura kubectl per accedere al server dell'API Management:
- Se non l'hai ancora fatto, recupera un file kubeconfig per il server API Management utilizzando l'interfaccia a riga di comando (CLI) gcloud.
Imposta la variabile di ambiente
MANAGEMENT_API_SERVER:export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIGSostituisci
PATH_TO_KUBECONFIGcon il percorso del file kubeconfig generato.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie, chiedi all'amministratore IAM dell'organizzazione di concederti i ruoli Amministratore importazione chiavi KMS (kms-keyimport-admin) e Amministratore esportazione chiavi KMS (kms-keyexport-admin).
Importare una chiave esportata
Per importare una chiave esportata:
Crea un file YAML e aggiungi la risorsa
KeyImportcome valore dell'oggettokind:apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISMSostituisci le seguenti variabili:
- KEY_IMPORT_NAME: il nome della risorsa
KeyImport— ad esempio:key-import-test. - PROJECT: il nome dello spazio dei nomi del progetto, ad esempio
kms-test1. - MECHANISM: il meccanismo di condivisione della chiave ad esempio: `EDCH_P521_AES256` .
- KEY_IMPORT_NAME: il nome della risorsa
Applica i contenuti del file YAML a KMS e crea la risorsa
KeyImport:kubectl apply -f FILENAME.yamlSostituisci FILENAME con il nome del file YAML.
Con la chiave pubblica di una coppia di chiavi generata internamente, KMS aggiorna lo stato della risorsa
KeyImportaAwaitingKeyToImport. Per continuare, devi visualizzare lo stato della risorsa e ottenere la chiave pubblica generata da KMS.Per visualizzare lo stato della risorsa
KeyImporte ottenere la chiave pubblica generata da KMS, esegui il comando seguente:kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECTSostituisci le seguenti variabili:
- KEY_IMPORT_NAME: il nome della risorsa
KeyImport, ad esempiokey-import-test. - PROJECT: il nome dello spazio dei nomi del progetto, ad esempio
kms-test1.
Dopo aver eseguito il comando, visualizzi un output simile al seguente:
... 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>Il valore PUBLIC_KEY rappresenta la chiave pubblica generata da KMS. Copia la chiave pubblica e aggiungila alla risorsa
KeyExportnel passaggio successivo.- KEY_IMPORT_NAME: il nome della risorsa
Crea un altro file YAML, aggiungi la risorsa
KeyExportcome valore dell'oggettokinde i seguenti contenuti: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_NAMESostituisci le seguenti variabili:
- KEY_EXPORT_NAME: il nome della risorsa
KeyExport— ad esempio:key-export-test. PROJECT: il nome dello spazio dei nomi del progetto, ad esempio
kms-test1.MECHANISM: il meccanismo di condivisione della chiave ad esempio: `EDCH_P521_AES256` .
PUBLIC_KEY: la chiave pubblica di
keyImport.Status.PeerContext.PublicKey.KEY_PRIMITIVE: il CRD della chiave, ad esempio aeadkey e signingkey.
KEY_NAME: il nome della chiave, ad esempio
key-1.
- KEY_EXPORT_NAME: il nome della risorsa
Applica i contenuti del file YAML a KMS e crea la risorsa
KeyExport:kubectl apply -f FILENAME.yamlSostituisci FILENAME con il nome del file YAML.
Dopo aver eseguito il comando, KMS aggiorna lo stato della risorsa
KeyExporte genera una chiave esportata. Per ottenere la chiave esportata, visualizza lo stato della risorsa.Per visualizzare lo stato della risorsa, esegui questo comando:
kubectl describe keyexport KEY_EXPORT_NAME --namespace PROJECTSostituisci le seguenti variabili:
- KEY_EXPORT_NAME: il nome della risorsa
KeyExport, ad esempiokey-export-test. - PROJECT: il nome dello spazio dei nomi del progetto, ad esempio
kms-test1.
Dopo aver eseguito il comando, visualizzi un output simile al seguente:
... 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 rappresenta i metadati della chiave esportata. Copia i contenuti in EXPORTED_KEY per continuare con il passaggio successivo.
- KEY_EXPORT_NAME: il nome della risorsa
Modifica il file YAML che contiene la risorsa
KeyImporte aggiungi i contenuti copiati dall'output inkeyexport.status.exportedkey.apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: key-import-test namespace: kms-test1 spec: context: mechanism: EDCH_P521_AES256 keyToImport: EXPORTED_KEYDopo aver modificato il file YAML, applica i contenuti a KMS:
kubectl apply -f FILENAME.yamlDopo aver eseguito il comando, KMS importa la chiave esportata che hai fornito.
Per visualizzare i dettagli della chiave importata, esegui questo comando:
kubectl get keyimport KEY_IMPORT_NAMEVedi un output simile al seguente:
NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVEKEY_PRIMITIVE rappresenta il tipo di chiave che hai importato, tra le chiavi AEAD e di firma.