Créer une connexion EKM

Cette page explique comment configurer Cloud External Key Manager (Cloud EKM) pour vous connecter à votre fournisseur de gestion de clés externe (EKM) via un réseau cloud privé virtuel (VPC).

Vous pouvez utiliser des clés externes sur un VPC dans les emplacements Cloud KMS qui sont compatibles avec EKM via VPC. Pour en savoir plus, consultez la page Emplacements Cloud KMS.

Terminologie

  • Connexion EKM

    Ressource Cloud KMS utilisée pour configurer une connexion à votre gestionnaire de clés externe. Dans la Google Cloud console, elle est appelée EKM via une connexion VPC.

  • Projet VPC

    Projet contenant la ressource VPC utilisée pour se connecter à votre gestionnaire de clés externe.

  • Projets de clé

    Projets contenant des ressources de connexion EKM et des clés Cloud EKM dans Cloud KMS. Un projet de clé peut être identique à un projet VPC, mais ce n'est pas obligatoire.

  • Espace de chiffrement

    Conteneur de vos ressources au sein de votre partenaire de gestion de clés externe. Votre espace de chiffrement est identifié par un chemin d'accès unique. Le format du chemin d'accès à l'espace de chiffrement varie en fonction du partenaire de gestion de clés externe. Par exemple, v0/cryptospaces/YOUR_UNIQUE_PATH.

Avant de commencer

Une fois les étapes suivantes effectuées, vous pouvez commencer à utiliser des clés Cloud EKM pour protéger vos données.

Créer un projet

  1. Dans la Google Cloud console, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Créez un nouveau Google Cloud projet ou sélectionnez-en un.

  3. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  4. En savoir plus sur les tarifs de Cloud EKM.

Activer Cloud KMS

  1. Activez l'API Cloud Key Management Service pour le projet.

    Activer l'API Cloud Key Management Service

  2. Notez le compte de service Cloud EKM de votre projet. Dans l'exemple suivant, remplacez PROJECT_NUMBER par le Google Cloud numéro de projet de votre projet. Ces informations sont également visibles chaque fois que vous utilisez la Google Cloud console pour créer une clé Cloud EKM.

    service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
    

S'assurer que gcloud CLI est à jour

Si vous utilisez Google Cloud CLI, assurez-vous qu'il est à jour à l'aide de la commande suivante :

Gcloud CLI

gcloud components update

Préparer un réseau VPC

Deux options sont disponibles lors de la configuration d'un réseau VPC :

Par défaut, les nouveaux projets contiennent un réseau en mode automatique qui est prérempli avec des règles de pare-feu. Si le réseau VPC n'est pas utilisé à des fins de production, le réseau en mode automatique par défaut est le moyen le plus rapide de commencer.

Si votre gestionnaire de clés externe s'exécute sur site et que vous vous y connectez via une connectivité hybride, vous devez utiliser un réseau en mode personnalisé , car il vous permet de contrôler les plages d'adresses IP des sous-réseaux.

Suivez ces étapes pour configurer votre VPC :

  1. Activer l'accès privé à Google

    Le gestionnaire de clés externe doit valider le jeton OIDC contenu dans chaque requête. Pour valider le jeton, il doit récupérer la clé publique OAuth2 à partir du nom de domaine www.googleapis.com. Si le gestionnaire de clés externe s'exécute dans Google Cloud et n'a pas accès à Internet (par exemple, une VM sans adresse IP externe ou bloquée par un pare-feu), suivez les instructions pour configurer l'accès privé à Google.

  2. Configuration du pare-feu pour la plage d'adresses IP 35.199.192.0/19

    Les requêtes de Cloud EKM proviendront de cette plage. Créez des règles de pare-feu d'autorisation entrantes et sortantes pour TCP pour le port sur lequel le gestionnaire de clés externe est à l'écoute.

Configurer une connectivité hybride

