Il Key Management System (KMS) supporta diversi tipi di chiavi per operazioni crittografiche come crittografia, decrittografia, firma e verifica. Per ulteriori informazioni sui tipi di chiavi e sugli algoritmi disponibili, consulta Chiavi supportate.
Questa pagina è destinata ai gruppi di operatori di applicazioni, come i team DevOps, quando eseguono operazioni di gestione delle chiavi in Google Distributed Cloud (GDC) air-gapped. Per ulteriori informazioni, consulta Pubblico per la documentazione di GDC air-gapped.
Prima di iniziare
Per creare e gestire le chiavi, richiedi le autorizzazioni necessarie e prepara l'ambiente.
Richiedi ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per concederti i seguenti ruoli nello spazio dei nomi del progetto:
- KMS Creator (
kms-creator): visualizza e crea risorseAEADKeyeSigningKeyall'interno di un progetto. - KMS Admin (
kms-admin): visualizza, crea ed elimina le chiavi all'interno di un progetto.
Prepara l'ambiente
Se non l'hai ancora fatto, installa e inizializza la gdcloud CLI.
Esegui l'autenticazione a GDC utilizzando gdcloud CLI. Questa procedura richiede il certificato dell'autorità di certificazione (CA) per la console della tua organizzazione:
Scarica il certificato CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSostituisci quanto segue:
CONSOLE_URL: l'URL della console della tua organizzazione (ad esempioconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: il percorso completo in cui vuoi salvare il file del certificato CA (ad esempio/tmp/my-org-ca.crt)
Accedi utilizzando il certificato CA scaricato:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Ottieni un file kubeconfig per il server dell'API di gestione utilizzando gdcloud CLI.
Crea una chiave
Puoi creare chiavi per diversi scopi crittografici.
Crea una chiave AEAD
Per eseguire la crittografia autenticata con dati associati (AEAD), crea una risorsa AEADKey nello spazio dei nomi del progetto:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: AES_256_GCM
EOF
Sostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestioneKEY_NAME: un nome per la chiave AEAD che vuoi creare, ad esempiokey-1PROJECT: il nome del progetto, ad esempiokms-test1
Crea una chiave di firma
Per firmare e verificare i dati, crea una risorsa SigningKey nello spazio dei nomi del progetto:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: EC_SIGN_P384_SHA384
EOF
Sostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestioneKEY_NAME: un nome per la chiave di firma che vuoi creare, ad esempiokey-1PROJECT: il nome del progetto, ad esempiokms-test1
Verifica la creazione della chiave
Dopo aver creato una chiave, verifica che l'operazione sia andata a buon fine e che la risorsa chiave sia pronta.
Verifica la creazione della chiave AEAD
Controlla lo stato di una chiave AEAD:
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
Sostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestioneKEY_NAME: il nome della chiave AEAD da verificare, ad esempiokey-1PROJECT: il nome del progetto, ad esempiokms-test1
Se la creazione della chiave è andata a buon fine, controlla l'output per una condizione Ready con lo stato True.
Verifica la creazione della chiave di firma
Controlla lo stato di una chiave di firma:
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
Sostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestioneKEY_NAME: il nome della chiave di firma da verificare, ad esempiokey-1PROJECT: il nome del progetto, ad esempiokms-test1
Se la creazione della chiave è andata a buon fine, controlla l'output per una condizione Ready con lo stato True.
Elimina una chiave
Per eliminare una risorsa chiave, specifica il tipo e il nome della chiave.
Elimina la chiave nello spazio dei nomi del progetto:
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestioneKEY_PRIMITIVE: il tipo di risorsa chiave che vuoi eliminare, ad esempioaeadkeyper la chiave AEAD osigningkeyper la chiave di firmaKEY_NAME: il nome della chiave che vuoi eliminare, ad esempiokey-1.PROJECT: il nome del progetto, ad esempiokms-test1.
Verifica l'eliminazione della chiave tentando di recuperarla:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSe la chiave è stata eliminata correttamente, il comando non restituirà l'oggetto chiave.