Utiliser les clés de chiffrement gérées par le client

Par défaut, Eventarc chiffre le contenu client au repos. Eventarc gère le chiffrement sans intervention 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 Eventarc. 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. Cloud KMS vous permet également de consulter les journaux d'audit et de 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 clés CMEK, l'accès à vos ressources Eventarc 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).

Les clés de chiffrement gérées par le client sont stockées sous forme de clés logicielles, dans un cluster Cloud HSM ou en externe à l'aide de Cloud External Key Manager.

Cloud KMS génère des journaux d'audit Cloud lorsque les clés sont activées, désactivées ou utilisées par les ressources Eventarc Advanced pour chiffrer et déchiffrer les messages. Pour en savoir plus, consultez la page Informations sur la journalisation d'audit Cloud KMS.

Éléments protégés par CMEK

Vous pouvez configurer le chiffrement CMEK pour un canal utilisé par Eventarc et chiffrer les événements qui transitent par le canal.

L'activation d'un canal avec CMEK protège les données qui lui sont associées (par exemple, le sujet Pub/Sub utilisé en tant que couche transport) à l'aide d'une clé de chiffrement à laquelle vous seul pouvez accéder.

Notez que lorsque vous activez le chiffrement CMEK pour le canal Google dans un projet Google Cloud, tous les déclencheurs Eventarc pour les types d'événements Google dans ce projet et cette région sont entièrement chiffrés avec cette clé CMEK. Les clés CMEK ne peuvent pas être appliquées par déclencheur.

Avant de commencer

Avant d'utiliser cette fonctionnalité dans Eventarc, vous devez :

Console

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

  2. Créez un trousseau de clés.
  3. Créez une clé pour un trousseau de clés spécifié.

gcloud

  1. Mettez à jour les composants gcloud.
    gcloud components update
  2. Activez les API Cloud KMS et Eventarc pour le projet qui stockera vos clés de chiffrement.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
  3. Créez un trousseau de clés.
  4. Créez une clé pour un trousseau de clés spécifié.

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

Notez que Cloud KMS et Eventarc sont des services régionalisés. La région de la clé Cloud KMS et du canal Eventarc protégé doivent être identiques.

Accorder au compte de service Eventarc l'accès à une clé

Pour permettre au compte de service Eventarc d'accéder à la clé Cloud KMS, ajoutez-le en tant que compte principal de clé et attribuez-lui le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS :

Console

Lorsque vous activez la fonctionnalité CMEK pour un canal Google ou tiers via la console, vous êtes invité à attribuer le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service. Pour en savoir plus, consultez les sections Activer le chiffrement CMEK pour les types d'événements Google ou Activer le chiffrement CMEK pour un canal d'événement tiers.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --member serviceAccount:SERVICE_AGENT_EMAIL \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Remplacez les éléments suivants :

  • KEY_NAME : nom de la clé. Exemple :my-key
  • KEY_RING : nom du trousseau de clés. Exemple : my-keyring.
  • LOCATION : emplacement de la clé. Exemple : us-central1.
  • SERVICE_AGENT_EMAIL : adresse e-mail du compte de service avec le rôle eventarc.serviceAgent.

    Par exemple, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. Pour plus d'informations, consultez la page Agents de service.

Activer les CMEK pour les types d'événements Google

Les déclencheurs Eventarc qui acheminent les types d'événements Google publient des événements dans un canal virtuel appelé canal Google, spécifique à un projet et à une région. Ce canal virtuel est disponible dans toutes les régions Eventarc.

Lorsque vous activez le chiffrement CMEK pour le canal Google dans un projet Google Cloud, tous les déclencheurs Eventarc pour les types d'événements Google dans ce projet et cette région sont entièrement chiffrés avec cette clé CMEK. Vous pouvez ajouter plusieurs clés CMEK et associer chacune à une région spécifique du canal Google. Les clés CMEK ne peuvent pas être appliquées par déclencheur.

