Creare risorse protette utilizzando Cloud KMS Autokey

Questa pagina mostra come creare risorse protette utilizzando le chiavi create da Cloud KMS Autokey per la crittografia. Per maggiori informazioni su Autokey, vedi Panoramica di Autokey.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per utilizzare Autokey per creare risorse protette, chiedi all'amministratore di concederti il ruolo IAM Cloud KMS Autokey User (roles/cloudkms.autokeyUser) per la cartella o il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Devi anche disporre delle autorizzazioni per la creazione di risorse nella cartella Autokey o in un progetto di risorse all'interno della cartella. Per ulteriori informazioni sulle autorizzazioni necessarie per creare ogni risorsa, consulta la documentazione specifica del servizio. Questa documentazione è disponibile nella tabella delle integrazioni CMEK del servizio e visitando il link relativo al tipo di risorsa che vuoi creare.

Utilizzo di Autokey con le risorse Compute Engine

Autokey crea una nuova chiave per ogni disco, immagine e immagine macchina nella stessa località della risorsa che viene creata.

Autokey non crea nuove chiavi per gli snapshot. Gli snapshot devono utilizzare la stessa chiave utilizzata per criptare il disco. Se crei uno snapshot mediante la console Google Cloud, la chiave di crittografia utilizzata dal disco viene applicata automaticamente allo snapshot. Se crei uno snapshot utilizzando gcloud CLI, Terraform o l'API Cloud KMS, devi identificare la chiave utilizzata per criptare il disco e utilizzarla per criptare lo snapshot.

Per saperne di più sull'utilizzo di CMEK con gli snapshot, vedi Creare uno snapshot da un disco criptato con CMEK.

Crea una risorsa Compute Engine protetta

Console

Per creare un disco, completa questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Dischi.

    Vai a dischi

  2. Fai clic su Crea disco e inserisci le proprietà del nuovo disco.

  3. In Crittografia, seleziona Chiave Cloud KMS.

  4. In Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.

  5. Per completare la creazione del disco, fai clic su Crea.

Puoi seguire una procedura simile per creare risorse protette di istanze VM, immagini e immagini macchina.

Terraform

Il seguente esempio di Terraform crea un handle della chiave e utilizza la chiave restituita per proteggere una nuova risorsa di disco permanente:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "compute.googleapis.com/Disk"
}

resource "google_compute_disk" "persistent_disk" {
  project = "RESOURCE_PROJECT_ID"
  name    = "DISK_NAME"
  type    = "pd-ssd"
  zone    = "ZONE"
  size    = 30
  physical_block_size_bytes = 4096
  disk_encryption_key {
    kms_key_self_link = my_key_handle.kms_key
  }
}

Sostituisci quanto segue:

  • RESOURCE_PROJECT_ID: l'ID del progetto della risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
  • KEY_HANDLE: un ID da utilizzare per l'handle della chiave.
  • LOCATION: la località in cui vuoi creare la risorsa protetta.
  • DISK_NAME: il nome del nuovo disco.
  • ZONE: la zona della risorsa protetta. Deve essere una zona all'interno della località in cui stai creando la risorsa. Ad esempio, se stai creando la risorsa nella località us-central1, la zona potrebbe essere us-central1-a.

API

  1. Richiedi una nuova chiave Cloud KMS creando un KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: tipo di risorsa che vuoi creare, ad esempio compute.googleapis.com/Disk.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Prendi nota del valore OPERATION_ID dell'output. Questo valore è necessario per ottenere l'ID risorsa della chiave creata.

  2. Trova la chiave Cloud KMS associata all'handle della chiave:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • OPERATION_ID: l'identificatore dell'operazione di richiesta di gestione della chiave dell'output del passaggio precedente.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Il valore dell'elemento kmsKey nell'output è l'ID completo della risorsa della chiave creata da Autokey per questa risorsa. Puoi utilizzare questo ID risorsa nello stesso modo in cui useresti l'ID risorsa per qualsiasi altra risorsa Cloud KMS.

  3. Crea un disco criptato utilizzando il comando gcloud compute disks create, con il flag --kms-key:

    gcloud compute disks create DISK_NAME \
      --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del nuovo disco.
    • KEY_PROJECT_ID: l'ID del progetto chiave.
    • LOCATION: la posizione in cui vuoi creare la risorsa.
    • KEY_NAME: il nome della chiave restituita nell'output dal passaggio precedente.

