Questa pagina mostra come abilitare e configurare la chiave automatica di Cloud KMS in una cartella di risorse. Per maggiori informazioni su Autokey, consulta la Panoramica delle chiavi automatiche. I passaggi in questa pagina devono essere completati da un amministratore della sicurezza.
Prima di iniziare
Per poter abilitare la chiave automatica di Cloud KMS, devi disporre di quanto segue:
- Una risorsa dell'organizzazione contenente una cartella in cui vuoi abilitare Autokey. Se non hai una cartella in cui vuoi abilitare Autokey, puoi creare una nuova cartella di risorse. L'abilitazione di Autokey in questa cartella abilita Autokey per tutti i progetti di risorse all'interno della cartella.
- Se hai progetti di risorse in cui vuoi utilizzare Autokey, ma non si trovano all'interno di una cartella in cui attiverai Autokey, puoi spostare i progetti di risorse esistenti in nuove cartelle.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per abilitare e configurare Autokey, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'organizzazione o nella cartella:
-
Amministratore chiave automatica Cloud KMS (
roles/cloudkms.autokeyAdmin
) -
Amministratore IAM cartella (
roles/resourcemanager.folderIamAdmin
) -
Utente account di fatturazione (
roles/billing.user
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per abilitare e configurare la chiave automatica. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per abilitare e configurare la chiave automatica sono necessarie le seguenti autorizzazioni:
-
cloudkms.autokeyConfigs.*
-
cloudkms.projects.showEffectiveAutokeyConfig
-
resourcemanager.folders.get
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
billing.resourceAssociations.create
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Decidi come attivare la chiave automatica
Puoi abilitare Autokey come parte della tua strategia Infrastructure as a Service utilizzando Terraform per apportare le modifiche richieste alla configurazione. Se vuoi utilizzare Terraform per abilitare Autokey, consulta Abilitare la chiave automatica utilizzando Terraform in questa pagina. Se non vuoi usare Terraform, segui le istruzioni nella prossima sezione.
Configura il progetto chiave
Ti consigliamo di creare un nuovo progetto chiave che contenga le risorse Cloud KMS create da Autokey. Devi creare il progetto chiave all'interno della risorsa dell'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 da Configurare il progetto di chiavi Autokey in questa pagina.
Il progetto chiave può essere creato all'interno della stessa cartella in cui prevedi di abilitare Autokey. Non devi creare altre risorse all'interno del progetto chiave. Se tenti di creare risorse protette da Autokey nel progetto di chiavi, Autokey rifiuta la richiesta di una nuova chiave.
Se in futuro vorrai eseguire la migrazione ad Assured Workloads, crea il progetto chiave all'interno della stessa cartella delle risorse protette da queste chiavi.
Se la tua organizzazione utilizza il vincolo del criterio dell'organizzazione constraints/gcp.restrictCmekCryptoKeyProjects
per garantire che tutte le CMEK provengano da progetti chiave specificati, devi aggiungere il progetto della chiave all'elenco dei progetti consentiti. Per saperne di più sul criterio dell'organizzazione CMEK, vedi i criteri dell'organizzazione CMEK.
Crea un progetto chiave
Console
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- In 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 di un progetto può contenere solo lettere, numeri, virgolette singole, trattini, spazi o punti esclamativi e deve essere compreso tra 4 e 30 caratteri.
- In Località, seleziona la risorsa che vuoi impostare come padre del progetto di chiavi.
- Per completare la creazione del progetto, fai clic su Crea.
gcloud
Crea un nuovo progetto:
gcloud projects create PROJECT_ID \ --PARENT_TYPE=PARENT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene il keyring.PARENT_TYPE
: il tipo di risorsa in cui vuoi creare il nuovo progetto chiave. Inserisciorganization
per creare il nuovo progetto chiave in una determinata organizzazione oppurefolder
per creare il nuovo progetto chiave in una determinata cartella.PARENT_ID
: l'ID dell'organizzazione o della cartella in cui vuoi creare il progetto chiave.
Prepara il progetto chiave Autokey
Console
Abilita l'API Cloud KMS nel tuo progetto chiave.
Se utilizzi un nuovo progetto di chiavi, concedi le autorizzazioni di amministratore di Cloud KMS per il progetto di chiave agli utenti amministratore di 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 tuo progetto chiave:
gcloud services enable cloudkms.googleapis.com
Concedi le autorizzazioni di amministratore di Cloud KMS per il progetto chiave agli utenti amministratore di Cloud KMS:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAIL
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progetto chiave.KEY_ADMIN_EMAIL
: l'indirizzo email dell'utente responsabile della gestione delle chiavi Cloud KMS.
Abilita la chiave automatica di Cloud KMS su una cartella di risorse
Console
Nella console Google Cloud, vai alla pagina Controlli KMS.
Dal selettore contesto, seleziona la cartella in cui vuoi abilitare Autokey.
Fai clic su Abilita.
Seleziona il progetto chiave e fai clic su Invia.
Un messaggio conferma che la chiave automatica di Cloud KMS è abilitata nella cartella.
API
Crea il AutokeyConfig
per la cartella in cui vuoi abilitare la chiave automatica:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"key_project": "projects/PROJECT_ID"}'
Sostituisci quanto segue:
FOLDER_ID
: l'ID della cartella in cui vuoi abilitare Autokey.PROJECT_ID
: l'ID del progetto chiave.
Configura l'agente di servizio Cloud KMS
L'agente di servizio Cloud KMS per un progetto chiave crea chiavi e applica associazioni di 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 di Cloud KMS.
Crea l'agente di servizio Cloud KMS:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBER
Sostituisci
PROJECT_NUMBER
con il numero del progetto chiave.Concedi le autorizzazioni di amministratore di Cloud KMS all'agente di servizio:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
Sostituisci
PROJECT_NUMBER
con il numero del progetto chiave.
Concedi ruoli utente con chiave automatica
Prima che i tuoi sviluppatori possano utilizzare Autokey, devi concedere loro il ruolo richiesto. Puoi concedere il ruolo a livello di cartella o di progetto. Questo ruolo consente agli sviluppatori di richiedere chiavi all'agente di servizio Cloud KMS durante la creazione di risorse in quella cartella o progetto.
Scegli uno dei seguenti passaggi o entrambi:
Concedi il ruolo
roles/cloudkms.autokeyUser
a livello di cartella:gcloud resource-manager folders add-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Sostituisci quanto segue:
FOLDER_ID
: l'ID della cartella in cui vuoi abilitare la chiave automatica.USER_EMAIL
: l'indirizzo email dell'utente a cui vuoi concedere l'autorizzazione per utilizzare la chiave automatica.
Concedi il ruolo
roles/cloudkms.autokeyUser
a livello di progetto:gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto di risorsa.USER_EMAIL
: l'indirizzo email dell'utente a cui vuoi concedere l'autorizzazione per utilizzare la chiave automatica.
Ora gli sviluppatori Autokey possono creare chiavi on demand. Per scoprire come creare risorse protette utilizzando chiavi create on demand da Autokey, consulta Creare risorse protette utilizzando Autokey.
Abilita Autokey utilizzando Terraform
Il seguente esempio di Terraform automatizza i seguenti passaggi di configurazione:
- crea una cartella di risorse
- Crea un progetto chiave
- Concedere autorizzazioni utente
- Configura l'agente di servizio Cloud KMS
- Attiva chiave automatica
Devi creare progetti di risorse separatamente all'interno della cartella delle risorse.
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]
}
/* The project ID to use for the 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 Key Management Project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
type = string
default = "KEY_PROJECT_ID"
}
# Create a new folder
resource "google_folder" "autokey_folder" {
parent = "organizations/${var.organization_ID}"
display_name = "autokey_folder"
}
# 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
}
# 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
}
# Grant role for Cloud KMS admins to use Autokey in the 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 ]
}
# 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]
}
# Create 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 admin 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"
}
/* Enable AutokeyConfig in this folder */
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = google_project.key_management_project.project_id
}
Sostituisci quanto segue:
BILLING_ACCOUNT_ID
: il tuo ID account di fatturazione Google Cloud. L'ID account di fatturazione è un valore alfanumerico di 18 caratteri separato da trattini, ad esempio010101-F0FFF0-10XX01
.AUTOKEY_ADMIN_USER_IDS
: un elenco di indirizzi email degli utenti che dovrebbero avere il ruoloroles/cloudkms.autokeyAdmin
, ad esempio"Ariel@example.com", "Charlie@example.com"
.AUTOKEY_DEVELOPER_USER_IDS
: un elenco di indirizzi email degli utenti che dovrebbero avere il ruoloroles/cloudkms.autokeyUser
, ad esempio"Kalani@example.com", "Mahan@example.com"
.KEY_PROJECT_ADMIN_USER_IDS
: un elenco di indirizzi email degli utenti che dovrebbero avere il ruoloroles/cloudkms.admin
, ad esempio"Sasha@example.com", "Nur@example.com"
.KEY_PROJECT_ID
: l'ID da utilizzare per il progetto chiave, ad esempioautokey-key-project
.
Applica utilizzo della chiave automatica
Se vuoi applicare in modo forzato l'utilizzo di Autokey all'interno di una cartella, puoi combinare i controlli dell'accesso IAM con i criteri dell'organizzazione CMEK. Questo funziona rimuovendo le autorizzazioni di creazione delle chiavi da entità diverse dall'agente di servizio Cloud KMS e richiedendo quindi che tutte le risorse siano protette da CMEK mediante il progetto di chiavi Autokey.
Per applicare l'utilizzo di Autokey all'interno di una cartella, segui questi passaggi:
Rimuovi l'accesso per creare manualmente le chiavi nel progetto chiave. Se non è possibile creare manualmente le chiavi, in questo progetto è possibile creare solo le chiavi create da Autokey. Per maggiori informazioni sul controllo dell'accesso, consulta Controllo dell'accesso con IAM.
Imposta un criterio dell'organizzazione nella cartella per richiedere che le risorse siano protette con una CMEK utilizzando il vincolo
constraints/gcp.restrictNonCmekServices
. Per saperne di più, consulta Richiedere la protezione tramite CMEK.Imposta un criterio dell'organizzazione nella cartella per richiedere che le chiavi utilizzate per CMEK provengano dal progetto della chiave Autokey che utilizza il vincolo
constraints/gcp.restrictCmekCryptoKeyProjects
. Per saperne di più, consulta Limitare l'utilizzo delle chiavi Cloud KMS per la CMEK.
Disattiva chiave automatica
La chiave automatica di Cloud KMS è abilitata e disabilitata a livello di cartella. Gli stessi ruoli che possono abilitare Autokey per una cartella possono disabilitare Autokey per quella cartella. Per disabilitare Autokey in una cartella, devi cancellare il
AutokeyConfig
per rimuovere l'associazione tra la cartella e il
progetto chiave Autokey.
Una volta rimossa la configurazione della chiave automatica nella cartella, l'agente di servizio Cloud KMS non potrà più creare chiavi per gli sviluppatori quando creano risorse nella cartella. La rimozione del collegamento tra la cartella e il progetto chiave disabilita Autokey nella cartella. Tuttavia, ti consigliamo di rimuovere anche le associazioni IAM per i ruoli roles/cloudkms.autokeyAdmin
e roles/cloudkms.autokeyUser
.
La disattivazione della chiave automatica non influisce sulle chiavi esistenti nel progetto della chiave. Puoi continuare a utilizzare queste chiavi per proteggere le tue risorse.
Cancella AutokeyConfig
Console
Nella console Google Cloud, vai alla pagina Controlli KMS.
Dal selettore contesto, seleziona la cartella in cui vuoi disattivare Autokey.
Fai clic su Disattiva.
Viene visualizzato un messaggio che ti chiede di confermare la disattivazione della Chiave automatica.
Per disattivare Autokey, fai clic su Conferma.
Un messaggio conferma che la chiave automatica di Cloud KMS è disabilitata nella cartella.
API
Cancella AutokeyConfig
per la cartella in cui vuoi disabilitare la chiave automatica:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{}'
Sostituisci quanto segue:
FOLDER_ID
: l'ID della cartella in cui vuoi disattivare la chiave automatica.
Revoca ruoli di chiave automatica
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyAdmin
:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyAdmin \ --member=user:USER_EMAIL
Sostituisci quanto segue:
FOLDER_ID
: l'ID della cartella in cui hai disattivato Autokey.USER_EMAIL
: l'indirizzo email dell'utente per cui vuoi revocare l'autorizzazione a gestire la chiave automatica.
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyUser
a livello di cartella:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Sostituisci quanto segue:
FOLDER_ID
: l'ID della cartella in cui hai disattivato Autokey.USER_EMAIL
: l'indirizzo email dell'utente per cui vuoi revocare l'autorizzazione a utilizzare la chiave automatica.
(Facoltativo) Revoca il ruolo
roles/cloudkms.autokeyUser
a livello di progetto:gcloud projects remove-iam-policy-binding RESOURCE_PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Sostituisci quanto segue:
RESOURCE_PROJECT_NUMBER
: il numero di un progetto di risorse all'interno della cartella in cui hai disabilitato Autokey.USER_EMAIL
: l'indirizzo email dell'utente per cui vuoi revocare l'autorizzazione a utilizzare la chiave automatica.
(Facoltativo) Se non prevedi di continuare a utilizzare il progetto chiave per la chiave automatica per le altre cartelle, revoca il ruolo
roles/cloudkms.admin
per l'agente di servizio 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.com
Sostituisci
KEY_PROJECT_NUMBER
con 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.admin
per l'amministratore di Cloud KMS:gcloud projects remove-iam-policy-binding KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAIL
Sostituisci quanto segue:
KEY_PROJECT_NUMBER
: il numero del progetto chiave.USER_EMAIL
: l'indirizzo email dell'utente per cui vuoi revocare l'autorizzazione a utilizzare la chiave automatica.
Passaggi successivi
- Scopri di più su quando utilizzare la chiave automatica.
- Scopri di più su come funziona la chiave automatica.
- Ora gli sviluppatori Autokey possono creare risorse protette utilizzando la chiave automatica.