Questa pagina mostra come creare risorse protette utilizzando le chiavi create da Cloud KMS Autokey per la crittografia. Per ulteriori informazioni su Autokey, consulta la panoramica di Autokey.
Prima di iniziare
Prima di poter creare risorse protette utilizzando Autokey, devi completare i seguenti passaggi di preparazione:
- Se non hai già un progetto risorsa all'interno della cartella Autokey, devi creare un progetto per contenere le risorse che prevedi di creare.
-
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
) nella cartella o nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
- Devi disporre anche delle autorizzazioni di creazione delle 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. 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
Autokey crea una nuova chiave per ogni disco, immagine e immagine della macchina nella stessa posizione 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 utilizzando la consoleTrusted Cloud , la chiave di crittografia utilizzata dal disco viene applicata automaticamente allo snapshot. Se crei uno snapshot utilizzando gcloud CLI, Terraform o l'API Compute Engine, 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, completa i seguenti passaggi:
Nella console Trusted Cloud vai alla pagina Dischi.
Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
In Crittografia, seleziona Chiave Cloud KMS.
Per Tipo di chiave, seleziona Cloud KMS con Autokey e poi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.
Per completare la creazione del disco, fai clic su Crea.
Puoi seguire una procedura simile per creare risorse di istanze VM, immagini e immagini macchina protette.
Terraform
Il seguente esempio di Terraform crea un handle della chiave e utilizza la chiave restituita per proteggere una nuova risorsa 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 = google_kms_key_handle.my_key_handle.kms_key
}
}
Sostituisci quanto segue:
RESOURCE_PROJECT_ID
: l'ID progetto del progetto di risorse 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 essereus-central1-a
.
Cloud KMS non consente di eliminare le risorse KeyHandle
. Se utilizzi un pattern di creazione ed eliminazione, il tentativo
di ricreare un KeyHandle
genera un errore ALREADY_EXISTS
. Per evitare questo problema, puoi importare un KeyHandle
creato in precedenza. Per saperne di più,
vedi Creare e distruggere pattern in Terraform in questa
pagina.
API
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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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
: il tipo di risorsa che vuoi creare, ad esempiocompute.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 di
OPERATION_ID
dall'output. Ti serve questo valore per ottenere l'ID risorsa della chiave creata.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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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 allo stesso modo in cui utilizzeresti l'ID risorsa per qualsiasi altra risorsa Cloud KMS.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 progetto 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
Autokey crea una nuova chiave nella stessa posizione 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 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 utilizzarla 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
Nella console Trusted Cloud , vai alla pagina Crea un bucket.
Segui le istruzioni per creare un nuovo bucket fino a quando non arrivi a Scegli come proteggere i dati degli oggetti.
Nella sezione Scegli come proteggere i dati degli oggetti, espandi la sezione Criptaggio dei dati e seleziona Chiave Cloud KMS.
Per Tipo di chiave, seleziona Cloud KMS con Autokey e poi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.
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 = google_kms_key_handle.my_key_handle.kms_key
}
}
Sostituisci quanto segue:
RESOURCE_PROJECT_ID
: l'ID progetto del progetto di risorse 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.
Cloud KMS non consente di eliminare le risorse KeyHandle
. Se utilizzi un pattern di creazione ed eliminazione, il tentativo
di ricreare un KeyHandle
genera un errore ALREADY_EXISTS
. Per evitare questo problema, puoi importare un KeyHandle
creato in precedenza. Per saperne di più,
vedi Creare e distruggere pattern in Terraform in questa
pagina.
API
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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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
: il tipo di risorsa che vuoi creare, ad esempiostorage.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 di
OPERATION_ID
dall'output. Hai bisogno di questo valore per ottenere l'ID risorsa della chiave creata.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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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.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 per la denominazione dei bucket.LOCATION
: la località in cui vuoi creare il bucket.KEY_PROJECT_ID
: l'ID progetto 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. Assicurati che la versione di BigQuery che utilizzi sia compatibile con Cloud KMS prima di provare a utilizzare Autokey per proteggere le risorse BigQuery. Per ulteriori informazioni sulle versioni di BigQuery, vedi Informazioni sulle versioni di BigQuery.
Per ogni nuovo set di dati, Autokey crea una nuova chiave nella stessa posizione della risorsa stessa, 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 da quella predefinita del set di dati, puoi creare manualmente una chiave CMEK e utilizzarla 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 del progetto diversa per ogni località del progetto che contiene risorse BigQuery. Per saperne di più sull'utilizzo delle chiavi predefinite del progetto, consulta la sezione Impostare una chiave predefinita del progetto.
Per ulteriori informazioni sull'utilizzo di CMEK con BigQuery, consulta 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 saperne di più sulla creazione dei set di dati, vedi Creare set di dati.
Nella console Trusted Cloud , vai alla pagina BigQuery.
Segui le istruzioni per creare un set di dati fino a quando non arrivi a Opzioni avanzate > Crittografia.
In Crittografia, seleziona Chiave Cloud KMS.
Per Tipo di chiave, seleziona Cloud KMS con Autokey e poi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.
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" {
project = "RESOURCE_PROJECT_ID"
dataset_id = "DATASET_ID"
friendly_name = "DATASET_NAME"
description = "DATASET_DESCRIPTION"
location = "LOCATION"
default_table_expiration_ms = 3600000
default_encryption_configuration {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
Sostituisci quanto segue:
RESOURCE_PROJECT_ID
: l'ID progetto 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.DATASET_ID
: l'ID da utilizzare per il nuovo set di dati.DATASET_NAME
: un nome facile da ricordare per il nuovo set di dati.DATASET_DESCRIPTION
: una descrizione per il nuovo set di dati.
Cloud KMS non consente di eliminare le risorse KeyHandle
. Se utilizzi un pattern di creazione ed eliminazione, il tentativo
di ricreare un KeyHandle
genera un errore ALREADY_EXISTS
. Per evitare questo problema, puoi importare un KeyHandle
creato in precedenza. Per saperne di più,
vedi Creare e distruggere pattern in Terraform in questa
pagina.
API
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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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
: il tipo di risorsa che vuoi creare, ad esempiobigquery.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 di
OPERATION_ID
dall'output. Hai bisogno di questo valore per ottenere l'ID risorsa della chiave creata.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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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.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 progetto del progetto chiave.KEY_NAME
: il nome della chiave restituita nell'output del passaggio precedente.TABLE_EXPIRATION
: la durata predefinita per le nuove tabelle in questo set di dati, in secondi.DATASET_DESCRIPTION
: una descrizione per il nuovo set di dati.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 saperne di più sullo strumento
bq
, consulta Esplorare lo strumento a riga di comando bq.
Utilizzo di Autokey con le risorse di Secret Manager
Autokey crea una singola chiave per proteggere tutti i secret nello stesso progetto e nella stessa località. Quando la chiave viene ruotata, i nuovi secret aggiunti al progetto utilizzano la nuova versione principale della chiave.
Secret Manager è compatibile con Cloud KMS Autokey solo quando vengono create risorse utilizzando Terraform o l'API REST.
Crea una risorsa Secret Manager protetta
Terraform
Il seguente esempio di 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" {
project = "RESOURCE_PROJECT_ID"
secret_id = "SECRET_ID"
replication {
auto {
customer_managed_encryption {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
}
}
Sostituisci quanto segue:
RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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 altri secret che devono
condividere la chiave.
Cloud KMS non consente di eliminare le risorse KeyHandle
. Se utilizzi un pattern di creazione ed eliminazione, il tentativo
di ricreare un KeyHandle
genera un errore ALREADY_EXISTS
. Per evitare questo problema, puoi importare un KeyHandle
creato in precedenza. Per saperne di più,
vedi Creare e distruggere pattern in Terraform in questa
pagina.
API
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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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
: il tipo di risorsa che vuoi creare, ad esempiosecretmanager.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 di
OPERATION_ID
dall'output. Hai bisogno di questo valore 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 nuovo secret.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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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.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 progetto del progetto chiave.KEY_NAME
: il nome della chiave restituita nell'output del passaggio precedente.RESOURCE_PROJECT_ID
: l'ID progetto del progetto risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.
Utilizzo di Autokey con le risorse Dataflow
Autokey può essere utilizzato per creare una singola chiave per ogni job Dataflow.
API
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": "dataflow.googleapis.com/Job"}'
Sostituisci quanto segue:
USER_PROJECT
: il progetto a cui addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto risorsa all'interno della cartella Autokey in cui vuoi creare una risorsa protetta.LOCATION
: la località in cui vuoi creare la risorsa protetta.
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 di
OPERATION_ID
dall'output. Ti serve questo valore per ottenere l'ID risorsa della chiave creata.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 addebitare i costi associati a questa richiesta.RESOURCE_PROJECT_ID
: l'ID progetto del progetto 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 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 allo stesso modo in cui utilizzeresti l'ID risorsa per qualsiasi altra risorsa Cloud KMS.
Pattern di creazione ed eliminazione in Terraform
Cloud KMS non consente di eliminare le risorse KeyHandle
. Se utilizzi
Terraform e un pattern di creazione ed eliminazione, il tentativo di ricreare un KeyHandle
genera un errore ALREADY_EXISTS
. Puoi evitare questo problema utilizzando un blocco
import
. Inserisci il seguente blocco prima del blocco
resource
per la risorsa google_kms_key_handle
:
import {
to = google_kms_key_handle.KEY_HANDLE
id = "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE"
}
Passaggi successivi
- Scopri di più su quando utilizzare Autokey.
- Scopri di più su come funziona Autokey.