Si le gestionnaire de clés externe s'exécute sur site, utilisez une solution de connectivité hybride pour connecter le VPC à votre réseau sur site. Une fois la connectivité configurée, procédez comme suit :

  1. Activer l'accès privé à Google

    Le gestionnaire de clés externe doit valider le jeton OIDC contenu dans chaque requête. Pour valider le jeton, il doit récupérer la clé publique OAuth2 à partir du nom de domaine www.googleapis.com. Si le gestionnaire de clés externe s'exécute sur site et n'a pas accès à Internet, suivez les instructions pour configurer l'accès privé à Google pour les hôtes sur site.

  2. Configuration du pare-feu pour la plage d'adresses IP 35.199.192.0/19

    Les requêtes de Cloud EKM proviendront de cette plage. Configurez le pare-feu de votre réseau sur site ou un équipement similaire pour autoriser le trafic TCP sur le port sur lequel le gestionnaire de clés externe est à l'écoute.

  3. Assurez-vous que votre VPC dispose d'une route de retour vers la plage d'adresses IP 35.199.192.0/19

    Votre réseau sur site doit disposer d'une route pour la destination 35.199.192.0/19. Pour savoir comment respecter cette exigence, consultez la section Stratégies de routage des retours pour les cibles sur site.

Stratégies de routage des retours pour les cibles sur site

  • Pour les tunnels Cloud VPN qui utilisent le routage statique, créez manuellement sur votre réseau sur site une route dont la destination est 35.199.192.0/19 et dont le prochain saut est le tunnel Cloud VPN. Pour les tunnels Cloud VPN utilisant le routage basé sur des règles, configurez le sélecteur de trafic local de Cloud VPN et le sélecteur de trafic distant de la passerelle VPN sur site de façon à inclure 35.199.192.0/19.

  • Pour les tunnels Cloud VPN utilisant le routage dynamique ou pour Cloud Interconnect, configurez le mode d'annonce personnalisé pour 35.199.192.0/19 sur la session BGP de Cloud Router qui gère le tunnel ou le rattachement de VLAN.

Configurer votre gestionnaire de clés externe

Suivez les instructions de votre fournisseur EKM pour configurer votre EKM.

Configurer votre espace de chiffrement

Si vous utilisez Cloud EKM dans le cadre d'un arrangement EKM géré par un partenaire, ces étapes ont été effectuées pour vous dans le cadre du processus de provisionnement de votre partenaire.

Si votre fournisseur EKM est compatible avec la gestion des clés EKM à partir de Cloud KMS, les étapes de configuration suivantes doivent être effectuées dans votre EKM :

  • Créez un espace de chiffrement pour vos ressources gérées par Cloud KMS dans votre EKM.

  • Accordez à votre compte de service Cloud KMS l'accès à votre espace de chiffrement et aux clés qui y sont créées.

  • Configurez la stratégie Key Access Justifications pour définir les justifications d'accès qui doivent être autorisées ou refusées.

Le processus exact pour chacune de ces étapes dépend de votre EKM. Pour en savoir plus, consultez la documentation de votre fournisseur EKM.

Créer un point de terminaison de service de l'Annuaire des services

Créez et configurez un point de terminaison de service de l'Annuaire des services dans votre projet VPC qui pointe vers l'adresse IP privée et le port de votre gestionnaire de clés externe. Si vous utilisez un équilibreur de charge devant plusieurs répliques EKM, utilisez l'adresse IP et le port de l'équilibreur de charge. Assurez-vous que le champ network (réseau) de votre point de terminaison de service de l'Annuaire des services est renseigné.

Autoriser Cloud EKM à accéder à votre VPC

Pour chaque projet de clé, vous devez autoriser Cloud EKM à accéder à votre VPC en son nom, même si le projet de clé et le projet VPC sont identiques. En autorisant l'accès, les clés de votre projet de clé peuvent utiliser le VPC de votre projet.

  1. Assurez-vous qu'un compte de service Cloud EKM existe pour le projet.

    Gcloud CLI

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. Attribuez les rôles servicedirectory.viewer et servicedirectory.pscAuthorizedService dans votre projet VPC à service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com Pour obtenir de l'aide concernant l'obtention de l'ID du projet et du numéro de votre projet, consultez la section Créer et gérer des projets.

    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
    

Créer une connexion EKM

Pour connecter votre gestionnaire de clés externe à Cloud EKM, créez une connexion EKM dans votre projet de clé.