Console

  1. Dans la console Google Cloud, accédez à la page Eventarc > Canaux.

    Accéder à Eventarc

  2. Cliquez sur un canal avec un fournisseur Google.

  3. Sur la page Modifier le canal, cochez la case Utiliser une clé de chiffrement gérée par le client (CMEK).

  4. Cliquez sur Ajouter une clé de chiffrement.

  5. Sélectionnez une région et, dans la liste Clé de chiffrement CMEK, sélectionnez un trousseau de clés que vous avez créé pour la région. Notez que vous ne pouvez ajouter qu'une seule clé de chiffrement par région pour un canal.

  6. (Facultatif) Pour saisir manuellement le nom de ressource de la clé, dans la liste Clé de chiffrement CMEK, cliquez sur Vous ne trouvez pas votre clé  Saisissez un nom de ressource de clé, puis saisissez le nom de la clé au format spécifié.

  7. Si vous y êtes invité, attribuez le rôle cloudkms.cryptoKeyEncrypterDecrypter au compte de service Eventarc avec le rôle eventarc.serviceAgent.

  8. (Facultatif) Cliquez sur Ajouter une clé de chiffrement pour ajouter un trousseau de clés que vous avez créé pour une région différente.

  9. Cliquez sur Enregistrer.

gcloud

 gcloud eventarc google-channels update \
    --location=LOCATION \
    --crypto-key=KEY

Remplacez les éléments suivants :

  • LOCATION : emplacement du canal Google à protéger. Il doit correspondre à l'emplacement de la clé utilisée.
  • KEY : nom complet de la clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Si vous créez des déclencheurs Pub/Sub à l'aide de vos propres sujets existants, nous vous recommandons de configurer également la clé KMS sur le sujet pour une protection CMEK complète. Pour en savoir plus, consultez la section Configurer les sujets Pub/Sub.

Vérifier l'utilisation de Cloud KMS

Pour vérifier que le canal est désormais compatible avec CMEK, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Eventarc > Déclencheurs.

    Accéder à Eventarc

  2. Cliquez sur un déclencheur qui répertorie une source Google Cloud en tant que fournisseur d'événements et une région que vous avez protégée à l'aide de CMEK.

  3. Sur la page Détails du déclencheur, l'état Chiffrement affiche le message Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc google-channels describe \
    --location=LOCATION

La sortie devrait ressembler à ce qui suit :

 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 updateTime: '2022-06-28T17:24:56.365866104Z'

La clé cryptokeyName affiche la clé Cloud KMS utilisée pour le canal Google.

Activer le chiffrement CMEK pour un canal tiers

Un canal Eventarc pour les tiers est une ressource via laquelle les entités autres que Google Cloud qui proposent une source Eventarc peuvent interagir avec les destinations. Ce canal est spécifique à une région et vous ne pouvez ajouter qu'une seule clé par canal tiers.

Pour activer le chiffrement CMEK pour un canal tiers, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Eventarc > Canaux.

    Accéder à Eventarc

  2. Cliquez sur un canal avec un fournisseur tiers.

  3. Sur la page Détails de la chaîne, cliquez sur Modifier.

  4. Sur la page Modifier le canal, cochez la case Utiliser une clé de chiffrement gérée par le client (CMEK).

  5. Dans la liste Clé de chiffrement CMEK, sélectionnez un trousseau de clés que vous avez créé pour la région. Notez que vous ne pouvez ajouter qu'une seule clé de chiffrement par région et par canal.

  6. (Facultatif) Pour saisir manuellement le nom de ressource de la clé que vous souhaitez utiliser, dans la liste Clé de chiffrement CMEK, cliquez sur Saisir la clé manuellement, puis saisissez le nom de clé au format spécifié.

  7. Si vous y êtes invité, attribuez le rôle cloudkms.cryptoKeyEncrypterDecrypter au compte de service Eventarc avec le rôle eventarc.serviceAgent.

  8. Cliquez sur Enregistrer.

gcloud

 gcloud eventarc channels update CHANNEL_NAME \
    --location=LOCATION \
    --crypto-key=KEY

Remplacez les éléments suivants :

  • CHANNEL_NAME : nom du canal tiers. Pour créer un canal tiers, consultez la section Créer un canal.
  • LOCATION : emplacement du canal tiers à protéger. Il doit correspondre à l'emplacement de la clé.
  • KEY : nom complet de la clé Cloud KMS au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Vérifier l'utilisation de Cloud KMS

