Configurare le giustificazioni dell'accesso alle chiavi con Cloud KMS e Cloud HSM

Questa pagina descrive come configurare Key Access Justifications con Cloud KMS o Cloud HSM per il confine dei dati del Giappone di Assured Workloads.

Durante i passaggi per creare una nuova cartella Assured Workloads per le regioni del Giappone, hai la possibilità di creare un nuovo progetto e un keyring per le tue chiavi crittografiche. A questo portachiavi possono essere aggiunte chiavi Cloud KMS e Cloud HSM. Puoi anche configurare una policy Key Access Justifications per controllare l'accesso a ogni chiave.

Prima di iniziare

  • La possibilità di utilizzare Key Access Justifications con le chiavi Cloud KMS e Cloud HSM è disponibile solo per il perimetro dei dati del Giappone in Assured Workloads.
  • Assicurati che l'amministratore ti abbia concesso uno dei ruoli Identity and Access Management (IAM) richiesti per creare e gestire sia i criteri di Key Access Justifications sia le chiavi Cloud KMS e Cloud HSM.

Autorizzazioni IAM richieste

Per ottenere le autorizzazioni necessarie per creare e gestire le chiavi Cloud KMS e Cloud HSM e le relative policy di giustificazione dell'accesso alle chiavi, chiedi all'amministratore di concederti il ruolo IAM Amministratore Cloud KMS (roles/cloudkms.admin) nel progetto contenente il portachiavi. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire le chiavi Cloud KMS e Cloud HSM e le relative policy di Key Access Justifications. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare e gestire le chiavi Cloud KMS e Cloud HSM e le relative policy di giustificazione dell'accesso alle chiavi sono necessarie le seguenti autorizzazioni:

  • cloudkms.cryptoKeys.create
  • cloudkms.cryptoKeys.update
  • cloudkms.cryptoKeys.get

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Configurare una chiave con Key Access Justifications

Per configurare Key Access Justifications con una chiave Cloud KMS o Cloud HSM, puoi includere la policy di accesso alla chiave come parametro quando crei la chiave oppure puoi aggiornare la chiave con la policy dopo la creazione.

Crea una nuova chiave e una nuova policy

Console

  1. Nella console Google Cloud , vai alla pagina Gestione delle chiavi.

    Vai a Gestione delle chiavi

  2. Fai clic sul nome del keyring in cui vuoi creare la chiave.

  3. Fai clic su Crea chiave.

  4. In Nome chiave, inserisci un nome per la chiave.

  5. In Livello di protezione, seleziona Software o HSM.

  6. Continua a selezionare le impostazioni in base alle tue esigenze.

  7. In Impostazioni aggiuntive, seleziona Imposta criterio di giustificazione dell'accesso alle chiavi, quindi seleziona Motivi di giustificazione consentiti.

  8. Per Motivi di giustificazione, seleziona Accesso avviato dal cliente, Operazione di sistema avviata da Google e qualsiasi altro codice motivo che vuoi consentire. Sia l'accesso avviato dal cliente che l'operazione di sistema avviata da Google sono essenziali per il normale funzionamento.

  9. Fai clic su Crea.

REST

Crea una nuova chiave e una nuova policy utilizzando il metodo cryptoKeys.create:

POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME

Nella richiesta, sostituisci i seguenti valori segnaposto:

  • PROJECT_ID: l'ID progetto che contiene il portachiavi a cui vuoi aggiungere una chiave, ad esempio 919698201234.
  • LOCATION: la posizione delle chiavi automatizzate, ad esempio asia-northeast1.
  • KEY_RING: il nome del keyring che hai specificato quando hai creato il progetto di gestione delle chiavi e il keyring della cartella Assured Workloads.
  • KEY_NAME: il nome della chiave HSM che vuoi creare, ad esempio my-hsm-key.

Corpo della richiesta:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "PROTECTION_LEVEL",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

Nel corpo della richiesta, sostituisci i seguenti valori segnaposto:

  • PURPOSE: lo scopo della chiave. Per un elenco di scopi diversi delle chiavi, vedi Scopi delle chiavi, ad esempio ENCRYPT_DECRYPT.
  • PROTECTION_LEVEL: il livello di protezione della chiave, ad esempio SOFTWARE o HSM.
  • ALGORITHM: L'algoritmo crittografico da utilizzare. Per un elenco degli algoritmi disponibili, consulta Algoritmi Cloud KMS, ad esempio GOOGLE_SYMMETRIC_ENCRYPTION.
  • ALLOWED_ACCESS_REASONS: la policy Key Access Justifications che definisce zero o più codici di giustificazione consentiti per l'accesso alla chiave di crittografia, ad esempio ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].