Utilizzo di Autokey con le risorse Cloud Storage

Autokey crea una nuova chiave nella stessa località del bucket. La chiave creata da Autokey viene assegnata come chiave predefinita del bucket.

Autokey non crea chiavi per gli oggetti. Per impostazione predefinita, gli oggetti creati in un bucket usano la chiave predefinita del bucket. Se vuoi criptare un oggetto utilizzando una chiave diversa dalla chiave predefinita del bucket, puoi creare manualmente una CMEK e utilizzarla quando crei l'oggetto.

Se vuoi modificare la chiave predefinita assegnata a un bucket, puoi utilizzare qualsiasi CMEK esistente, incluse le chiavi create da Autokey.

crea una risorsa Cloud Storage protetta

Console

  1. Nella console Google Cloud, vai alla pagina Crea un bucket.

    Vai a Crea un bucket

  2. Segui le istruzioni per creare un nuovo bucket fino ad arrivare a Scegli come proteggere i dati degli oggetti.

  3. In Scegli come proteggere i dati degli oggetti, espandi la sezione Crittografia dei dati, quindi seleziona Chiave Cloud KMS.

  4. In Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.

  5. Per completare la creazione del bucket, fai clic su Crea.

Terraform

Il seguente esempio di Terraform crea un handle della chiave e utilizza la chiave restituita per proteggere un nuovo bucket di archiviazione:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "storage.googleapis.com/Bucket"
}

resource "google_storage_bucket" "simple_bucket_name" {
  name                        = "BUCKET_NAME"
  location                    = "LOCATION"
  force_destroy               = true
  project                     = "RESOURCE_PROJECT_ID"
  uniform_bucket_level_access = true
  encryption {
    default_kms_key_name      = my_key_handle.kms_key
  }
}

Sostituisci quanto segue:

  • RESOURCE_PROJECT_ID: l'ID del progetto della risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
  • KEY_HANDLE: un ID da utilizzare per l'handle della chiave.
  • LOCATION: la località in cui vuoi creare la risorsa protetta.
  • BUCKET_NAME: il nome del nuovo bucket.

API

  1. Richiedi una nuova chiave Cloud KMS creando un KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: tipo di risorsa che vuoi creare, ad esempio storage.googleapis.com/Bucket.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Prendi nota del valore OPERATION_ID dell'output. Questo valore è necessario per ottenere l'ID risorsa della chiave creata.

  2. Trova la chiave Cloud KMS associata all'handle della chiave:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • OPERATION_ID: l'identificatore dell'operazione di richiesta di gestione della chiave dell'output del passaggio precedente.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Il valore dell'elemento kmsKey nell'output è l'ID risorsa completo della chiave creata da Autokey per questa risorsa. Puoi utilizzare questo ID risorsa nello stesso modo in cui useresti l'ID risorsa per qualsiasi altra risorsa di Cloud KMS.

  3. Crea un bucket criptato utilizzando il comando gcloud storage buckets create, con il flag --default-encryption-key:

    gcloud storage buckets create gs://BUCKET_NAME \
        --location=LOCATION \
        --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del nuovo bucket. Il nome del bucket deve rispettare i requisiti di denominazione dei bucket.
    • LOCATION: la posizione in cui vuoi creare il bucket.
    • KEY_PROJECT_ID: l'ID del progetto chiave.
    • LOCATION: la posizione in cui vuoi creare la risorsa.
    • KEY_NAME: il nome della chiave restituita nell'output dal passaggio precedente.