Console

  1. Dans la Google Cloud console, accédez à la page Infrastructure KMS.

    Accéder à l'infrastructure KMS

  2. Cliquez sur Créer une connexion.

  3. Dans le champ Nom de la connexion, saisissez un nom pour votre connexion.

  4. Dans le champ Région, sélectionnez un emplacement pour la connexion EKM. Toutes les clés Cloud KMS associées à cette connexion doivent se trouver au même emplacement que la connexion.

  5. Dans le champ ID de ressource de service (self_link), saisissez la valeur du service de l'Annuaire des services créé dans la section Créer un point de terminaison de service de l'Annuaire des services. Le service de l'Annuaire des services doit se trouver au même emplacement que la connexion.

  6. Dans le champ Nom d'hôte, ajoutez le nom d'hôte de votre gestionnaire de clés externe.

  7. Sous Certificats, cliquez sur Ajouter un certificat pour importer un ou plusieurs certificats de serveur X.509 pour votre gestionnaire de clés externe. Les certificats doivent être au format DER.

  8. Dans le champ Mode de gestion EKM, sélectionnez Manuel pour utiliser la connexion EKM pour les clés externes gérées manuellement, ou sélectionnez Cloud KMS pour utiliser la connexion EKM pour les clés externes coordonnées.

  9. Si vous avez sélectionné Cloud KMS pour le Mode de gestion EKM, saisissez le chemin d'accès à l'espace de chiffrement fourni par votre EKM dans le champ Chemin d'accès à l'espace de chiffrement.

  10. Facultatif. Pour définir la connexion EKM comme connexion par défaut pour ce projet et cet emplacement, cochez la case Définir la connexion comme connexion par défaut. Si une autre connexion EKM est actuellement définie comme connexion par défaut pour ce projet et cet emplacement, cette connexion EKM remplace la connexion par défaut existante.

  11. Cliquez sur Créer.

gcloud

Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.

Pour créer une connexion EKM pour les clés externes gérées manuellement, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • EKM_CONNECTION : nom de la connexion EKM.
  • LOCATION: emplacement Cloud KMS dans lequel vous souhaitez créer la connexion EKM. Toutes les clés Cloud KMS associées à cette connexion doivent se trouver au même emplacement que la connexion.
  • SERVICE_DIRECTORY_SERVICE: ID de ressource du service de l'Annuaire des services pour votre connexion.
  • HOSTNAME : nom d'hôte de votre gestionnaire de clés externe.
  • SERVER_CERTIFICATE_FILES: liste de fichiers séparés par une virgule contenant des certificats de serveur X.509 pour votre gestionnaire de clés externe. Les certificats doivent être au format DER.

Pour créer une connexion EKM pour les clés externes coordonnées, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • EKM_CONNECTION : nom de la connexion EKM.
  • LOCATION: emplacement Cloud KMS dans lequel vous souhaitez créer la connexion EKM. Toutes les clés Cloud KMS associées à cette connexion doivent se trouver au même emplacement que la connexion.
  • SERVICE_DIRECTORY_SERVICE: ID de ressource du service de l'Annuaire des services pour votre connexion.
  • HOSTNAME : nom d'hôte de votre gestionnaire de clés externe.
  • SERVER_CERTIFICATE_FILES: liste de fichiers séparés par une virgule contenant des certificats de serveur X.509 pour votre gestionnaire de clés externe. Les certificats doivent être au format DER.
  • CRYPTO_SPACE_PATH : chemin d'accès à l'espace de chiffrement fourni par votre fournisseur EKM.

Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.

API

Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.

Pour créer une connexion EKM pour les clés externes coordonnées, exécutez la commande suivante :

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"
    }'

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel vous souhaitez créer la connexion EKM.
  • LOCATION: emplacement Cloud KMS dans lequel vous souhaitez créer la connexion EKM.
  • EKM_CONNECTION : nom à utiliser pour la connexion EKM.
  • SERVER_CERTIFICATES: liste de 10 objets Certificate au maximum représentant des certificats de serveur feuille.
  • HOSTNAME : nom d'hôte de votre gestionnaire de clés externe.
  • CRYPTO_SPACE_PATH : chemin d'accès à l'espace de chiffrement fourni par votre fournisseur EKM.