La seguente richiesta di esempio e il corpo della richiesta creano una chiave Cloud HSM che consente le giustificazioni dell'accesso solo per alcuni motivi:

POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Aggiorna la policy di una chiave esistente

Console

  1. Nella console Google Cloud , vai alla pagina Gestione delle chiavi.

    Vai a Gestione delle chiavi

  2. Fai clic sul nome del keyring in cui hai creato la chiave.

  3. Fai clic sul nome della chiave per cui vuoi aggiornare la policy Key Access Justifications.

  4. Fai clic su Modifica policy Key Access Justifications.

  5. Esegui una di queste operazioni:

    • Per disattivare la policy Key Access Justifications sulla chiave, deseleziona la casella di controllo Imposta la policy Key Access Justifications.

    • Per modificare i motivi di giustificazione consentiti, fai clic sulla casella Motivi di giustificazione e seleziona o deseleziona i codici motivo in base alle esigenze. Sia l'accesso avviato dal cliente sia l'operazione di sistema avviata da Google sono essenziali per il normale funzionamento.

    • Per rifiutare tutti i codici motivo, seleziona Rifiuta tutti i codici motivo (non consigliato). In questo modo, la chiave non potrà essere utilizzata anche se è attiva e il richiedente dispone delle autorizzazioni necessarie.

  6. Fai clic su Salva.

REST

Aggiorna una chiave esistente in Cloud KMS utilizzando il metodo cryptoKeys.patch:

PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy

Nella richiesta, sostituisci i seguenti valori segnaposto:

  • PROJECT_ID: l'ID progetto del progetto che contiene il portachiavi per la chiave, ad esempio 919698201234.
  • LOCATION: la posizione delle chiavi automatizzate, ad esempio asia-northeast1.
  • KEY_RING: il nome del keyring che hai specificato quando hai creato il progetto di gestione delle chiavi e il keyring della cartella Assured Workloads.
  • KEY_NAME: il nome della chiave che vuoi aggiornare.

Corpo della richiesta:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "PROTECTION_LEVEL",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

Nel corpo della richiesta, sostituisci i seguenti valori segnaposto:

  • PURPOSE: lo scopo della chiave. Per un elenco di scopi diversi delle chiavi, vedi Scopi delle chiavi, ad esempio ENCRYPT_DECRYPT.
  • PROTECTION_LEVEL: il livello di protezione della chiave, ad esempio SOFTWARE o HSM.
  • ALGORITHM: L'algoritmo crittografico da utilizzare. Per un elenco degli algoritmi disponibili, consulta Algoritmi Cloud KMS, ad esempio GOOGLE_SYMMETRIC_ENCRYPTION.
  • ALLOWED_ACCESS_REASONS: la policy Key Access Justifications che definisce zero o più codici di giustificazione consentiti per l'accesso alla chiave di crittografia, ad esempio ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].

La seguente richiesta di esempio e il corpo della richiesta consentono l'accesso alle giustificazioni solo per alcuni motivi:

PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Recupera la policy Key Access Justifications per una chiave

REST

Recupera i metadati di una chiave esistente in Cloud KMS utilizzando il metodo cryptoKeys.get:

GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Nei parametri della richiesta, sostituisci i seguenti valori segnaposto con i tuoi:

  • PROJECT_ID: l'ID progetto che contiene il portachiavi per la chiave, ad esempio 919698201234.
  • LOCATION: la posizione delle chiavi automatizzate, ad esempio asia-northeast1.
  • KEY_RING: il nome del keyring che hai specificato quando hai creato il progetto di gestione delle chiavi e il keyring della cartella Assured Workloads, ad esempio my-key-ring.
  • KEY_NAME: il nome della chiave che vuoi ottenere.

La seguente richiesta di esempio recupera i metadati di una chiave in Cloud KMS:

GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key

Il corpo della risposta contiene i metadati della chiave, incluso il keyAccessJustificationsPolicy. Ad esempio:

{
  "purpose": "ENCRYPT_DECRYPT",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      "CUSTOMER_INITIATED_ACCESS",
      "GOOGLE_INITIATED_SYSTEM_OPERATION"
    ]
  }
}

Passaggi successivi