Creare ed eliminare chiavi

Il sistema di gestione delle chiavi (KMS) supporta diversi tipi di chiavi per operazioni crittografiche come crittografia, decriptazione, firma e verifica. Per saperne di più sui tipi di chiavi e sugli algoritmi disponibili, consulta Chiavi supportate.

Questa pagina è rivolta ai membri del gruppo di operatori dell'applicazione, ad esempio i team DevOps, che eseguono operazioni di gestione delle chiavi all'interno di Google Distributed Cloud (GDC) con air gap. Per saperne di più, consulta la documentazione sui segmenti di pubblico per GDC con air gap.

Prima di iniziare

Per creare e gestire le chiavi, richiedi le autorizzazioni necessarie e prepara l'ambiente.

Richiedi ruoli IAM

Contatta l'amministratore dell'organizzazione IAM 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. Installa e inizializza la CLI gdcloud, se non l'hai ancora fatto.

  2. Esegui l'autenticazione in GDC utilizzando la CLI gdcloud. 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 API di gestione utilizzando la CLI gdcloud.

Crea una chiave

Puoi creare chiavi per scopi crittografici diversi.

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 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 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 riuscita e che la risorsa della 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 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 uno 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 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 uno 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 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.