Crea risorse protette con la chiave automatica di Cloud KMS

Questa pagina mostra come creare risorse protette utilizzando le chiavi create dalla chiave automatica Cloud KMS per la crittografia. Per maggiori informazioni su Autokey, consulta la Panoramica della chiave automatica.

Prima di iniziare

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

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Devi inoltre 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 ciascuna risorsa, consulta la documentazione specifica del servizio. Puoi trovare questa documentazione individuando il servizio nella tabella delle integrazioni CMEK e visitando il link per il tipo di risorsa che vuoi creare.

Utilizzo di Autokey con le risorse Compute Engine

La chiave automatica crea una nuova chiave per ogni disco, immagine e immagine della macchina nella stessa località della risorsa in fase di creazione.

La chiave automatica non crea nuove chiavi per gli snapshot. Gli snapshot devono usare la stessa chiave utilizzata per criptare il disco. Se crei uno snapshot utilizzando 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, consulta Creare uno snapshot da un disco criptato con CMEK.

Crea una risorsa Compute Engine protetta

Console

Per creare un disco:

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

    Vai a Dischi

  2. Fai clic su Crea disco e inserisci le proprietà per il 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 ed è pronta per l'uso.

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

Puoi seguire una procedura simile per creare risorse di istanze VM protette, 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 di 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: il 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 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse 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 dell'handle della chiave dall'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 utilizzeresti 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 località in cui vuoi creare la risorsa.
    • KEY_NAME: il nome della chiave restituita nell'output del passaggio precedente.

Utilizzo di Autokey con le risorse Cloud Storage

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

La chiave automatica non crea chiavi per gli oggetti. Per impostazione predefinita, gli oggetti creati in un bucket utilizzano la chiave predefinita del bucket. Se vuoi criptare un oggetto utilizzando una chiave diversa da quella predefinita del bucket, puoi creare manualmente una CMEK e utilizzare questa chiave durante la creazione dell'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 Creare un bucket

  2. Segui le istruzioni per creare un nuovo bucket fino al passaggio 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 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 di 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: il 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 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse 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 dell'handle della chiave dall'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 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 essere conforme ai requisiti di denominazione dei bucket.
    • LOCATION: la località in cui vuoi creare il bucket.
    • KEY_PROJECT_ID: l'ID del progetto chiave.
    • LOCATION: la località in cui vuoi creare la risorsa.
    • KEY_NAME: il nome della chiave restituita nell'output del passaggio precedente.

Utilizzo di Autokey con le risorse BigQuery

Cloud KMS è disponibile in diverse versioni di BigQuery. Prima di provare a utilizzare Autokey per proteggere le risorse BigQuery, assicurati che l'edizione di BigQuery sia compatibile con Cloud KMS. Per saperne di più 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.

La chiave automatica 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 da quella predefinita del set di dati, puoi creare manualmente una CMEK e utilizzare quella 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. Utilizza una chiave predefinita di progetto diversa per ogni località nel progetto che contiene le risorse BigQuery. Per saperne di più sull'utilizzo delle chiavi predefinite del progetto, consulta Impostare una chiave predefinita di progetto.

Per saperne di più 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 richieste. 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 fino ad arrivare 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 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 di 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 intuitivo per il nuovo set di dati.
  • DATASET_DESCRIPTION: una descrizione per il 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: il 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 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse 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 dell'handle della chiave dall'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 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 del passaggio precedente.
    • TABLE_EXPIRATION: la durata predefinita in secondi per le nuove tabelle in questo set di dati.
    • DATASET_DESCRIPTION: una descrizione per il nuovo set di dati.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • DATASET_ID: l'ID del set di dati che stai creando.

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

Utilizzo di Autokey con le risorse di Secret Manager

La chiave automatica 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 solo con la chiave automatica di Cloud KMS quando crei 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 la 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 di 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 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 tal 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
    • LOCATION: la località in cui vuoi creare la risorsa protetta.
    • RESOURCE_TYPE: il 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 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 restituirà 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 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 i costi associati a questa richiesta.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse 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 dell'handle della chiave dall'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 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 del passaggio precedente.
    • RESOURCE_PROJECT_ID: l'ID del progetto di risorse all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.

Passaggi successivi