Utilizzo di Autokey con le risorse BigQuery

Cloud KMS è disponibile in diverse versioni di BigQuery. Assicurati che la versione di BigQuery che stai utilizzando sia compatibile con Cloud KMS prima di provare a utilizzare Autokey per proteggere le risorse BigQuery. Per ulteriori informazioni sulle versioni di BigQuery, consulta Informazioni sulle versioni di BigQuery.

Per ogni nuovo set di dati, Autokey crea una nuova chiave, nella stessa località della risorsa, che diventa la chiave predefinita del set di dati.

Autokey non crea chiavi per tabelle, query, tabelle temporanee o modelli. Per impostazione predefinita, queste risorse sono protette dalla chiave predefinita del set di dati. Se vuoi proteggere una risorsa in un set di dati utilizzando una chiave diversa dalla chiave predefinita del set di dati, puoi creare manualmente una CMEK e utilizzare questa chiave durante la creazione della risorsa.

Per le query e le tabelle temporanee che non si trovano all'interno di un set di dati, utilizza le chiavi predefinite del progetto. Usa una chiave predefinita del progetto diversa per ogni località del progetto che contiene risorse BigQuery. Per ulteriori informazioni sull'utilizzo delle chiavi predefinite del progetto, consulta Impostare una chiave predefinita del progetto.

Per ulteriori informazioni sull'utilizzo di CMEK con BigQuery, vedi Chiavi Cloud KMS gestite dal cliente.

crea una risorsa BigQuery protetta

Console

Prima di tentare di creare un set di dati BigQuery utilizzando Autokey, assicurati di disporre delle autorizzazioni necessarie. Per ulteriori informazioni sulla creazione di set di dati, consulta Creare set di dati.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Segui le istruzioni per creare un set di dati finché non arrivi a Opzioni avanzate > Crittografia.

  3. In Crittografia, seleziona Chiave Cloud KMS.

  4. In Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.

  5. Per completare la creazione del set di dati, fai clic su Crea set di dati.

Terraform

Il seguente esempio di Terraform crea un handle della chiave e utilizza la chiave restituita per proteggere un nuovo set di dati:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "LOCATION"
  resource_type_selector = "bigquery.googleapis.com/Dataset"
}

resource "google_bigquery_dataset" "dataset" {
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = my_key_handle.kms_key
  }
}

Sostituisci quanto segue:

  • RESOURCE_PROJECT_ID: l'ID del progetto della risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
  • LOCATION: la località in cui vuoi creare la risorsa protetta.
  • DATASET_ID: l'ID da utilizzare per il nuovo set di dati.
  • DATASET_NAME: un nome semplice per il nuovo set di dati.
  • DATASET_DESCRIPTION: una descrizione del nuovo set di dati.

API

  1. Richiedi una nuova chiave Cloud KMS creando un KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: tipo di risorsa che vuoi creare, ad esempio bigquery.googleapis.com/Dataset.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Prendi nota del valore OPERATION_ID dell'output. Questo valore è necessario per ottenere l'ID risorsa della chiave creata.

  2. Trova la chiave Cloud KMS associata all'handle della chiave:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • OPERATION_ID: l'identificatore dell'operazione di richiesta di gestione della chiave dell'output del passaggio precedente.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Il valore dell'elemento kmsKey nell'output è l'ID risorsa completo della chiave creata da Autokey per questa risorsa. Puoi utilizzare questo ID risorsa nello stesso modo in cui useresti l'ID risorsa per qualsiasi altra risorsa di Cloud KMS.

  3. Crea un set di dati criptato utilizzando il comando bq mk, con il flag --destination_kms_key.

    bq --location=LOCATION mk \
        --dataset \
        --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \
        --default_table_expiration=TABLE_EXPIRATION \
        --description="DATASET_DESCRIPTION" \
        RESOURCE_PROJECT_ID:DATASET_ID
    

    Sostituisci quanto segue:

    • LOCATION: la località in cui vuoi creare il set di dati.
    • KEY_PROJECT_ID: l'ID del progetto chiave.
    • KEY_NAME: il nome della chiave restituita nell'output dal passaggio precedente.
    • TABLE_EXPIRATION: la durata predefinita per le nuove tabelle in questo set di dati, in secondi.
    • DATASET_DESCRIPTION: una descrizione del nuovo set di dati.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • DATASET_ID: l'ID del set di dati che stai creando.

    Per ulteriori informazioni sullo strumento bq, consulta Esplorare lo strumento a riga di comando bq.

