Crea una connessione EKM

Questa pagina mostra come configurare Cloud External Key Manager (Cloud EKM) per la connessione al provider di gestione delle chiavi esterno (EKM) su una rete Virtual Private Cloud (VPC).

Puoi utilizzare chiavi esterne su VPC nelle località Cloud KMS che supportano EKM tramite VPC. Per ulteriori informazioni, consulta la pagina delle località di Cloud KMS.

Terminologia

  • Connessione EKM

    La risorsa Cloud KMS utilizzata per configurare una connessione al gestore di chiavi esterno. Nella console Google Cloud, è detta connessione EKM tramite VPC.

  • Progetto VPC

    Il progetto che contiene la risorsa VPC utilizzata per la connessione 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 di criptovalute

    Un container per le risorse all'interno del tuo partner esterno per la gestione delle chiavi. Il tuo spazio di crittografia è identificato da un percorso di crypto-spazio univoco. Il formato del percorso dello spazio di crittografia varia in base al partner esterno per la gestione delle chiavi, 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. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

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

Abilita Cloud KMS

  1. Abilitare 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 utilizzerai Google Cloud CLI, assicurati che sia aggiornato con il comando seguente:

Interfaccia a riga di comando gcloud

gcloud components update

Prepara una rete VPC

Sono disponibili due opzioni per la configurazione di una rete VPC:

Per impostazione predefinita, i nuovi progetti contengono una rete in modalità automatica 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 connetti tramite la connettività ibrida, devi utilizzare una rete in modalità personalizzata, perché fornisce il controllo sugli intervalli di indirizzi IP della subnet.

Per configurare il VPC, segui questi passaggi:

  1. Attivare 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 viene eseguito in Google Cloud e non ha accesso tramite internet (ad esempio una VM senza IP esterno o bloccata da un firewall), segui le istruzioni per configurare l'accesso privato Google.

  2. Configurazione firewall per l'intervallo IP 35.199.192.0/19

    Le richieste di Cloud EKM provengono da questo intervallo. Crea regole firewall in entrata e in uscita per il protocollo TCP per la porta su cui il gestore di chiavi esterno è in ascolto.

Configura la connettività ibrida

Se il gestore delle chiavi esterno è in esecuzione on-premise, utilizza una soluzione di connettività ibrida per connettere il VPC alla rete on-premise. Una volta configurata la connettività, segui questi passaggi aggiuntivi:

  1. Attivare 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 viene eseguito on-premise e non ha accesso tramite internet, segui le istruzioni per configurare l'accesso privato Google per gli host on-premise.

  2. Configurazione firewall per l'intervallo IP 35.199.192.0/19

    Le richieste di Cloud EKM provengono da questo intervallo. Configura il firewall di rete on-premise o un'apparecchiatura simile in modo da consentire il traffico TCP sulla porta su cui il gestore delle chiavi esterno è in ascolto.

  3. Assicurati che il tuo VPC abbia una route di ritorno per l'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 per il percorso di ritorno per i target on-premise.

Strategie di percorso 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 del traffico locale di Cloud VPN e quello del gateway VPN on-premise in modo che includa 35.199.192.0/19.

  • Per i tunnel Cloud VPN che utilizzano il routing dinamico o per Cloud Interconnect, configura un annuncio di route personalizzato per 35.199.192.0/19 nella sessione BGP del router Cloud che gestisce il tunnel o il collegamento VLAN.

Configura il gestore di chiavi esterno

Segui le istruzioni del tuo fornitore EKM per configurare l'EKM.

Configura il tuo spazio di criptovalute

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

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

  • Crea uno spazio crittografico per le risorse gestite da Cloud KMS nel tuo EKM.

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

  • Configura il criterio Key Access Justifications per definire quali giustificazioni dell'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 tuo fornitore 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 la porta e l'indirizzo IP 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 chiave, devi autorizzare Cloud EKM ad accedere al VPC per conto di quel progetto, anche se il progetto della chiave e il progetto VPC sono gli stessi. Se autorizzi l'accesso, le chiavi nel progetto chiave possono utilizzare il VPC nel progetto VPC.

  1. 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
    
  2. Concedi servicedirectory.viewer e servicedirectory.pscAuthorizedService nel progetto VPC a service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com Per assistenza su come ottenere l'ID e il numero del 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 gestore di chiavi esterno a Cloud EKM, crea una connessione EKM nel progetto della chiave.

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 località della connessione.

  5. Nel campo ID risorsa del servizio (self_link), inserisci il valore del servizio Service Directory creato nella sezione Crea un endpoint di servizio Service Directory. Il servizio di directory dei servizi deve trovarsi nella stessa località della connessione.

  6. Nel campo Nome host, aggiungi il nome dell'host per il gestore di 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. 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.

  9. Se hai selezionato Cloud KMS per la modalità di gestione EKM, nel campo Percorso spazio crittografico inserisci il percorso dello spazio crittografico fornito dall'EKM.

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

  11. Fai clic su Crea.

gcloud

Per utilizzare Cloud KMS nella riga di comando, devi innanzitutto installare o eseguire l'upgrade alla versione più recente di Google Cloud CLI.

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

Sostituisci quanto segue:

  • EKM_CONNECTION: un nome per la connessione EKM.
  • LOCATION: la località Cloud KMS in cui vuoi creare la connessione EKM. Eventuali 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 separato da virgole di file contenenti certificati server X.509 per il gestore di chiavi esterno. I certificati devono essere in formato DER.

Per creare una connessione EKM per 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 località Cloud KMS in cui vuoi creare la connessione EKM. Eventuali 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 separato da virgole di file contenenti 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 criptovalute fornito dal tuo provider EKM.

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

API

In questi esempi viene utilizzato curl come client HTTP per dimostrare l'utilizzo dell'API. Per maggiori informazioni sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.

Per creare una connessione EKM per 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 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 dei server foglia.
  • HOSTNAME: il nome host del gestore di chiavi esterno.
  • CRYPTO_SPACE_PATH: il percorso dello spazio di criptovalute fornito dal tuo provider EKM.

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

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 Certificate oggetti che rappresentano i certificati dei server foglia.
  • HOSTNAME: il nome host del gestore di chiavi esterno.

Per ulteriori informazioni, consulta la documentazione relativa all'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 generale nella colonna Stato certificato di ciascuna connessione. Se una connessione EKM ha uno stato diverso da Attivo, ti consigliamo di aggiornare i certificati sulla connessione EKM.

Sia le connessioni EKM che i singoli certificati possono avere il seguente stato:

  • Attivo: il certificato è valido e la data di scadenza non si sta avvicinando.
  • Scade entro 30 giorni: il certificato è valido, ma ha una data di scadenza nei 30 giorni successivi.
  • 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 è una data 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 che deve essere aggiornato.

  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.

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 da 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 il quale 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 specificata 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 il quale 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 che vuoi impostare come predefinita per questa località. La località della connessione EKM deve corrispondere a quella specificata in LOCATION.

Se per questa località è stata impostata come predefinita un'altra connessione EKM, viene sostituita dalla connessione EKM selezionata. Può essere predefinita una sola connessione EKM per un progetto e una località specifici.

Passaggi successivi