Pour vérifier que le canal est désormais compatible avec CMEK, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Eventarc > Déclencheurs.

    Accéder à Eventarc

  2. Cliquez sur un déclencheur avec une source tierce en tant que fournisseur d'événements et une région que vous avez protégée à l'aide du chiffrement CMEK.

  3. Sur la page Détails du déclencheur, l'état Chiffrement affiche le message Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

La sortie devrait ressembler à ce qui suit :

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID
 state: ACTIVE
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

La valeur cryptokeyName correspond à la clé Cloud KMS utilisée pour le canal tiers.

Désactiver les CMEK

Vous pouvez désactiver la protection CMEK associée à un canal. Les événements distribués via ces canaux sont toujours protégés par des clés appartenant à Google et gérées par Google. Pour supprimer la protection CMEK associée à un canal, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Eventarc > Canaux.

    Accéder à Eventarc

  2. En fonction du type de canal, procédez comme suit :

    Canal Google

    1. Cliquez sur un canal avec un fournisseur Google.
    2. Sur la page Modifier le canal, maintenez le pointeur de la souris sur la liste Clé de chiffrement CMEK pour afficher le bouton Supprimer l'élément.
    3. Cliquez sur Supprimer.
    4. Cliquez sur Enregistrer.

    Chaîne de tiers

    1. Cliquez sur un canal avec un fournisseur tiers.
    2. Sur la page Détails du canal, cliquez sur Modifier.
    3. Sur la page Modifier le canal, décochez la case Utiliser une clé de chiffrement gérée par le client (CMEK).
    4. Cliquez sur Enregistrer.

gcloud

En fonction du type de canal, procédez comme suit :

Canal Google

gcloud eventarc google-channels \
    update --clear-crypto-key

Chaîne de tiers

gcloud eventarc channels CHANNEL_NAME \
    update --clear-crypto-key

Désactiver et activer des clés Cloud KMS

Une version de clé stocke le matériel de clé cryptographique que vous utilisez pour chiffrer, déchiffrer, signer et valider les données. Vous pouvez désactiver cette version de clé pour que les données chiffrées avec la clé ne soient pas accessibles.

Lorsque Eventarc ne peut pas accéder aux clés Cloud KMS, la publication d'événements sur des canaux échoue avec des erreurs FAILED_PRECONDITION et la distribution des événements s'arrête. Vous pouvez activer une clé à l'état Désactivée afin que les données chiffrées soient à nouveau accessibles.

Désactiver des clés Cloud KMS

Pour empêcher Eventarc d'utiliser la clé pour chiffrer ou déchiffrer vos données d'événement, effectuez l'une des opérations suivantes :

  • Nous vous recommandons de désactiver la version de clé que vous avez configurée pour le canal. Cela n'affecte que les canaux et les déclencheurs Eventarc associés à la clé spécifique.
  • (Facultatif) Révoquez le rôle cloudkms.cryptoKeyEncrypterDecrypter du compte de service Eventarc. Cela affecte tous les canaux et déclencheurs Eventarc du projet qui sont compatibles avec les événements chiffrés à l'aide de CMEK.

Même si aucune de ces opérations ne garantit une révocation immédiate des accès, les modifications de la gestion de l'authentification et des accès (IAM) se propagent généralement plus rapidement. Pour en savoir plus, consultez les pages Cohérence des ressources Cloud KMS et Propagation des modifications d'accès.

Réactiver des clés Cloud KMS

Pour reprendre la diffusion et la publication d'événements, rétablissez l'accès à Cloud KMS.

Tarifs

Cette intégration n'entraîne pas de coûts supplémentaires, outre les frais liés aux opérations de clés qui sont facturées dans le cadre de votre projet Google Cloud. L'utilisation de CMEK pour un canal entraîne des frais d'accès au service Cloud KMS en fonction de la tarification Pub/Sub.

Pour en savoir plus sur les informations tarifaires les plus récentes, consultez la page Tarifs de Cloud KMS.

Étape suivante