Utilizzo di Autokey con le risorse di Secret Manager

Autokey crea un'unica chiave per proteggere tutti i secret nello stesso progetto e nella stessa località. Quando la chiave ruota, i nuovi secret aggiunti al progetto utilizzano la nuova versione primaria della chiave.

Secret Manager è compatibile con Cloud KMS Autokey solo quando si creano risorse utilizzando Terraform o l'API REST.

Crea una risorsa Secret Manager protetta

Terraform

Il seguente esempio Terraform crea un handle della chiave e utilizza la chiave restituita per proteggere un nuovo secret con replica automatica:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "global"
  resource_type_selector = "secretmanager.googleapis.com/Secret"
}

resource "google_secret_manager_secret" "my_secret" {
  secret_id = "SECRET_ID"

  replication {
    auto {
      customer_managed_encryption {
        kms_key_name = my_key_handle.kms_key
      }
    }
  }
}

Sostituisci quanto segue:

  • RESOURCE_PROJECT_ID: l'ID del progetto della risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
  • SECRET_ID: l'ID da utilizzare per il nuovo secret.

Se tenti di creare un handle di chiave per un secret nello stesso progetto e nella stessa località per cui esiste già un handle di chiave, un messaggio di errore restituisce i dettagli dell'handle della chiave esistente. In questo caso, assicurati di avere un solo blocco che crea l'handle della chiave. Puoi riutilizzare l'handle della chiave utilizzando il relativo ID (KEY_HANDLE) per creare secret aggiuntivi che dovrebbero condividere la chiave.

API

  1. Richiedi una nuova chiave Cloud KMS creando un KeyHandle:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: tipo di risorsa che vuoi creare, ad esempio secretmanager.googleapis.com/Secret.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Prendi nota del valore OPERATION_ID dell'output. Questo valore è necessario per ottenere l'ID risorsa della chiave creata.

    Se tenti di creare un handle della chiave per un secret nello stesso progetto e nella stessa località per cui esiste già un handle della chiave, un messaggio di errore restituisce i dettagli dell'handle della chiave esistente. In questo caso, salta il passaggio successivo e utilizza l'ID risorsa della chiave nel campo existingKmsKey per proteggere il tuo nuovo secret.

  2. Trova la chiave Cloud KMS associata all'handle della chiave:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Sostituisci quanto segue:

    • USER_PROJECT: il progetto a cui verranno addebitati gli addebiti associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • OPERATION_ID: l'identificatore dell'operazione di richiesta di gestione della chiave dell'output del passaggio precedente.

    L'output è simile al seguente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Il valore dell'elemento kmsKey nell'output è l'ID risorsa completo della chiave creata da Autokey per questa risorsa. Puoi utilizzare questo ID risorsa nello stesso modo in cui useresti l'ID risorsa per qualsiasi altra risorsa di Cloud KMS.

  3. Crea un secret criptato con replica automatica utilizzando il comando gcloud secrets create con il flag --kms-key-name.

    gcloud secrets create "SECRET_ID" \
        --replication-policy "automatic" \
        --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \
        --project "RESOURCE_PROJECT_ID"
    

    Sostituisci quanto segue:

    • SECRET_ID: l'ID da utilizzare per il nuovo secret.
    • KEY_PROJECT_ID: l'ID del progetto chiave.
    • KEY_NAME: il nome della chiave restituita nell'output dal passaggio precedente.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.

Passaggi successivi