Questa pagina contiene le istruzioni per l'operatore dell'applicazione (AO) per eseguire operazioni di importazione delle chiavi dai sistemi di gestione delle chiavi (KMS) esportati. 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 continuare, assicurati di avere quanto segue:
- Il comando - kubectlconfigurato per accedere al server dell'API Management. Per farlo, segui le sezioni Ottieni un file kubeconfig e Interfaccia a riga di comando (CLI) gcloud.
- I ruoli Amministratore importazione chiavi KMS e Amministratore esportazione chiavi KMS. Per ottenere le autorizzazioni necessarie per importare una chiave esportata, chiedi all'amministratore della piattaforma 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'oggetto- kind:- apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM- Sostituisci 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.yaml- Sostituisci FILENAME con il nome del file YAML. - Con la chiave pubblica di una coppia di chiavi generata internamente, KMS aggiorna lo stato della risorsa - KeyImporta- AwaitingKeyToImport. 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 questo comando:- kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECT- Sostituisci 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'oggetto- kinde 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_NAME- Sostituisci 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.yaml- Sostituisci 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 PROJECT- Sostituisci 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_KEY- EXPORTED_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 che hai copiato dall'output in- keyexport.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_KEY
- Dopo aver modificato il file YAML, applica i contenuti a KMS: - kubectl apply -f FILENAME.yaml- Dopo 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_NAME- Vedi un output simile al seguente: - NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVE- KEY_PRIMITIVE rappresenta il tipo di chiave che hai importato, tra le chiavi AEAD e di firma.