Pour créer une connexion EKM pour les clés externes gérées manuellement, exécutez la commande suivante :

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
            }
          ]
        }
      ]
    }'

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel vous souhaitez créer la connexion EKM.
  • LOCATION: emplacement Cloud KMS dans lequel vous souhaitez créer la connexion EKM.
  • EKM_CONNECTION : nom à utiliser pour la connexion EKM.
  • SERVER_CERTIFICATES : liste de 10 objets Certificate au maximum représentant des certificats de serveur feuille.
  • HOSTNAME : nom d'hôte de votre gestionnaire de clés externe.

Pour en savoir plus, consultez la documentation de l'API EkmConnection.create

État du certificat

Une fois que vous avez importé un certificat pour votre connexion EKM, vous pouvez vérifier l'état général du certificat de la connexion EKM, ainsi que l'état de chaque certificat à partir de la page "Infrastructure KMS".

Les connexions EKM ont un état général dans la colonne État du certificat de chaque connexion. Si l'état d'une connexion EKM est différent de Actif, nous vous recommandons de mettre à jour le ou les certificats de votre connexion EKM.

Les connexions EKM et les certificats individuels peuvent avoir l'état suivant :

  • Actif : le certificat est valide et n'approche pas de sa date d'expiration.
  • Expiration dans 30 jours : le certificat est valide, mais sa date d'expiration est dans les 30 prochains jours.
  • Expiré : le certificat a expiré et n'est plus valide. Nous vous recommandons de mettre à jour tous les certificats expirés.
  • Pas encore valide : le certificat n'est pas actif. Cela peut se produire si la date de début du certificat est ultérieure.

Si votre certificat n'est plus valide, mettez à jour votre connexion EKM dans la Google Cloud console.

Console

  1. Dans la Google Cloud console, accédez à la page Infrastructure KMS.

    Accéder à l'infrastructure KMS

  2. Cliquez sur le nom de la connexion EKM via VPC avec le certificat à mettre à jour.

  3. Cliquez sur Modifier la connexion.

  4. Cliquez sur Ajouter un certificat pour importer un ou plusieurs certificats de serveur X.509 pour votre gestionnaire de clés externe. Les certificats doivent être au format DER.

  5. Supprimez les certificats expirés. Pointez sur le certificat expiré, puis sélectionnez l'icône Supprimer à droite.

  6. Cliquez sur Mettre à jour la connexion pour mettre à jour la connexion EKM via VPC.

Définir une connexion EKM par défaut

Vous pouvez définir une connexion EKM comme connexion par défaut pour un projet et un emplacement donnés. Lorsqu'une connexion EKM par défaut est définie pour un projet et un emplacement, les nouvelles clés Cloud EKM par VPC créées dans les trousseaux de clés de cet emplacement utilisent la connexion EKM indiquée, sauf si une autre connexion EKM est sélectionnée.

Pour définir une connexion EKM par défaut pour son projet et son emplacement, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Infrastructure KMS.

    Accéder à l'infrastructure KMS

  2. Cliquez sur la connexion EKM que vous souhaitez définir par défaut.

  3. Cliquez sur Modifier la connexion.

  4. Sous Connexion par défaut, cochez la case Définir la connexion par défaut pour LOCATION.

  5. Cliquez sur Mettre à jour la connexion.

Gcloud CLI

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

Remplacez les éléments suivants :

  • LOCATION: emplacement Cloud KMS pour lequel vous souhaitez définir la connexion EKM par défaut.
  • PROJECT_ID: nom du projet pour lequel vous souhaitez définir la connexion EKM par défaut.
  • DEFAULT_EKM_CONNECTION: nom de la connexion EKM que vous souhaitez définir par défaut pour cet emplacement. L'emplacement de la connexion EKM doit correspondre à l'emplacement indiqué dans LOCATION.

API

Pour définir la connexion EKM par défaut pour un emplacement, utilisez la méthode 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"}'

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet pour lequel vous souhaitez définir une connexion EKM par défaut.
  • LOCATION: emplacement Cloud KMS pour lequel vous souhaitez définir la connexion EKM par défaut.
  • DEFAULT_EKM_CONNECTION: nom de la connexion EKM que vous souhaitez définir par défaut pour cet emplacement. L'emplacement de la connexion EKM doit correspondre à l'emplacement indiqué dans LOCATION.

Si une autre connexion EKM a été définie par défaut pour cet emplacement, la connexion EKM sélectionnée la remplace. Une seule connexion EKM peut être définie par défaut pour un projet et un emplacement donnés.

Étape suivante