Questa pagina mostra come configurare Cloud External Key Manager (Cloud EKM) per connettersi al tuo provider di gestione delle chiavi esterne (EKM) tramite una rete Virtual Private Cloud (VPC).
Puoi utilizzare 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 tuo gestore delle chiavi esterno. Nella console Google Cloud , questo valore è indicato come EKM tramite connessione VPC.
Progetto VPC
Il progetto che contiene la risorsa VPC utilizzata per connettersi al gestore di chiavi esterno.
Progetti chiave
I progetti che contengono risorse di connessione EKM e chiavi Cloud EKM in Cloud KMS. Un progetto chiave può essere uguale a un progetto VPC, ma non è obbligatorio.
Crypto Space
Un contenitore per le tue risorse all'interno del tuo partner esterno per la gestione delle chiavi. Il tuo spazio criptato è identificato da un percorso univoco. Il formato del percorso Crypto Space varia a seconda del partner di gestione delle chiavi esterno, 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 console Google Cloud , vai alla pagina Gestisci risorse.
Crea un nuovo progetto Google Cloud o selezionane uno esistente.
-
Make sure that billing is enabled for your Google Cloud project.
Puoi scoprire di più sui prezzi di Cloud EKM.
Abilita Cloud KMS
Abilita l'API Cloud Key Management Service per il progetto.
Prendi nota dell'account di servizio Cloud EKM del tuo progetto. Nell'esempio seguente, sostituisci
PROJECT_NUMBER
con il numero di progetto del tuo progettoGoogle Cloud . Queste informazioni sono visibili anche ogni volta che utilizzi la console Google Cloud per creare una chiave Cloud EKM.service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Assicurati che gcloud CLI sia aggiornata
Se utilizzi Google Cloud CLI, assicurati che sia aggiornata con il seguente comando:
Interfaccia a riga di comando gcloud
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 a fini di produzione, la rete in modalità automatica predefinita è il modo più rapido per iniziare.
Se il gestore di chiavi esterno viene eseguito on-premise e ti connetterai tramite connettività ibrida, devi utilizzare una rete in modalità personalizzata perché fornisce il controllo sugli intervalli di indirizzi IP delle subnet.
Segui questi passaggi per configurare il VPC:
Abilitare 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 delle chiavi esterno viene eseguito 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/19
Le richieste provenienti da Cloud EKM provengono da questo intervallo. Crea regole firewall in entrata e in uscita per TCP per la porta su cui è in ascolto il gestore chiavi esterno.
Configura la connettività ibrida
Se il gestore di chiavi esterno viene eseguito 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:
Abilitare l'accesso privato Google
Il gestore delle chiavi esterno deve verificare il token OIDC contenuto in ogni richiesta. Per verificare il token, è necessario recuperare la chiave pubblica OAuth2 dal nome di dominio
www.googleapis.com
. Se il gestore delle chiavi esterno viene eseguito on-premise e non ha accesso a 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/19
Le richieste provenienti da 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/19
La 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 di percorso di ritorno per target on-premise.
Strategie di 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 la cui destinazione è
35.199.192.0/19
e il cui hop successivo è il tunnel Cloud VPN. Per i tunnel Cloud VPN che utilizzano il 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 che includano35.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/19
nella sessione BGP del router Cloud che gestisce il tunnel o il collegamento VLAN.
Configurare il gestore di chiavi esterno
Segui le istruzioni del tuo provider EKM per configurare la tua EKM.
Configura il tuo spazio di criptovalute
Se utilizzi Cloud EKM nell'ambito di un accordo EKM gestito da un 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 nel tuo EKM:
Crea uno spazio di crittografia per le risorse gestite da Cloud KMS nel tuo EKM.
Concedi al account di servizio Cloud KMS l'accesso al tuo spazio di crittografia e alle chiavi create al suo interno.
Configura la policy Key Access Justifications per definire le giustificazioni dell'accesso che devono essere consentite o negate.
La procedura esatta per ciascuno di questi passaggi dipende dal tuo EKM. Per saperne di più, consulta la documentazione del tuo provider EKM.
Crea un endpoint di servizio Service Directory
Crea e configura un endpoint di servizio Service Directory nel tuo progetto VPC che punta 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 di quel progetto, anche se il progetto chiave e il progetto VPC sono gli stessi. Se autorizzi l'accesso, le chiavi nel progetto di chiavi possono utilizzare il VPC nel progetto VPC.
Assicurati che esista un account di servizio Cloud EKM per il progetto.
Interfaccia a riga di comando gcloud
gcloud beta services identity create \ --service=cloudkms.googleapis.com \ --project=KEY_PROJECT_ID
Concedi i ruoli
servicedirectory.viewer
eservicedirectory.pscAuthorizedService
nel tuo progetto VPC aservice-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Per assistenza su come ottenere l'ID e il numero di progetto, consulta Creazione e gestione dei progetti.Interfaccia a riga di comando gcloud
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 tuo gestore di chiavi esterno a Cloud EKM, crea una connessione EKM nel tuo progetto di chiavi.
Console
Nella console Google Cloud , vai alla pagina Infrastruttura KMS.
Fai clic su
Crea connessione.In Nome connessione, inserisci un nome per la connessione.
Per Regione, seleziona una località per la connessione EKM. Tutte le chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa località della connessione.
Per il 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 posizione 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.
Per la 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 la modalità di gestione EKM, nel campo Percorso Crypto Space, inserisci il percorso Crypto Space fornito dal tuo EKM.
Facoltativo. Per impostare la connessione EKM come predefinita per questo progetto e questa posizione, 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 posizione di 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 tua connessione.HOSTNAME
: il nome host del tuo 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 questo comando:
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 posizione di 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 tua connessione.HOSTNAME
: il nome host del tuo 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 di archiviazione delle chiavi fornito dal tuo 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 dimostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Per creare una connessione EKM per le chiavi esterne coordinate, esegui questo comando:
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
: il progetto 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 oggettiCertificate
che rappresentano i certificati server foglia.HOSTNAME
: il nome host del tuo gestore di chiavi esterno.CRYPTO_SPACE_PATH
: il percorso dello spazio di archiviazione delle chiavi fornito dal tuo 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
: il progetto 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 10Certificate
oggetti che rappresentano i certificati server foglia.HOSTNAME
: il nome host del tuo gestore di chiavi esterno.
Per saperne di più, consulta la documentazione dell'API EkmConnection.create
.
Stato del certificato
Dopo aver caricato un certificato per la connessione EKM, puoi controllare lo stato complessivo del certificato della connessione EKM, nonché lo stato di ogni certificato dalla pagina dell'infrastruttura KMS.
Le connessioni EKM hanno uno stato generale nella colonna Stato certificato di ogni connessione. Se una connessione EKM ha uno stato diverso da Attiva, ti consigliamo di aggiornare i certificati della connessione EKM.
Sia le connessioni EKM sia i singoli certificati possono avere il seguente stato:
- Attivo: il certificato è valido e non si avvicina alla data di scadenza.
- In scadenza entro 30 giorni: il certificato è valido, ma scadrà nei prossimi 30 giorni.
- Scaduto: il certificato è scaduto e non è più valido. Ti consigliamo di aggiornare i certificati scaduti.
- Non ancora valido: il certificato non è attivo. Ciò può accadere se la data di inizio del certificato è futura.
Se il certificato non è più valido, aggiorna la connessione EKM nella consoleGoogle Cloud .
Console
Nella console Google Cloud , 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.
Impostare 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 portachiavi in quella località utilizzano la connessione EKM indicata, a meno che non ne venga selezionata un'altra.
Per impostare una connessione EKM come predefinita per il progetto e la località, completa i seguenti passaggi:
Console
Nella console Google Cloud , vai alla pagina Infrastruttura KMS.
Fai clic sulla connessione EKM che vuoi impostare come predefinita.
Fai clic su Modifica connessione.
Nella sezione Connessione predefinita, seleziona la casella di controllo Imposta la connessione come predefinita per LOCATION.
Fai clic su Aggiorna connessione.
Interfaccia a riga di comando gcloud
gcloud kms ekm-config update --location=LOCATION --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION
Sostituisci quanto segue:
LOCATION
: il progetto 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 a quella 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 il quale vuoi impostare una connessione EKM predefinita.LOCATION
: il progetto 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 a quella indicata inLOCATION
.
Se un'altra connessione EKM era stata impostata come predefinita per questa località, la connessione EKM selezionata la sostituisce come predefinita. Solo una connessione EKM può essere predefinita per un determinato progetto e posizione.