Utiliser des clés de chiffrement gérées par le client (CMEK)

Cette page explique comment chiffrer le contenu stocké dans les plug-ins Service Extensions à l'aide de clés de chiffrement gérées par le client (CMEK).

Présentation

Par défaut, Service Extensions chiffre le contenu client au repos. Service Extensions gère le chiffrement pour vous sans aucune action supplémentaire de votre part. Cette option est appelée chiffrement par défaut de Google.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Service Extensions. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Service Extensions est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Toutes les opérations de chiffrement sont facturées au Google Cloud projet auquel appartient la clé, quel que soit le type de clé. Pour en savoir plus sur les tarifs, consultez Tarifs de Cloud KMS.

Créer une clé et accorder des autorisations

Les instructions suivantes expliquent comment créer une clé pour un plug-in et accorder des autorisations pour chiffrer et déchiffrer les données du plug-in avec la clé.

  1. Dans le Google Cloud projet où vous souhaitez gérer vos clés, procédez comme suit :

    1. Pour pouvoir créer une clé, activez l'API Cloud Key Management Service.

    2. Créez un trousseau de clés et une clé à l'aide de l'une des options suivantes :

      L'emplacement de la clé Cloud KMS doit correspondre à celui du plug-in que vous souhaitez chiffrer.

  2. Le compte de service Service Extensions doit exister dans votre projet Service Extensions. Le nom du compte de service est service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com, où PROJECT_NUMBER correspond au numéro du projet dans lequel Service Extensions est exécuté. Google Cloud

    Le compte de service est créé automatiquement lorsque vous créez votre premier plug-in dans votre projet Service Extensions. Si vous n'avez pas encore créé de plug-in dans votre projet, créez le compte de service en exécutant la commande suivante :

    gcloud beta services identity create \
        --service=networkactions.googleapis.com \
        --project=PROJECT
    

    Remplacez PROJECT par l'ID du projet dans lequel Service Extensions est exécuté.

  3. Accordez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) au compte de service Service Extensions sur la clé que vous avez créée.

    Console

    1. Dans la console Google Cloud , accédez à la page Gestion des clés.

      Accéder à la page "Gestion des clés"

    2. Sélectionnez la clé que vous avez créée.

    3. Accordez l'accès au compte de service Service Extensions :

      1. Sélectionnez Afficher le panneau d'informations.
      2. Cliquez sur Ajouter un membre.
      3. Ajoutez le compte de service Service Extensions. Le compte de service est service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com.
      4. Dans Rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
      5. Cliquez sur Enregistrer.
    4. Répétez l'étape précédente pour accorder l'accès au compte du créateur du plug-in.

    5. Revenez à la page Gestion des clés et sélectionnez à nouveau la clé.

    6. Sélectionnez Afficher le panneau d'informations. Les rôles s'affichent dans la colonne Rôle/Membre.

    gcloud

    1. Accordez l'accès au compte de service Service Extensions en exécutant la gcloud kms keys add-iam-policy-binding commande :

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] KEY_NAME \
          --location LOCATION
          --keyring=KEYRING_NAME \
          --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com \
          --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Remplacez les éléments suivants :

      • PROJECT: ID du projet contenant la clé
      • KEY_NAME : nom de la clé
      • LOCATION : emplacement de la clé
      • KEYRING_NAME : nom du trousseau de clés
      • PROJECT-NUMBER: le numéro du projet du Google Cloud projet
    2. Répétez l'étape précédente en définissant member sur le compte du créateur du plug-in.

Lorsque vous créez un plug-in ou le mettez à jour, spécifiez la clé CMEK. La clé fournit le chiffrement pour l'image du plug-in et les données de configuration. Les autres données du plug-in sont protégées par le chiffrement par défaut de Google.

Rechiffrement automatique

Lorsque la version principale de la clé KMS change (manuellement par un utilisateur ou par rotation automatique), les données du plug-in protégées par la clé sont automatiquement rechiffrées avec la nouvelle version de la clé.

Suivi des clés

Vous pouvez utiliser le suivi des clés pour répertorier les ressources de plug-in qu'une clé protège. Pour en savoir plus, consultez Afficher l'utilisation des clés.

Quotas Cloud Key Management Service et Service Extensions

Lorsque vous utilisez des clés CMEK dans Service Extensions, par exemple dans les opérations suivantes, vos projets peuvent consommer des quotas de requêtes de chiffrement Cloud KMS :

  • Création ou mise à jour d'un plug-in protégé par CMEK
  • Ajout de nouvelles versions ou modification de la version principale des plug-ins protégés par CMEK
  • Liste des versions de plug-ins protégés par CMEK dont le champ plugin_config_data est défini
  • Association d'un plug-in à l'extension

Les plug-ins associés entraînent également des opérations de déchiffrement au fil du temps.

Si vous utilisez des clés matérielles (Cloud HSM) ou externes (Cloud EKM), les opérations de chiffrement et de déchiffrement à l'aide de clés CMEK affectent les quotas Cloud KMS.

Supprimer l'accès à un plug-in chiffré par CMEK

Il existe plusieurs façons de supprimer l'accès à un plug-in chiffré par CMEK :

Nous vous recommandons de révoquer les autorisations du compte de service Service Extensions avant de désactiver ou de détruire une clé.

Conséquences de la suppression de l'accès

Les données protégées par CMEK se composent d'images téléchargées depuis Artifact Registry, ainsi que de toutes les données de configuration de plug-in fournies directement (via le champ plugin_config_data).

Une fois que vous avez désactivé ou détruit la clé de chiffrement d'un plug-in, toutes les données du plug-in protégées par CMEK deviennent inaccessibles en quelques minutes. Il peut s'écouler plusieurs dizaines de minutes avant que toutes les répliques de diffusion d'un plug-in cessent de diffuser le trafic après la révocation de sa clé.

Les métadonnées du plug-in, telles que le nom, la description, les libellés ou la configuration de la journalisation, restent accessibles.

Par conséquent, la suppression de l'accès à une clé protégeant un plug-in actif (c'est-à-dire un plug-in associé à une extension) empêche le plug-in de diffuser le trafic. Toutes les requêtes adressées au plug-in échouent.

Lorsque l'appel de plug-in échoue, le comportement de l'extension dépend du champ fail_open :

  • Si le champ est défini sur true, la requête est transmise au service cible, sans indiquer que l'appel de plug-in a échoué.
  • Si le champ est défini sur false, la requête n'atteint pas le service cible.

Limites

  • La protection CMEK définie sur un plug-in est limitée à Service Extensions.

    Pour protéger les ressources de plug-in sur d'autres produits Google, activez CMEK via ces produits. Pour les images de plug-in importées dans Artifact Registry, configurez CMEK pour Artifact Registry. Pour protéger les journaux générés par votre plug-in, configurez CMEK pour Cloud Logging.

  • Vous ne pouvez pas modifier le mode de chiffrement (géré par Google ou CMEK) d'un plug-in. Toutefois, vous pouvez mettre à jour le plug-in pour qu'il utilise une autre clé KMS.

  • Seuls les plug-ins régionaux sont compatibles. De plus, les plug-ins ne peuvent être chiffrés que par une clé située dans la même région que le plug-in.

Étape suivante