Questo documento mostra come abilitare e configurare Cloud KMS Autokey utilizzando la console Google Cloud , Google Cloud CLI, l'API Cloud KMS o Terraform. Puoi attivare Autokey con l'archiviazione delle chiavi in un progetto dedicato per una cartella oppure puoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto per un singolo progetto o per tutti i progetti all'interno di una cartella. Per saperne di più su Autokey, consulta la panoramica di Autokey.
Questo documento è rivolto agli amministratori.
Eredità della configurazione di Autokey
Quando configuri Autokey in una cartella, le cartelle e i progetti secondari all'interno di questa cartella ereditano la configurazione di Autokey della cartella principale. Quando configuri Autokey in una cartella o un progetto figlio, decidi se ereditare la configurazione dalla risorsa padre o creare una nuova configurazione Autokey per quella risorsa. Le configurazioni di Autokey applicate alle risorse secondarie sostituiscono la configurazione della cartella principale.
La tabella seguente mostra i casi d'uso della configurazione Autokey supportati:
| Tipo di risorsa | Configurazione di Autokey | Descrizione |
|---|---|---|
| Organizzazione | Non applicabile | Autokey non può essere attivato per le organizzazioni. Le risorse secondarie
all'interno di un'organizzazione ereditano una risorsa AutokeyConfig
vuota. Nella console Google Cloud , queste risorse mostrano uno
stato di Autokey Non attivato. Se vuoi
limitare l'utilizzo di Autokey all'interno della tua organizzazione o disattivarlo
completamente, puoi utilizzare le policy dell'organizzazione. Per saperne di più, vedi
Controllare l'utilizzo di Autokey. |
| Cartella | DEDICATED_KEY_PROJECT |
Autokey con archiviazione delle chiavi del progetto dedicato è abilitato per i progetti risorsa all'interno della cartella. Per i progetti risorsa che ereditano questa configurazione, Autokey crea le chiavi nel progetto chiave dedicato. |
| Cartella | RESOURCE_PROJECT |
Autokey con archiviazione delle chiavi nello stesso progetto è abilitato per i progetti risorsa all'interno della cartella. Per i progetti risorsa che ereditano questa configurazione, Autokey crea le chiavi nello stesso progetto delle risorse che proteggono. |
| Cartella | DISABLED |
Autokey è disattivato all'interno della cartella, ma le cartelle secondarie e i progetti possono comunque eseguire l'override di questa configurazione. Se vuoi limitare Autokey all'interno della cartella o disattivarlo completamente, puoi utilizzare le policy dell'organizzazione. Per saperne di più, vedi Controllare l'utilizzo di Autokey. |
| Cartella | KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED |
La cartella eredita la configurazione Autokey dalla cartella o dall'organizzazione padre. |
| Progetto | RESOURCE_PROJECT |
Autokey con archiviazione delle chiavi nello stesso progetto è abilitato per il progetto della risorsa. Per le risorse create in questo progetto, Autokey crea le chiavi nello stesso progetto. |
| Progetto | DISABLED |
Autokey è disattivato per il progetto risorsa. Gli sviluppatori che creano risorse in questo progetto devono creare e eseguire il provisioning delle chiavi manualmente se vogliono utilizzare CMEK per le risorse che creano. |
| Progetto | KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED |
Il progetto eredita la configurazione Autokey dalla cartella padre. |
Prima di iniziare
Prima di poter attivare Autokey con l'archiviazione delle chiavi del progetto dedicato per una cartella, devi disporre di quanto segue:
Una risorsa dell'organizzazione che contiene una cartella in cui vuoi attivare Autokey. Se non hai una cartella in cui vuoi attivare Autokey, puoi crearne una nuova. Se abiliti Autokey in questa cartella, Autokey verrà abilitato per tutti i progetti di risorse all'interno della cartella.
Se hai progetti risorsa in cui vuoi utilizzare Autokey con l'archiviazione delle chiavi in un progetto dedicato, ma non si trovano all'interno di una cartella in cui abiliterai Autokey, puoi spostare i progetti risorsa esistenti in nuove cartelle.
Prima di poter attivare Autokey con l'archiviazione delle chiavi nello stesso progetto, devi disporre di uno dei seguenti elementi:
- Un progetto Google Cloud in cui vuoi attivare Autokey e in cui l'autorizzazione
keyHandles.createnon è bloccata da un criterio di negazione IAM. - Una cartella Google Cloud in cui vuoi abilitare Autokey, che
contiene almeno un progetto in cui l'autorizzazione
keyHandles.createnon è bloccata da un criterio di negazione IAM.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per attivare e configurare Autokey, chiedi all'amministratore di concederti i seguenti ruoli IAM nella cartella, nel progetto o in una risorsa padre:
-
Per attivare Autokey:
- Cloud KMS Autokey Admin (
roles/cloudkms.autokeyAdmin) - Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Cloud KMS Autokey Admin (
-
Per abilitare Autokey con l'archiviazione delle chiavi in un progetto dedicato:
- Folder IAM Admin (
roles/resourcemanager.folderIamAdmin) - Utente account di fatturazione (
roles/billing.user)
- Folder IAM Admin (
-
Per visualizzare la configurazione di Autokey:
Cloud KMS Viewer (
roles/cloudkms.viewer) -
Per visualizzare tutte le configurazioni Autokey effettive:
- Visualizzatore di asset cloud (
roles/cloudasset.viewer) nell'organizzazione - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
- Visualizzatore di asset cloud (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per abilitare e configurare Autokey. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per abilitare e configurare Autokey sono necessarie le seguenti autorizzazioni:
-
Per attivare Autokey:
-
cloudkms.autokeyConfigs.* -
serviceusage.services.enable
-
-
Per abilitare Autokey con l'archiviazione delle chiavi in un progetto dedicato:
-
resourcemanager.folders.get -
resourcemanager.folders.getIamPolicy -
resourcemanager.folders.setIamPolicy -
billing.resourceAssociations.create
-
-
Per visualizzare la configurazione di Autokey:
-
cloudkms.folders.showEffectiveAutokeyConfig -
cloudkms.projects.showEffectiveAutokeyConfig
-
-
Per visualizzare tutte le configurazioni Autokey effettive:
-
cloudasset.assets.query -
serviceusage.services.use
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Configurazione di Terraform
Questa sezione contiene variabili e risorse Terraform di esempio che sono prerequisiti per il resto degli esempi Terraform in questo documento. Se non utilizzi Terraform per creare o gestire le configurazioni Autokey, ignora questa sezione.
Fai clic qui per mostrare o nascondere l'esempio di configurazione di Terraform
Questo esempio completa i seguenti passaggi di configurazione:
- Definisci le variabili utilizzate negli esempi Terraform successivi.
- Crea una cartella delle risorse. Puoi saltare questo passaggio se prevedi di utilizzare solo l'archiviazione delle chiavi nello stesso progetto in singoli progetti.
- Concedi i ruoli di amministratore e utente di Autokey.
variable "organization_ID" { description = "Your Google Cloud Org ID" type = string default = "ORGANIZATION_ID" } variable "billing_account" { description = "Your Google Cloud Billing Account ID" type = string default = "BILLING_ACCOUNT_ID" } /* List the users who should have the authority to enable and configure Autokey at a folder level */ variable "autokey_folder_admins" { type = list(string) default = [AUTOKEY_ADMIN_USER_IDS] } /* List the users who should have the authority to protect their resources with Autokey */ variable "autokey_folder_users" { type = list(string) default = [AUTOKEY_DEVELOPER_USER_IDS] } /* List the users who should have the authority to manage crypto operations in the Autokey key project */ variable "autokey_project_kms_admins" { type = list(string) default = [KEY_PROJECT_ADMIN_USER_IDS] } # Create a new folder resource "google_folder" "autokey_folder" { parent = "organizations/${var.organization_ID}" display_name = "autokey_folder" } /* To use a folder that already exists, omit this block and instead create a variable for the folder ID instead, and then update subsequent resources to use the variable. */ # Set permissions for key admins to use Autokey in this folder resource "google_folder_iam_binding" "autokey_folder_admin" { folder = google_folder.autokey_folder.name role = "roles/cloudkms.autokeyAdmin" members = var.autokey_folder_admins } /* Set permissions for users to protect resources with Autokey in this folder */ resource "google_folder_iam_binding" "autokey_folder_users" { folder = google_folder.autokey_folder.name role = "roles/cloudkms.autokeyUser" members = var.autokey_folder_users }
Sostituisci quanto segue:
BILLING_ACCOUNT_ID: l'ID del tuo account di fatturazione Google Cloud . L'ID account di fatturazione è un valore alfanumerico di 18 caratteri separati da trattini, ad esempio010101-F0FFF0-10XX01.AUTOKEY_ADMIN_USER_IDS: un elenco di indirizzi email per gli utenti che devono disporre del ruolo `roles/cloudkms.autokeyAdmin`, ad esempio"Ariel@example.com", "Charlie@example.com".AUTOKEY_DEVELOPER_USER_IDS: un elenco di indirizzi email per gli utenti che devono disporre del ruolo `roles/cloudkms.autokeyUser`, ad esempio"Kalani@example.com", "Mahan@example.com".KEY_PROJECT_ADMIN_USER_IDS: un elenco di indirizzi email per gli utenti che devono disporre del ruolo `roles/cloudkms.admin`, ad esempio"Sasha@example.com", "Nur@example.com".
Configurare Autokey con l'archiviazione delle chiavi in un progetto dedicato
Quando utilizzi Autokey con l'archiviazione delle chiavi in un progetto dedicato in una cartella, devi scegliere un singolo progetto chiave che contenga tutte le chiavi create da Autokey in quella cartella. Se utilizzi l'archiviazione delle chiavi nello stesso progetto, non hai bisogno di un progetto chiave dedicato. Continua da Abilita Autokey con l'archiviazione delle chiavi nello stesso progetto.
Ti consigliamo di creare un nuovo progetto di chiavi per contenere le risorse Cloud KMS create da Autokey. Devi creare il progetto chiave all'interno della risorsa organizzazione. Se hai già un progetto chiave che vuoi utilizzare per le chiavi create da Autokey, puoi saltare la sezione Crea un progetto chiave e continuare dalla sezione Configura il progetto chiave Autokey in questa pagina.
Il progetto chiave può essere creato all'interno della stessa cartella in cui prevedi di attivare Autokey. Non devi creare altre risorse all'interno del progetto chiave. Se tenti di creare risorse protette da Autokey nel progetto chiave, Autokey rifiuta la richiesta di una nuova chiave.
Se in futuro prevedi di eseguire la migrazione ad Assured Workloads, crea il progetto delle chiavi all'interno della stessa cartella delle risorse protette da queste chiavi.
Se la tua organizzazione utilizza il vincolo della policy dell'organizzazione constraints/gcp.restrictCmekCryptoKeyProjects per garantire che tutte le chiavi CMEK provengano da progetti di chiavi specificati, devi aggiungere il tuo progetto di chiavi all'elenco dei progetti consentiti. Per
maggiori informazioni sulla policy dell'organizzazione CMEK, consulta Policy dell'organizzazione
CMEK.
Crea un progetto chiave
Console
-
Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Per Seleziona organizzazione, seleziona la risorsa Organizzazione in cui vuoi creare un progetto.
- Fai clic su Create project (Crea progetto).
- Nella finestra Nuovo progetto visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione. Il nome del progetto può contenere solo lettere, numeri, virgolette singole, trattini, spazi o punti esclamativi e deve avere una lunghezza compresa tra 4 e 30 caratteri.
- Per Posizione, seleziona la risorsa che vuoi impostare come principale per il progetto della chiave.
- Per completare la creazione del progetto, fai clic su Crea.
gcloud
Crea un nuovo progetto:
gcloud projects create PROJECT_ID \ --PARENT_TYPE=PARENT_IDSostituisci quanto segue:
PROJECT_ID: l'ID del progetto che contiene le chiavi automatizzate.PARENT_TYPE: il tipo di risorsa in cui vuoi creare il nuovo progetto chiave. Inserisciorganizationper creare il nuovo progetto di chiavi in un'organizzazione specifica oppure inseriscifolderper creare il nuovo progetto di chiavi in una cartella specifica.PARENT_ID: l'ID dell'organizzazione o della cartella in cui vuoi creare il progetto chiave.
REST
Crea un nuovo progetto:
curl "https://cloudresourcemanager.googleapis.com/v3/projects/" --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{ "projectId": "PROJECT_ID", "name": "PROJECT_NAME", "parent": "PARENT_TYPE/PARENT_ID" }'Sostituisci quanto segue:
PROJECT_ID: l'identificatore che vuoi utilizzare per il tuo progetto di chiavi dedicato.PROJECT_NAME: il nome che vuoi utilizzare per il progetto di chiavi dedicato.PARENT_TYPE: il tipo di risorsa della risorsa principale in cui vuoi creare il progetto chiave dedicato, ad esempioorganizationsofolders.PARENT_ID": l'identificatore della risorsa principale in cui vuoi creare il progetto con chiave dedicata.
Terraform
Il seguente esempio di Terraform crea un progetto di gestione delle chiavi dedicato nella cartella creata in precedenza.
/* Define the project ID to use for the dedicated key project. The project
ID must be 6 to 30 characters with lowercase letters, digits, hyphens. The
project ID must start with a letter. Trailing hyphens are prohibited */
variable "key_management_project_ID" {
description = "Sets the project ID for the dedicated key project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
type = string
default = "KEY_PROJECT_ID"
}
# Create a key project to store keys created by Autokey
resource "google_project" "key_management_project" {
project_id = var.key_management_project_ID
name = var.key_management_project_ID
billing_account = var.billing_account
folder_id = google_folder.autokey_folder.name
}
output "project_number" {
value = google_project.key_management_project.number
}
Sostituisci KEY_PROJECT_ID con l'ID da utilizzare per il progetto
con chiave dedicata, ad esempio autokey-key-project.
Configurare un blocco sul progetto
Dopo aver creato il progetto Cloud KMS, ti consigliamo di proteggerlo con un blocco (anteprima) per evitare l'eliminazione accidentale. Quando viene applicato un blocco del progetto, l'eliminazione del progetto Cloud KMS viene bloccata finché il blocco non viene rimosso.
Prepara il progetto di gestione dedicato delle chiavi
Console
Abilita l'API Cloud KMS nel progetto chiave.
Se utilizzi un nuovo progetto di chiavi, concedi le autorizzazioni di amministratore Cloud KMS per il progetto di chiavi. Ripeti i seguenti passaggi per concedere il ruolo Amministratore Cloud KMS a te e a ogni altro utente amministratore Cloud KMS:
Nella console Google Cloud , vai alla pagina IAM.
Seleziona il progetto chiave.
Fai clic su Concedi l'accesso, quindi inserisci l'indirizzo email dell'utente.
Seleziona il ruolo Amministratore Cloud KMS.
Fai clic su Salva.
gcloud
Abilita l'API Cloud KMS nel progetto chiave:
gcloud services enable cloudkms.googleapis.comConcedi le autorizzazioni di amministratore Cloud KMS per il progetto di chiavi. Ripeti il comando seguente per concedere il ruolo
roles/cloudkms.admina te e a ogni altro utente amministratore Cloud KMS:gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAILSostituisci quanto segue:
PROJECT_NUMBER: il numero del progetto chiave.KEY_ADMIN_EMAIL: l'indirizzo email dell'utente responsabile della gestione delle chiavi Cloud KMS.
REST
Abilita l'API Cloud KMS nel progetto chiave:
curl "https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/cloudkms.googleapis.com:enable" \ --request "POST" \ --header "authorization: Bearer TOKEN"Sostituisci
PROJECT_IDcon l'identificatore del tuo progetto di chiavi dedicato.Recupera il criterio IAM attuale per il progetto di chiavi dedicate.
curl "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy" \ --request POST \ --header "authorization: Bearer TOKEN" --header "Content-Type: application/json; charset=utf-8" \ --data '{"options": {"requestedPolicyVersion": 3}}'La risposta contiene la policy di autorizzazione corrente del progetto.
Modifica la policy di autorizzazione restituita per aggiungere il ruolo
roles/cloudkms.adminper ogni utente amministratore di Cloud KMS, incluso te, utilizzando come guida il seguente esempio di associazione di ruolo:json { "role": "roles/cloudkms.admin", "members": [ "PRINCIPAL_LIST" ], }Sostituisci
PRINCIPAL_LISTcon un elenco separato da virgole di principal utente, ad esempioadmin_1@example.com,admin_2@example.com.Questa modifica non ha effetto finché non imposti la nuova policy.
Imposta la nuova policy di autorizzazione.
curl "https://cloudresourcemanager.googleapis.com/1/projects/PROJECT_ID:setIamPolicy" \ --request POST \ --header "authorization: Bearer TOKEN" \ --header "Content-Type: application/json; charset=utf-8" \ --data 'ALLOW_POLICY'Sostituisci quanto segue:
PROJECT_ID: l'identificatore del progetto di chiavi dedicato.ALLOW_POLICY: il file JSON della policy di autorizzazione aggiornata che hai creato nel passaggio precedente, incluse le concessioni di ruolo esistenti e quelle che hai appena aggiunto.
Terraform
Il seguente esempio di Terraform abilita l'API Cloud KMS nel progetto di chiave dedicato e concede il ruolo roles/cloudkms.admin ai principal amministratore Cloud KMS identificati in precedenza.
# Enable the Cloud KMS API in the key project
resource "google_project_service" "enable_api" {
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
disable_on_destroy = false
disable_dependent_services = false
depends_on = [google_project.key_management_project]
}
/* Grant role for Cloud KMS admins to use Autokey in the
dedicated key project */
resource "google_project_iam_binding" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
members = var.autokey_project_kms_admins
depends_on = [ google_project.key_management_project ]
}
Abilita Cloud KMS Autokey in una cartella di risorse
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona la cartella in cui vuoi attivare Autokey con l'archiviazione delle chiavi del progetto dedicato.
- Nella sezione Autokey, fai clic su Gestisci.
- Fai clic su Configura.
- In Origine configurazione, seleziona Configura per cartella.
- In Configurazione, seleziona Abilita l'archiviazione delle chiavi del progetto dedicato.
Seleziona il progetto chiave e poi fai clic su Invia.
Un messaggio conferma che Cloud KMS Autokey è abilitato nella cartella.
gcloud
Crea un file YAML che contenga quanto segue
AutokeyConfig:name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: DEDICATED_KEY_PROJECT keyProject: projects/PROJECT_IDSostituisci quanto segue:
FOLDER_NUMBER: il numero della cartella in cui vuoi attivare Autokey con l'archiviazione delle chiavi del progetto dedicato.PROJECT_ID: l'identificatore del progetto di chiavi dedicato.
Applica
AutokeyConfigalla cartella:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHSostituisci AUTOKEY_CONFIG_PATH con il percorso del file YAML che hai creato nel passaggio precedente.
REST
Crea il file AutokeyConfig per la cartella in cui vuoi abilitare
Autokey con l'archiviazione delle chiavi del progetto dedicato:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject,keyProjectResolutionMode" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProject": "projects/PROJECT_ID", "keyProjectResolutionMode": "DEDICATED_KEY_PROJECT"}'
Sostituisci quanto segue:
FOLDER_ID: l'ID della cartella in cui vuoi attivare Autokey.PROJECT_ID: l'ID del progetto chiave.
Terraform
/* Enable AutokeyConfig for dedicated-project key storage in the
folder */
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = "projects/${google_project.key_management_project.project_id}"
key_project_resolution_mode = "DEDICATED_KEY_PROJECT"
/* For folder scope, valid values are DEDICATED_KEY_PROJECT,
RESOURCE_PROJECT, and DISABLED. With DEDICATED_KEY_PROJECT, define the
key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
be created in the same project as the protected resource. */
}
Configura l'agente di servizio Cloud KMS
L'agente di servizio Cloud KMS per un progetto di chiavi crea chiavi e applica i binding dei criteri IAM durante la creazione delle risorse, per conto di un amministratore Cloud KMS umano. Per poter creare e assegnare chiavi, l'agente di servizio Cloud KMS richiede le autorizzazioni di amministratore Cloud KMS.
gcloud
Crea l'agente di servizio Cloud KMS:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBERSostituisci
PROJECT_NUMBERcon il numero di progetto del progetto chiave.L'output è simile al seguente:
Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.comL'output del comando indica che l'account di servizio Cloud EKM (con il sottodominio
gcp-sa-ekms) è stato creato. Tuttavia, il comando crea anche il service agent Cloud KMS (con il sottodominiogcp-sa-cloudkms), che è il service agent che utilizzerai in seguito in queste istruzioni.Concedi le autorizzazioni di amministratore Cloud KMS al service agent:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.comSostituisci
PROJECT_NUMBERcon il numero di progetto del progetto chiave.
Terraform
# Create the Cloud KMS service agent
resource "google_project_service_identity" "KMS_Service_Agent" {
provider = google-beta
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
depends_on = [google_project.key_management_project]
}
/* Grant role for the Cloud KMS service agent to use delegated
Cloud KMS administrator permissions */
resource "google_project_iam_member" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
member = "serviceAccount:service-${google_project.key_management_project.number}@gcp-sa-cloudkms.iam.gserviceaccount.com"
}
Abilita Autokey con l'archiviazione delle chiavi nello stesso progetto
Quando utilizzi Autokey con l'archiviazione delle chiavi nello stesso progetto, Autokey crea le chiavi all'interno dello stesso progetto delle risorse che proteggono. I progetti che utilizzano l'archiviazione delle chiavi nello stesso progetto possono esistere all'interno di cartelle che utilizzano l'archiviazione delle chiavi in un progetto dedicato. Quando Autokey è abilitato in un progetto, la configurazione Autokey a livello di progetto sostituisce la configurazione Autokey nella cartella padre.
Per abilitare Autokey con l'archiviazione delle chiavi nello stesso progetto per un singolo progetto, completa i seguenti passaggi:
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona il progetto in cui vuoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto.
- Nella sezione Autokey, fai clic su Gestisci.
- Fai clic su Configura.
- In Origine della configurazione, seleziona Configura per il progetto.
- In Configurazione, seleziona Abilita l'archiviazione delle chiavi nello stesso progetto.
Fai clic su Invia.
Un messaggio conferma che Cloud KMS Autokey è abilitato nel progetto.
gcloud
Crea un file YAML che contenga quanto segue
AutokeyConfig:name: projects/PROJECT_ID/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Sostituisci
PROJECT_IDcon l'identificatore del progetto in cui vuoi abilitare Autokey con l'archiviazione delle chiavi nello stesso progetto.Applica
AutokeyConfigal progetto:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHSostituisci AUTOKEY_CONFIG_PATH con il percorso del file YAML che hai creato nel passaggio precedente.
Abilita l'API Cloud KMS sul progetto:
gcloud services enable cloudkms.googleapis.com
REST
Utilizzando l'API REST, crea
AutokeyConfigper il progetto in cui vuoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \ --request "PATCH" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'Sostituisci
PROJECT_IDcon l'ID del progetto in cui vuoi attivare Autokey.In gcloud CLI, abilita l'API Cloud KMS nel progetto:
gcloud services enable cloudkms.googleapis.com
Terraform
Per abilitare Autokey con l'archiviazione delle chiavi nello stesso progetto in un singolo progetto, utilizza una risorsa autokey_config_project simile alla seguente:
/* To set autokey config for a project */
resource "google_kms_autokey_config" "autokey_config_project" {
provider = google-beta
project = "projects/${google_project.key_management_project.project_id}"
key_project_resolution_mode = "RESOURCE_PROJECT"
# For project scope, valid values are RESOURCE_PROJECT or DISABLED
}
Per abilitare Autokey con l'archiviazione delle chiavi nello stesso progetto per tutti i progetti all'interno di una cartella, completa i seguenti passaggi:
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona la cartella in cui vuoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto.
- Fai clic su Configura.
- In Origine configurazione, seleziona Configura per cartella.
- In Configurazione, seleziona Abilita l'archiviazione delle chiavi nello stesso progetto.
Fai clic su Invia.
Un messaggio conferma che Cloud KMS Autokey è abilitato nella cartella.
gcloud
Crea un file YAML che contenga quanto segue
AutokeyConfig:name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Sostituisci
FOLDER_NUMBERcon il numero della cartella in cui vuoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto.Applica
AutokeyConfigalla cartella:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHSostituisci AUTOKEY_CONFIG_PATH con il percorso del file YAML che hai creato nel passaggio precedente.
REST
Utilizzando l'API REST, crea
AutokeyConfigper la cartella in cui vuoi attivare Autokey con l'archiviazione delle chiavi nello stesso progetto:curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \ --request "PATCH" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'Sostituisci
FOLDER_IDcon l'ID della cartella in cui vuoi abilitare Autokey. Questo comando abilita Autokey con l'archiviazione delle chiavi nello stesso progetto per tutti i progetti all'interno della cartella.In gcloud CLI, attiva l'API Cloud KMS in ogni progetto in cui vuoi utilizzare Autokey con l'archiviazione delle chiavi nello stesso progetto:
gcloud services enable cloudkms.googleapis.comPuoi abilitare l'API Cloud KMS in ogni progetto contemporaneamente oppure abilitarla nei singoli progetti in base alle esigenze. I tuoi sviluppatori non possono utilizzare Autokey nel progetto finché l'API Cloud KMS non è abilitata per quel progetto.
Terraform
Per abilitare Autokey con l'archiviazione delle chiavi nello stesso progetto in tutti i progetti di una cartella, utilizza una risorsa folder_config simile alla seguente:
/* Enable AutokeyConfig on a folder */
resource "google_kms_autokey_config" "folder_config" {
provider = google-beta
folder = google_folder.autokey_folder.name
key_project_resolution_mode = "RESOURCE_PROJECT"
/* For folder scope, valid values are DEDICATED_KEY_PROJECT,
RESOURCE_PROJECT, or DISABLED. With DEDICATED_KEY_PROJECT, define the
key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
be created in the same project as the protected resource. */
}
Cancella configurazione Autokey
Puoi cancellare la configurazione Autokey in una cartella o un progetto per ripristinare l'utilizzo della configurazione della cartella padre.
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona la cartella o il progetto in cui vuoi cancellare la configurazione Autokey.
- Nella sezione Autokey, fai clic su Gestisci.
- Fai clic su Configura.
- In Origine configurazione, seleziona Eredita.
- Fai clic su Invia.
gcloud
Crea un file YAML che contenga quanto segue
AutokeyConfig:name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED keyProject:Sostituisci quanto segue:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi cancellare la configurazione di Autokey. Da impostare sufoldersoprojects.RESOURCE_ID: l'identificatore della cartella in cui vuoi cancellare la configurazione di Autokey.
Applica
AutokeyConfigalla cartella o al progetto:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHSostituisci AUTOKEY_CONFIG_PATH con il percorso del file YAML che hai creato nel passaggio precedente.
REST
Deseleziona AutokeyConfig per la cartella o il progetto in cui vuoi ripristinare la configurazione Autokey ereditata:
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProjectResolutionMode": "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED", "keyProject": ""}'
Sostituisci quanto segue:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi disattivare Autokey. Da impostare sufoldersoprojects.RESOURCE_ID: l'identificatore della cartella in cui vuoi disattivare Autokey con l'archiviazione delle chiavi nello stesso progetto.
Terraform
# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = ""
key_project_resolution_mode = "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED"
}
Visualizza la configurazione Autokey effettiva
Puoi visualizzare la configurazione Autokey effettiva di una cartella o di un progetto. La configurazione Autokey effettiva indica quanto segue:
- Indica se Autokey è abilitato per la risorsa selezionata.
- Se Autokey è abilitato, indica se la risorsa selezionata utilizza l'archiviazione delle chiavi in un progetto dedicato o nello stesso progetto.
- Se la risorsa selezionata utilizza l'archiviazione delle chiavi in un progetto dedicato, l'identificatore della risorsa del progetto di chiavi dedicato.
Indica se questa configurazione Autokey viene ereditata da una cartella padre o configurata nella risorsa selezionata.
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona la cartella o il progetto in cui vuoi visualizzare le impostazioni di Autokey.
- Nella sezione Autokey, fai clic su Gestisci.
gcloud
Visualizza l'AutokeyConfig effettivo:
gcloud kms autokey-config show-effective-config \
--RESOURCE_TYPE=RESOURCE_ID
Sostituisci quanto segue:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi visualizzare la configurazione Autokey effettiva. Da impostare sufolderoproject.RESOURCE_ID: l'identificatore della risorsa in cui vuoi visualizzare la configurazione Autokey effettiva.
L'output è simile al seguente:
keyProject: KEY_PROJECT
keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE
source:
name: RESOURCE_IDENTIFIER
Questo output include i seguenti valori:
KEY_PROJECT: l'identificatore della risorsa del progetto chiave, ad esempioprojects/PROJECT_ID. Se Autokey è disabilitata o se la risorsa è una cartella in cui è abilitata l'archiviazione delle chiavi nello stesso progetto, questo campo viene omesso.KEY_PROJECT_RESOLUTION_MODE: ilkeyProjectResolutionModedella risorsa, ad esempioRESOURCE_PROJECT,DEDICATED_KEY_PROJECToDISABLED. Se Autokey non è abilitato nella risorsa o in qualsiasi risorsa padre, questo campo viene omesso.RESOURCE_IDENTIFIER: l'identificatore della risorsa in cui è configuratoAutokeyConfig. In questo modo puoi determinare seAutokeyConfigviene ereditato da una risorsa padre o configurato nella risorsa su cui hai eseguito la query.
REST
Visualizza il AutokeyConfig effettivo per una cartella o un progetto:
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:showEffectiveAutokeyConfig" \
--request "GET" \
--header "authorization: Bearer TOKEN"
```
Replace the following:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi visualizzare la configurazione di Autokey. Da impostare sufoldersoprojects.RESOURCE_ID: l'identificatore della risorsa in cui vuoi visualizzare la configurazione di Autokey.
L'output è simile al seguente:
{
"keyProject": KEY_PROJECT,
"keyProjectResolutionMode": KEY_PROJECT_RESOLUTION_MODE,
"source": {
RESOURCE_IDENTIFIER
}
}
Questo output include i seguenti valori:
KEY_PROJECT: l'identificatore della risorsa del progetto chiave, ad esempioprojects/PROJECT_ID. Se Autokey è disabilitato o se la risorsa è una cartella in cui è abilitata l'archiviazione delle chiavi nello stesso progetto, questo campo viene omesso.KEY_PROJECT_RESOLUTION_MODE: ilkeyProjectResolutionModedella risorsa, ad esempioRESOURCE_PROJECT,DEDICATED_KEY_PROJECToDISABLED. Se Autokey non è abilitato nella risorsa o in qualsiasi risorsa padre, questo campo viene omesso.RESOURCE_IDENTIFIER: l'identificatore della risorsa in cui è configuratoAutokeyConfig. In questo modo puoi determinare seAutokeyConfigviene ereditato da una risorsa padre o configurato nella risorsa su cui hai eseguito la query.
SQL
Puoi utilizzare una query SQL con Cloud Asset Inventory per valutare la configurazione Autokey effettiva per tutti i progetti all'interno di una cartella o di un'organizzazione.
Imposta le variabili di ambiente bash per l'ID organizzazione e l'ambito di ricerca.
export ORG_ID="ORGANIZATION_ID" export TARGET_SCOPE="RESOURCE_TYPE/RESOURCE_ID"Sostituisci quanto segue:
ORGANIZATION_ID: l'identificatore numerico della tua organizzazione.RESOURCE_TYPE: il tipo di risorsa in cui vuoi visualizzare le configurazioni Autokey effettive. Impostaorganizationsper visualizzare le configurazioni per tutti i progetti nella tua organizzazione ofoldersper visualizzare le configurazioni per tutti i progetti all'interno di una cartella specifica.RESOURCE_ID: l'identificatore numerico dell'organizzazione o della cartella in cui vuoi visualizzare le configurazioni Autokey effettive.
Utilizza il comando
gcloud asset queryper eseguire la query.gcloud asset query \ --organization="${ORG_ID}" \ --statement=" WITH ProjectConfigs AS ( SELECT p.name AS project_name, ARRAY_AGG( STRUCT( ancestor AS config_source, c.resource.data.state AS state, c.resource.data.keyProjectResolutionMode AS resolution_mode, c.resource.data.keyProject AS key_project ) ORDER BY offset LIMIT 1 )[SAFE_OFFSET(0)] AS effective_config FROM STANDARD_METADATA p CROSS JOIN UNNEST(p.ancestors) AS ancestor WITH OFFSET AS offset JOIN cloudkms_googleapis_com_AutokeyConfig c ON ancestor = REGEXP_REPLACE(c.name, r'^//cloudkms\.googleapis\.com/([^/]+/\d+)/autokeyConfig$', r'\1') WHERE p.assetType = 'cloudresourcemanager.googleapis.com/Project' GROUP BY p.name ) SELECT REPLACE(r.name, '//cloudresourcemanager.googleapis.com/', '') AS project_name, p.resource.data.projectId AS project_id, COALESCE(rc.effective_config.config_source, 'No Autokey') AS effective_config_source, rc.effective_config.state AS autokey_config_state, rc.effective_config.resolution_mode AS resolution_mode, CASE WHEN rc.effective_config.resolution_mode = 'RESOURCE_PROJECT' THEN p.resource.data.projectId ELSE COALESCE(REPLACE(rc.effective_config.key_project, 'projects/', ''), 'No Key Project') END AS key_project FROM STANDARD_METADATA r LEFT JOIN ProjectConfigs rc ON r.name = rc.project_name LEFT JOIN cloudresourcemanager_googleapis_com_Project p ON r.name = p.name WHERE r.assetType = 'cloudresourcemanager.googleapis.com/Project' AND '${TARGET_SCOPE}' IN UNNEST(r.ancestors) "L'output include i seguenti campi:
project_number: l'identificatore numerico completo di ogni risorsa progetto, ad esempioprojects/PROJECT_NUMBER.project_id: l'identificatore di ogni progetto, ad esempioPROJECT_ID.effective_config_source: l'identificatore della risorsa in cui è impostata la configurazione Autokey del progetto, ad esempiofolders/FOLDER_NUMBERse la configurazione viene ereditata da una cartella padre oprojects/PROJECT_NUMBERse la configurazione è impostata nel progetto. Se il progetto non ha o non eredita unAutokeyConfig, questo campo mostraNo Autokey.autokey_config_state: indica se una configurazione Autokey èACTIVEnella cartella, anche se la configurazione èDISABLED. Se il progetto non ha o non eredita unAutokeyConfig, questo campo è vuoto.resolution_mode: la modalità di risoluzione del progetto chiave della configurazione Autokey effettiva nel progetto.key_project: indica dove Autokey crea le chiavi per le risorse nel progetto, ad esempioprojects/KEY_PROJECT_IDquando il progetto utilizza l'archiviazione delle chiavi in un progetto dedicato oRESOURCE_PROJECT_IDquando il progetto utilizza l'archiviazione delle chiavi nello stesso progetto. Quando Autokey non è abilitato nel progetto, questo campo mostraNo key project.
Disattivare Autokey
Gli stessi ruoli che possono attivare Autokey possono disattivarla. Per disattivare
Autokey, puoi deselezionare AutokeyConfig o impostare
feedbackKeyProjectResolutionMode su DISABLED. Puoi disattivare
Autokey in una cartella o in un progetto. Puoi anche disabilitare Autokey
per singoli progetti all'interno di una cartella in cui Autokey è abilitato.
Dopo aver disattivato Autokey per una cartella o un progetto, il service agent Cloud KMS non può più creare chiavi per gli sviluppatori quando creano risorse in quella cartella o in quel progetto.
Se vuoi disattivare completamente Autokey, ti consigliamo di rimuovere anche
i binding IAM per i ruoli roles/cloudkms.autokeyAdmin e
roles/cloudkms.autokeyUser.
La disattivazione di Autokey non influisce sulle chiavi esistenti nel progetto di chiavi. Puoi continuare a utilizzare queste chiavi per proteggere le tue risorse.
Disattivare Autokey per una cartella o un progetto
Console
-
Nella console Google Cloud , vai alla pagina Controlli di gestione delle chiavi.
- Nel selettore di contesto, seleziona la cartella o il progetto in cui vuoi disattivare Autokey.
- Nella sezione Autokey, fai clic su Gestisci.
- Fai clic su Configura.
- In Origine configurazione, seleziona Configura per cartella o Configura per progetto.
- In Configurazione, seleziona Disabilita Autokey per la cartella o Disabilita Autokey per il progetto.
Fai clic su Invia.
Viene visualizzato un messaggio che ti chiede di confermare che vuoi disattivare Autokey.
Per disattivare Autokey, fai clic su Conferma.
Un messaggio conferma che Cloud KMS Autokey è disattivato.
gcloud
Crea un file YAML che contenga quanto segue
AutokeyConfig:name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig keyProjectResolutionMode: DISABLED keyProject:Sostituisci quanto segue:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi disattivare Autokey. Da impostare sufoldersoprojects.RESOURCE_ID: l'identificatore della cartella in cui vuoi disattivare Autokey con l'archiviazione delle chiavi nello stesso progetto.
Applica
AutokeyConfigalla cartella o al progetto:gcloud kms autokey-config update AUTOKEY_CONFIG_PATHSostituisci AUTOKEY_CONFIG_PATH con il percorso del file YAML che hai creato nel passaggio precedente.
REST
Aggiorna AutokeyConfig per la cartella o il progetto in cui vuoi
disattivare Autokey:
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProjectResolutionMode": "DISABLED", "keyProject": ""}'
Sostituisci quanto segue:
RESOURCE_TYPE: il tipo di risorsa in cui vuoi disattivare Autokey. Da impostare sufoldersoprojects.RESOURCE_ID: l'identificatore della cartella in cui vuoi disattivare Autokey con l'archiviazione delle chiavi nello stesso progetto.
Terraform
# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = ""
key_project_resolution_mode = "DISABLED"
}
Revocare i ruoli Autokey
La disattivazione di Autokey tramite l'aggiornamento di AutokeyConfig impedisce all'agente di servizio Cloud KMS di eseguire il provisioning di nuove chiavi nel progetto o nella cartella interessati. Tuttavia, se vuoi disattivare completamente Autokey, ti
consigliamo di rimuovere anche i binding IAM per i ruoli
roles/cloudkms.autokeyAdmin e roles/cloudkms.autokeyUser.
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyAdmin:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyAdmin \ --member=user:USER_EMAILSostituisci quanto segue:
FOLDER_ID: l'ID della cartella in cui hai disattivato Autokey.USER_EMAIL: l'indirizzo email dell'utente a cui vuoi revocare l'autorizzazione per gestire Autokey.
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyUsera livello di cartella:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILSostituisci quanto segue:
FOLDER_ID: l'ID della cartella in cui hai disattivato Autokey.USER_EMAIL: l'indirizzo email dell'utente a cui vuoi revocare l'autorizzazione a utilizzare Autokey.
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyUsera livello di progetto:gcloud projects remove-iam-policy-binding \ RESOURCE_PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILSostituisci quanto segue:
RESOURCE_PROJECT_NUMBER: il numero di progetto di un progetto di risorse all'interno della cartella in cui hai disattivato Autokey.USER_EMAIL: l'indirizzo email dell'utente a cui vuoi revocare l'autorizzazione a utilizzare Autokey.
(Facoltativo) Se non prevedi di continuare a utilizzare il progetto chiave per Autokey per altre cartelle, revoca il ruolo
roles/cloudkms.adminper il service agent Cloud KMS:gcloud projects remove-iam-policy-binding \ KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.comSostituisci
KEY_PROJECT_NUMBERcon l'ID numerico del progetto chiave.(Facoltativo) Se non prevedi di continuare a utilizzare le chiavi create all'interno del progetto di chiavi, revoca il ruolo
roles/cloudkms.adminper l'amministratore Cloud KMS:gcloud projects remove-iam-policy-binding \ KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAILSostituisci quanto segue:
KEY_PROJECT_NUMBER: il numero del progetto chiave.KEY_ADMIN_EMAIL: l'indirizzo email dell'utente per cui vuoi revocare l'autorizzazione a configurare Autokey.
Passaggi successivi
- Scopri di più su quando utilizzare Autokey.
- Scopri di più su come funziona Autokey.
- Scopri come controllare l'utilizzo di Autokey.
- Ora gli sviluppatori di Autokey possono creare risorse protette utilizzando Autokey.