Creare una connessione EKM

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 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 delle chiavi esterno. Nella console Google Cloud, viene chiamata EKM tramite connessione VPC.

  • Progetto VPC

    Il progetto che contiene la risorsa VPC utilizzata per connettersi al gestore di chiavi esterno.

  • Progetti principali

    I progetti che contengono le risorse di connessione EKM e le chiavi Cloud EKM in Cloud KMS. Un progetto principale 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 crypto space è identificato da un percorso univoco. Il formato del percorso crypto space varia in base al 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

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai alla pagina Gestisci risorse

  2. Crea un nuovo progetto Google Cloud o selezionane uno esistente.

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Scopri di più sui prezzi di Cloud EKM.

Attiva Cloud KMS

  1. Abilita l'API Cloud Key Management Service per il progetto.

    Abilita l'API Cloud Key Management Service

  2. Prendi nota dell'account di servizio Cloud EKM del tuo progetto. Nell'esempio seguente, sostituisci PROJECT_NUMBER con il numero di progetto del tuo progetto Google 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 l'interfaccia a riga di comando gcloud sia aggiornata

Se intendi utilizzare Google Cloud CLI, assicurati che sia aggiornato con il seguente comando:

Interfaccia a riga di comando gcloud

gcloud components update

Preparare una rete VPC

Quando configuri una rete VPC, hai due opzioni:

Per impostazione predefinita, i nuovi progetti contengono una rete in modalità automatica 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 tuo gestore di chiavi esterno è in esecuzione on-premise e ti connetti tramite connettività ibrida, devi utilizzare una rete in modalità personalizzata perché offre il controllo sugli intervalli di indirizzi IP della sottorete.

Per configurare il VPC:

  1. 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 indirizzo IP esterno o bloccata da un firewall), segui le istruzioni per la configurazione dell'accesso privato Google.

  2. 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 sia in entrata che in uscita per TCP per la porta su cui il gestore chiavi esterno è in ascolto.

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. Dopo aver configurato la connettività, segui questi passaggi aggiuntivi:

  1. Abilitare l'accesso privato Google

    Il gestore delle 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 on-premise e non ha accesso tramite internet, segui le istruzioni per la configurazione dell'accesso privato Google per gli host on-premise.

  2. 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 un'apparecchiatura simile per consentire il traffico TCP sulla porta su cui il gestore delle chiavi esterno è in ascolto.

  3. Assicurati che la VPC abbia una route di ritorno all'intervallo IP 35.199.192.0/19

    La rete on-premise deve avere una route per la destinazione 35.199.192.0/19. Per informazioni su come soddisfare questo requisito, consulta le strategie di percorso di ritorno per i 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 un route nella 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 da includere 35.199.192.0/19.

  • Per i tunnel VPN Cloud 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 l'EKM.

Configurare lo spazio crypto

Se utilizzi Cloud EKM nell'ambito di un accordo EKM gestito dai partner, questi passaggi sono stati completati automaticamente nell'ambito del processo di provisioning del partner.

Se il tuo provider EKM è compatibile con la gestione delle chiavi EKM di Cloud KMS, devi eseguire i seguenti passaggi di setup e configurazione nell'EKM:

  • Crea un crypto space per le risorse gestite da Cloud KMS nel tuo EKM.

  • Concedi all'account di servizio Cloud KMS l'accesso al tuo spazio di crittografia e alle chiavi create al suo interno.

  • Configura il criterio Key Access Justifications per l'accesso alle chiavi per definire quali giustificazioni per l'accesso devono essere consentite o negate.

La procedura esatta per ciascuno di questi passaggi dipende dal tuo EKM. Per ulteriori informazioni, consulta la documentazione del provider EKM.

Creare un endpoint di servizio Service Directory

Crea e configura un endpoint di servizio Service Directory nel tuo progetto VPC che punti all'indirizzo IP privato e alla porta del tuo gestore delle 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 network dell'endpoint di servizio Service Directory sia compilato.

Autorizza Cloud EKM ad accedere al tuo VPC

Per ogni progetto principale, devi autorizzare Cloud EKM ad accedere al tuo VPC per conto del progetto, anche se il progetto principale e il progetto VPC sono gli stessi. Se autorizzi l'accesso, le chiavi nel progetto di chiavi possono utilizzare il VPC nel progetto VPC.

  1. Assicurati che per il progetto esista un account di servizio Cloud EKM.

    Interfaccia a riga di comando gcloud

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. Concedi servicedirectory.viewer e servicedirectory.pscAuthorizedService nel tuo progetto VPC a service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com Per assistenza per ottenere l'ID e il numero del progetto, consulta Creare e gestire 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
    

Creare una connessione EKM

Per connettere il tuo gestore di chiavi esterno a Cloud EKM, crea una connessione EKM nel tuo progetto di chiavi.

