Creare ed eliminare chiavi

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 risorse AEADKey e SigningKey all'interno di un progetto.
  • KMS Admin (kms-admin): visualizza, crea ed elimina le chiavi all'interno di un progetto.

Prepara l'ambiente

  1. Se non l'hai ancora fatto, installa e inizializza la gdcloud CLI.

  2. Esegui l'autenticazione a GDC utilizzando gdcloud CLI. Questa procedura richiede il certificato dell'autorità di certificazione (CA) per la console della tua organizzazione:

    1. Scarica il certificato CA:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Sostituisci quanto segue:

      • CONSOLE_URL: l'URL della console della tua organizzazione (ad esempio console.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)
    2. Accedi utilizzando il certificato CA scaricato:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. 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 gestione
  • KEY_NAME: un nome per la chiave AEAD che vuoi creare, ad esempio key-1
  • PROJECT: il nome del progetto, ad esempio kms-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 gestione
  • KEY_NAME: un nome per la chiave di firma che vuoi creare, ad esempio key-1
  • PROJECT: il nome del progetto, ad esempio kms-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 gestione
  • KEY_NAME: il nome della chiave AEAD da verificare, ad esempio key-1
  • PROJECT: il nome del progetto, ad esempio kms-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 gestione
  • KEY_NAME: il nome della chiave di firma da verificare, ad esempio key-1
  • PROJECT: il nome del progetto, ad esempio kms-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.

  1. Elimina la chiave nello spazio dei nomi del progetto:

    kubectl --kubeconfig KUBECONFIG_PATH \
      delete KEY_PRIMITIVE KEY_NAME \
      --namespace=PROJECT
    

    Sostituisci quanto segue:

    • KUBECONFIG_PATH: il percorso del file kubeconfig per il server dell'API di gestione
    • KEY_PRIMITIVE: il tipo di risorsa chiave che vuoi eliminare, ad esempio aeadkey per la chiave AEAD o signingkey per la chiave di firma
    • KEY_NAME: il nome della chiave che vuoi eliminare, ad esempio key-1.
    • PROJECT: il nome del progetto, ad esempio kms-test1.
  2. Verifica l'eliminazione della chiave tentando di recuperarla:

    kubectl --kubeconfig KUBECONFIG_PATH \
      get KEY_PRIMITIVE  KEY_NAME \
      --namespace=PROJECT
    

    Se la chiave è stata eliminata correttamente, il comando non restituirà l'oggetto chiave.