Questa pagina mostra come configurare Cloud External Key Manager (Cloud EKM) per connetterti a il tuo provider di gestione delle chiavi esterne (EKM) tramite una rete Virtual Private Cloud (VPC).
Puoi utilizzare le chiavi esterne tramite VPC nelle località Cloud KMS che supportano EKM tramite VPC. Per ulteriori informazioni, consulta la pagina Località Cloud KMS.
Terminologia
Connessione EKM
La risorsa Cloud KMS utilizzata per configurare una connessione al gestore di chiavi esterno. Nella Google Cloud console, questa risorsa viene definita EKM tramite connessione VPC.
Progetto VPC
Il progetto che contiene la risorsa VPC utilizzata per connetterti al gestore di chiavi esterno.
Progetti chiave
I progetti che contengono le risorse di connessione EKM e le chiavi Cloud EKM in Cloud KMS. Un progetto chiave può essere uguale a un progetto VPC, ma non è obbligatorio.
Spazio crittografico
Un container per le tue risorse all'interno del tuo partner di gestione delle chiavi esterne. Il tuo spazio crittografico è identificato da un percorso univoco dello spazio crittografico. Il formato del percorso dello spazio crittografico varia a seconda del partner di gestione delle chiavi esterne, ad esempio,
v0/cryptospaces/YOUR_UNIQUE_PATH.
Prima di iniziare
Dopo aver completato i passaggi riportati di seguito, puoi iniziare a utilizzare le chiavi Cloud EKM per proteggere i tuoi dati.
Crea un nuovo progetto
Nella Google Cloud console, vai alla pagina Gestisci risorse.
Crea un nuovo Google Cloud progetto o seleziona un progetto esistente.
-
Verifica che la fatturazione sia attivata per il tuo Google Cloud progetto.
Puoi scoprire di più sui prezzi di Cloud EKM.
Abilita Cloud KMS
Abilita l'API Cloud Key Management Service per il progetto.
Prendi nota del account di servizio Cloud EKM del tuo progetto. Nell'esempio seguente, sostituisci
PROJECT_NUMBERcon il Google Cloud numero del progetto. Queste informazioni sono visibili anche ogni volta che utilizzi la Google Cloud console per creare una chiave Cloud EKM.service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Assicurati che gcloud CLI sia aggiornato
Se utilizzerai Google Cloud CLI, assicurati che sia aggiornato con il seguente comando:
gcloud CLI
gcloud components update
Prepara una rete VPC
Quando configuri una rete VPC, hai a disposizione due opzioni:
Per impostazione predefinita, i nuovi progetti contengono una rete in modalità automatica che è precompilata con regole firewall. Se la rete VPC non verrà utilizzata per scopi di produzione, la rete in modalità automatica predefinita è il modo più rapido per iniziare.
Se il gestore di chiavi esterno è in esecuzione on-premise e ti connetterai tramite connettività ibrida, devi utilizzare una rete in modalità personalizzata perché fornisce il controllo sugli intervalli di indirizzi IP della subnet.
Segui questi passaggi per configurare il VPC:
Abilita l'accesso privato Google
Il gestore di chiavi esterno deve verificare il token OIDC contenuto in ogni richiesta. Per verificare il token, deve recuperare la chiave pubblica OAuth2 dal nome di dominio
www.googleapis.com. Se il gestore di chiavi esterno è in esecuzione in Google Cloud e non ha accesso tramite internet (ad es. una VM senza un IP esterno o bloccata da un firewall), segui le istruzioni per configurare l'accesso privato Google.Configurazione del firewall per l'intervallo IP
35.199.192.0/19Le richieste di Cloud EKM provengono da questo intervallo. Crea regole firewall di autorizzazione in entrata e in uscita per TCP per la porta su cui è in ascolto il gestore di chiavi esterno.
Configura la connettività ibrida
Se il gestore di chiavi esterno è in esecuzione on-premise, utilizza una soluzione di connettività ibrida per connettere il VPC alla tua rete on-premise. Una volta configurata la connettività, segui questi passaggi aggiuntivi:
Abilita l'accesso privato Google
Il gestore di chiavi esterno deve verificare il token OIDC contenuto in ogni richiesta. Per verificare il token, deve recuperare la chiave pubblica OAuth2 dal nome di dominio
www.googleapis.com. Se il gestore di chiavi esterno è in esecuzione on-premise e non ha accesso tramite internet, segui le istruzioni per configurare l'accesso privato Google per gli host on-premise.Configurazione del firewall per l'intervallo IP
35.199.192.0/19Le richieste di Cloud EKM provengono da questo intervallo. Configura il firewall di rete on-premise o apparecchiature simili per consentire il traffico TCP sulla porta su cui è in ascolto il gestore di chiavi esterno.
Assicurati che il VPC abbia una route di ritorno all'intervallo IP
35.199.192.0/19La tua rete on-premise deve avere una route per la destinazione
35.199.192.0/19. Per informazioni su come soddisfare questo requisito, consulta Strategie per la route di ritorno per i target on-premise.
Strategie per la route di ritorno per i target on-premise
Per i tunnel Cloud VPN che utilizzano il routing statico, crea manualmente una route nella tua rete on-premise con come destinazione
35.199.192.0/19e il tunnel Cloud VPN come hop successivo. Per i tunnel Cloud VPN che utilizzano routing basato su criteri, configura il selettore di traffico locale di Cloud VPN e il selettore di traffico remoto del gateway VPN on-premise in modo da includere35.199.192.0/19.Per i tunnel Cloud VPN che utilizzano il routing dinamico o per Cloud Interconnect, configura la modalità di annuncio personalizzata per
35.199.192.0/19nella sessione BGP del router Cloud che gestisce il tunnel o il collegamento VLAN.
Configura il gestore di chiavi esterno
Segui le istruzioni del tuo provider EKM per configurare l'EKM.
Configura lo spazio crittografico
Se utilizzi Cloud EKM nell'ambito di un accordo EKM gestito dal partner, questi passaggi sono stati completati per te nell'ambito della procedura di provisioning del partner.
Se il tuo provider EKM è compatibile con la gestione delle chiavi EKM da Cloud KMS, devi eseguire i seguenti passaggi di configurazione nell'EKM:
Crea uno spazio crittografico per le risorse gestite da Cloud KMS nell'EKM.
Concedi al account di servizio Cloud KMS l'accesso allo spazio crittografico e alle chiavi create al suo interno.
Configura la policy Key Access Justifications per definire quali giustificazioni di accesso devono essere consentite o negate.
La procedura esatta per ciascuno di questi passaggi dipende dall'EKM. Per ulteriori informazioni, consulta la documentazione del tuo provider EKM.
Crea un endpoint di servizio Service Directory
Crea e configura un Service Directory endpoint di servizio nel tuo progetto VPC che punti all'indirizzo IP privato e alla porta del tuo gestore di chiavi esterno. Se utilizzi un bilanciatore del carico davanti a più repliche EKM, utilizza l'indirizzo IP e la porta del bilanciatore del carico. Assicurati che il campo Rete dell'endpoint di servizio Service Directory sia compilato.
Autorizza Cloud EKM ad accedere al tuo VPC
Per ogni progetto chiave, devi autorizzare Cloud EKM ad accedere al tuo VPC per conto del progetto, anche se il progetto chiave e il progetto VPC sono gli stessi. Autorizzando l'accesso, le chiavi nel progetto chiave possono utilizzare il VPC nel progetto VPC.
Assicurati che esista un account di servizio Cloud EKM per il progetto.
gcloud CLI
gcloud beta services identity create \ --service=cloudkms.googleapis.com \ --project=KEY_PROJECT_ID
Concedi i ruoli
servicedirectory.viewereservicedirectory.pscAuthorizedServicenel tuo progetto VPC aservice-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.comPer assistenza su come ottenere l'ID progetto e il numero del progetto, consulta Creazione e gestione dei progetti.gcloud CLI
gcloud projects add-iam-policy-binding VPC_PROJECT_ID \ --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com \ --role=roles/servicedirectory.viewer gcloud projects add-iam-policy-binding VPC_PROJECT_ID \ --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com \ --role=roles/servicedirectory.pscAuthorizedService
Crea una connessione EKM
Per connettere il gestore di chiavi esterno a Cloud EKM, crea una connessione EKM nel progetto chiave.
Console
Nella Google Cloud console, vai alla pagina Infrastruttura KMS.
Fai clic su Crea connessione.
In Nome connessione, inserisci un nome per la connessione.
In Regione, seleziona una località per la connessione EKM. Tutte le chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa località della connessione.
Nel campo ID risorsa servizio (self_link), inserisci il valore del servizio Service Directory creato nella sezione Crea un endpoint di servizio Service Directory. Il servizio Service Directory deve trovarsi nella stessa località della connessione.
Nel campo Nome host, aggiungi il nome host del gestore di chiavi esterno.
In Certificati, fai clic su Aggiungi certificato per caricare uno o più certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.
In Modalità di gestione EKM, seleziona Manuale per utilizzare la connessione EKM per le chiavi esterne gestite manualmente oppure seleziona Cloud KMS per utilizzare la connessione EKM per le chiavi esterne coordinate.
Se hai selezionato Cloud KMS per Modalità di gestione EKM, nel campo Percorso spazio crittografico, inserisci il percorso dello spazio crittografico fornito dall' EKM.
Facoltativo. Per impostare la connessione EKM come connessione predefinita per questo progetto e questa località, seleziona la casella di controllo Imposta la connessione come predefinita. Se un'altra connessione EKM è attualmente impostata come predefinita per questo progetto e questa località, questa connessione EKM sostituisce quella predefinita esistente.
Fai clic su Crea.
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
Per creare una connessione EKM per le chiavi esterne gestite manualmente, esegui il comando seguente:
gcloud beta kms ekm-connections create EKM_CONNECTION \
--location LOCATION \
--service-directory-service SERVICE_DIRECTORY_SERVICE \
--hostname HOSTNAME \
--server-certificates-files SERVER_CERTIFICATE_FILES \
--key-management-mode manual
Sostituisci quanto segue:
EKM_CONNECTION: un nome per la connessione EKM.LOCATION: la località Cloud KMS in cui vuoi creare la connessione EKM. Tutte le chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa località della connessione.SERVICE_DIRECTORY_SERVICE: l'ID risorsa del servizio Service Directory per la connessione.HOSTNAME: il nome host del gestore di chiavi esterno.SERVER_CERTIFICATE_FILES: un elenco di file separati da virgole contenenti i certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.
Per creare una connessione EKM per le chiavi esterne coordinate, esegui il comando seguente:
gcloud beta kms ekm-connections create EKM_CONNECTION \
--location LOCATION \
--service-directory-service SERVICE_DIRECTORY_SERVICE \
--hostname HOSTNAME \
--server-certificates-files SERVER_CERTIFICATE_FILES \
--key-management-mode cloud-kms \
--crypto-space-path CRYPTO_SPACE_PATH
Sostituisci quanto segue:
EKM_CONNECTION: un nome per la connessione EKM.LOCATION: la località Cloud KMS in cui vuoi creare la connessione EKM. Tutte le chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa località della connessione.SERVICE_DIRECTORY_SERVICE: l'ID risorsa del servizio Service Directory per la connessione.HOSTNAME: il nome host del gestore di chiavi esterno.SERVER_CERTIFICATE_FILES: un elenco di file separati da virgole contenenti i certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.CRYPTO_SPACE_PATH: il percorso dello spazio crittografico fornito dal provider EKM.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.
API
Questi esempi utilizzano curl come client HTTP per mostrare l'utilizzo dell'API. Per ulteriori informazioni sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Per creare una connessione EKM per le chiavi esterne coordinate, esegui il comando seguente:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--header "x-goog-user-project: PROJECT_ID" \
--data '{
"name": "EKM_CONNECTION",
"serviceResolvers": [
{
"serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
"hostname": "HOSTNAME",
"serverCertificates": [
{
SERVER_CERTIFICATES
}
]
}
]
"keyManagementMode": "CLOUD_KMS",
"cryptoSpacePath": "CRYPTO_SPACE_PATH"
}'
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui vuoi creare la connessione EKM.LOCATION: la località Cloud KMS in cui vuoi creare la connessione EKM.EKM_CONNECTION: il nome da utilizzare per la connessione EKM.SERVER_CERTIFICATES: un elenco di massimo 10 oggettiCertificateche rappresentano i certificati server foglia.HOSTNAME: il nome host del gestore di chiavi esterno.CRYPTO_SPACE_PATH: il percorso dello spazio crittografico fornito dal provider EKM.
Per creare una connessione EKM per le chiavi esterne gestite manualmente, esegui il comando seguente:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--header "x-goog-user-project: PROJECT_ID" \
--data '{
"name": "EKM_CONNECTION",
"serviceResolvers": [
{
"serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
"hostname": "HOSTNAME",
"serverCertificates": [
{
SERVER_CERTIFICATES
}
]
}
]
}'
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui vuoi creare la connessione EKM.LOCATION: la località Cloud KMS in cui vuoi creare la connessione EKM.EKM_CONNECTION: il nome da utilizzare per la connessione EKM.SERVER_CERTIFICATES: un elenco di massimo 10Certificateoggetti che rappresentano i certificati server foglia.HOSTNAME: il nome host del gestore di chiavi esterno.
Per ulteriori informazioni, consulta la documentazione dell'API EkmConnection.create.
Stato del certificato
Dopo aver caricato un certificato per la connessione EKM, puoi controllare lo stato generale del certificato della connessione EKM e lo stato di ogni certificato dalla pagina dell'infrastruttura KMS.
Le connessioni EKM hanno uno stato generale nella colonna Stato del certificato di ogni connessione. Se una connessione EKM ha uno stato diverso da Attivo, ti consigliamo di aggiornare i certificati nella connessione EKM.
Sia le connessioni EKM sia i singoli certificati possono avere i seguenti stati:
- Attivo: il certificato è valido e non è in scadenza.
- In scadenza entro 30 giorni: il certificato è valido, ma ha una data di scadenza nei prossimi 30 giorni.
- Scaduto: il certificato è scaduto e non è più valido. Ti consigliamo di aggiornare tutti i certificati scaduti.
- Non ancora valido: il certificato non è attivo. Questo può accadere se la data di inizio del certificato è futura.
Se il certificato non è più valido, aggiorna la connessione EKM nella Google Cloud console.
Console
Nella Google Cloud console, vai alla pagina Infrastruttura KMS.
Fai clic sul nome della connessione EKM tramite VPC con il certificato da aggiornare.
Fai clic su Modifica connessione.
Fai clic su Aggiungi certificato per caricare uno o più certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.
Rimuovi i certificati scaduti. Passa il mouse sopra il certificato scaduto e seleziona l'icona Elimina a destra.
Fai clic su Aggiorna connessione per aggiornare la connessione EKM tramite VPC.
Imposta una connessione EKM come predefinita
Puoi impostare una connessione EKM come connessione predefinita per un determinato progetto e una determinata località. Quando viene impostata una connessione EKM predefinita per un progetto e una località, le nuove chiavi Cloud EKM tramite VPC create nei keyring in quella località utilizzano la connessione EKM indicata, a meno che non venga selezionata un'altra connessione EKM.
Per impostare una connessione EKM come predefinita per il progetto e la località, completa i seguenti passaggi:
Console
Nella Google Cloud console, vai alla pagina Infrastruttura KMS.
Fai clic sulla connessione EKM che vuoi impostare come predefinita.
Fai clic su Modifica connessione.
In Connessione predefinita, seleziona la casella di controllo Imposta la connessione come predefinita per LOCATION.
Fai clic su Aggiorna connessione.
gcloud CLI
gcloud kms ekm-config update --location=LOCATION --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION
Sostituisci quanto segue:
LOCATION: la località Cloud KMS per cui vuoi impostare la connessione EKM predefinita.PROJECT_ID: il nome del progetto per cui vuoi impostare la connessione EKM predefinita.DEFAULT_EKM_CONNECTION: il nome della connessione EKM che vuoi impostare come predefinita per questa località. La località della connessione EKM deve corrispondere alla località indicata inLOCATION.
API
Per impostare la connessione EKM predefinita per una località, utilizza il metodo EkmConfig.patch:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConfig" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"defaultEkmConnection": "projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION"}'
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto per cui vuoi impostare una connessione EKM predefinita.LOCATION: la località Cloud KMS per cui vuoi impostare la connessione EKM predefinita.DEFAULT_EKM_CONNECTION: il nome della connessione EKM che vuoi impostare come predefinita per questa località. La località della connessione EKM deve corrispondere alla località indicata inLOCATION.
Se un'altra connessione EKM era stata impostata come predefinita per questa località, la connessione EKM selezionata la sostituisce come predefinita. Per un determinato progetto e una determinata località può essere predefinita una sola connessione EKM.