Console

  1. Nella console Google Cloud, vai alla pagina Infrastruttura KMS.

    Vai all'infrastruttura KMS

  2. Fai clic su Crea connessione.

  3. In Nome connessione, inserisci un nome per la connessione.

  4. In Regione, seleziona una località per la connessione EKM. Tutte le chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa posizione della connessione.

  5. Per il campo ID risorsa servizio (self_link), inserisci il valore del servizio Service Directory creato nella sezione Creare un endpoint del servizio Service Directory. Il servizio Service Directory deve trovarsi nella stessa posizione della connessione.

  6. Nel campo Nome host, aggiungi il nome host del gestore delle chiavi esterno.

  7. 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.

  8. 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.

  9. 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.

  10. Facoltativo. Per impostare la connessione EKM come predefinita per questo progetto e questa località, seleziona la casella di controllo Imposta la connessione come predefinita. Se al momento è impostata un'altra connessione EKM come predefinita per questo progetto e questa località, la connessione EKM sostituisce quella predefinita esistente.

  11. Fai clic su Crea.

gcloud

Per utilizzare Cloud KMS sulla riga di comando, esegui l'installazione o l'upgrade alla versione più recente di Google Cloud CLI.

Per creare una connessione EKM per le chiavi esterne gestite manualmente, esegui il seguente 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 manual

Sostituisci quanto segue:

  • EKM_CONNECTION: un nome per la connessione EKM.
  • LOCATION: la posizione Cloud KMS in cui vuoi creare la connessione EKM. Eventuali chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa posizione della connessione.
  • SERVICE_DIRECTORY_SERVICE: l'ID risorsa del servizio Service Directory per la connessione.
  • HOSTNAME: il nome host del tuo gestore delle chiavi esterno.
  • SERVER_CERTIFICATE_FILES: un elenco di file separati da virgola contenenti 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 seguente 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 Cloud KMS in cui vuoi creare la connessione EKM. Eventuali chiavi Cloud KMS associate a questa connessione devono trovarsi nella stessa posizione della connessione.
  • SERVICE_DIRECTORY_SERVICE: l'ID risorsa del servizio Service Directory per la connessione.
  • HOSTNAME: il nome host del tuo gestore delle chiavi esterno.
  • SERVER_CERTIFICATE_FILES: un elenco di file separati da virgola contenenti certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.
  • CRYPTO_SPACE_PATH: il percorso Crypto Space fornito dal tuo provider EKM.

Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help.

API

Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per ulteriori informazioni sul controllo dell'accesso, consulta Accedere all'API Cloud KMS.

Per creare una connessione EKM per le chiavi esterne coordinate, esegui il seguente 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 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 oggetti Certificate che rappresentano i certificati server principali.
  • HOSTNAME: il nome host del tuo gestore delle chiavi esterno.
  • CRYPTO_SPACE_PATH: il percorso Crypto Space fornito dal tuo provider EKM.

Per creare una connessione EKM per le chiavi esterne gestite manualmente, esegui il seguente 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
            }
          ]
        }
      ]
    }'

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare la connessione EKM.
  • LOCATION: il 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 oggetti Certificate che rappresentano certificati server principali.
  • HOSTNAME: il nome host del tuo gestore delle 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 complessivo del certificato della connessione EKM e lo stato di ciascun certificato dalla pagina dell'infrastruttura KMS.

Le connessioni EKM hanno uno stato complessivo 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 il seguente stato:

  • Attivo: il certificato è valido e la relativa data di scadenza non è imminente.
  • Scade entro 30 giorni: il certificato è valido, ma scade nei prossimi 30 giorni.
  • Scaduto: il certificato è scaduto e non è più valido. Ti consigliamo di aggiornare eventuali 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 console Google Cloud.

Console

  1. Nella console Google Cloud, vai alla pagina Infrastruttura KMS.

    Vai all'infrastruttura KMS

  2. Fai clic sul nome della connessione EKM tramite VPC con il certificato da aggiornare.

  3. Fai clic su Modifica connessione.

  4. 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.

  5. Rimuovi i certificati scaduti. Passa il mouse sopra il certificato scaduto e seleziona l'icona Elimina a destra.

  6. Fai clic su Aggiorna connessione per aggiornare la connessione EKM tramite VPC.

Impostare una connessione EKM come predefinita

Puoi impostare una connessione EKM come predefinita per un determinato progetto e una determinata località. Quando è impostata una connessione EKM predefinita per un progetto e una località, le nuove chiavi Cloud EKM per 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

  1. Nella console Google Cloud, vai alla pagina Infrastruttura KMS.

    Vai all'infrastruttura KMS

  2. Fai clic sulla connessione EKM che vuoi impostare come predefinita.

  3. Fai clic su Modifica connessione.

  4. In Connessione predefinita, seleziona la casella di controllo Imposta la connessione come predefinita per LOCATION.

  5. Fai clic su Aggiorna connessione.

Interfaccia a riga di comando gcloud

gcloud beta kms ekm-config update
  --location=LOCATION
  --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION

Sostituisci quanto segue:

  • LOCATION: il 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 in LOCATION.

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: il Cloud KMS per cui vuoi impostare la connessione EKM predefinita.
  • DEFAULT_EKM_CONNECTION: il nome della connessione EKM da impostare come predefinita per questa località. La località della connessione EKM deve corrispondere a quella indicata in LOCATION.

Se un'altra connessione EKM è stata impostata come predefinita per questa posizione, la connessione EKM selezionata la sostituirà come predefinita. Per un determinato progetto e una determinata località può essere predefinita una sola connessione EKM.

Passaggi successivi