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 d'afficher 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 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 Standard 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 Standard 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
-
Enable the Cloud KMS and Eventarc APIs.
- Créez un trousseau de clés.
- Créez une clé pour un trousseau de clés spécifié.
gcloud
- Mettez à jour les composants
gcloud
.gcloud components update
- 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
- Créez un trousseau de clés.
- 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ôleeventarc.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 Google Cloud projet, 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
Dans la console Google Cloud, accédez à la page Eventarc > Canaux.
Cliquez sur un canal avec un fournisseur Google.
Sur la page Modifier le canal, cochez la case Utiliser une clé de chiffrement gérée par le client (CMEK).
Cliquez sur Ajouter une clé de chiffrement.
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.
(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é.
Si vous y êtes invité, attribuez le rôle
cloudkms.cryptoKeyEncrypterDecrypter
au compte de service Eventarc avec le rôleeventarc.serviceAgent
.(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.
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 formatprojects/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
Dans la console Google Cloud, accédez à la page Eventarc > Déclencheurs.
Cliquez sur un déclencheur qui répertorie une Google Cloud source en tant que fournisseur d'événements et une région que vous avez protégée à l'aide de CMEK.
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 queGoogle 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
Dans la console Google Cloud, accédez à la page Eventarc > Canaux.
Cliquez sur un canal avec un fournisseur tiers.
Sur la page Détails de la chaîne, cliquez sur
Modifier.Sur la page Modifier le canal, sous Chiffrement, sélectionnez Clé Cloud KMS.
Dans la liste Type de clé, sélectionnez une méthode pour gérer vos clés.
Vous pouvez gérer vos clés manuellement ou utiliser Autokey, qui vous permet de générer des trousseaux et des clés à la demande. Si l'option Autokey est désactivée, cela indique qu'elle n'est pas encore intégrée au type de ressource actuel.
Dans la liste Sélectionner une clé Cloud KMS, sélectionnez une clé. Notez que vous ne pouvez ajouter qu'une seule clé de chiffrement par région pour un canal.
(Facultatif) Pour saisir manuellement le nom de ressource de la clé, dans la liste Sélectionner une clé Cloud KMS, cliquez sur Saisir la clé manuellement, puis saisissez le nom de clé au format spécifié.
Si vous y êtes invité, attribuez le rôle
cloudkms.cryptoKeyEncrypterDecrypter
à l'agent de service Eventarc.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 formatprojects/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
Dans la console Google Cloud, accédez à la page Eventarc > Déclencheurs.
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.
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 Google-owned and Google-managed encryption keys. Pour supprimer la protection CMEK associée à un canal, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page Eventarc > Canaux.
En fonction du type de canal, procédez comme suit :
Canal Google
- Cliquez sur un canal avec un fournisseur Google.
- 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.
- Cliquez sur Supprimer.
Cliquez sur Enregistrer.
Vous devrez peut-être actualiser la page pour activer la case Utiliser une clé de chiffrement gérée par le client (CMEK).
Chaîne de tiers
- Cliquez sur un canal avec un fournisseur tiers.
- Sur la page Détails du canal, cliquez sur Modifier.
- Sur la page Modifier le canal, sous Chiffrement, sélectionnez Clé de chiffrement gérée par Google.
- 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
Appliquer une règle d'administration CMEK
Eventarc s'intègre à deux contraintes de règle d'administration pour garantir l'utilisation des CMEK dans l'ensemble d'une organisation:
constraints/gcp.restrictNonCmekServices
permet d'exiger la protection CMEK.constraints/gcp.restrictCmekCryptoKeyProjects
permet de limiter les clés Cloud KMS utilisées pour la protection CMEK.
Cette intégration vous permet de spécifier les exigences de conformité en matière de chiffrement suivantes pour les ressources Eventarc de votre organisation:
- Exiger des CMEK pour les nouvelles ressources Eventarc
- Restreindre les clés Cloud KMS pour un projet Eventarc
Éléments à prendre en compte lors de l'application de règles d'administration
Avant d'appliquer des règles d'administration CMEK, vous devez connaître les points suivants.
Préparez-vous à un retard de propagation
Après avoir défini ou mis à jour une règle d'administration, la prise en compte de la nouvelle règle peut prendre jusqu'à 15 minutes.
Tenir compte des ressources existantes
Les ressources existantes ne sont pas soumises aux règles d'administration nouvellement créées. Par exemple, une règle d'administration ne s'applique pas rétroactivement aux pipelines existants. Ces ressources restent accessibles sans CMEK et, le cas échéant, sont toujours chiffrées avec des clés existantes.
Vérifier les autorisations requises pour définir une règle d'administration
L'autorisation de définir ou de mettre à jour la règle d'administration peut s'avérer difficile à obtenir à des fins de test. Vous devez disposer du rôle Administrateur des règles d'administration, qui ne peut être accordé qu'au niveau de l'organisation (et non au niveau du projet ou du dossier).
Bien que le rôle doit être accordé au niveau de l'organisation, il est toujours possible de spécifier une stratégie qui ne s'applique qu'à un projet ou un dossier spécifique.
Exiger des CMEK pour les nouvelles ressources Eventarc
Vous pouvez utiliser la contrainte constraints/gcp.restrictNonCmekServices
pour exiger que les CMEK soient utilisées pour protéger les nouvelles ressources Eventarc d'une organisation.
Si cette règle d'administration est définie, toutes les requêtes de création de ressources sans clé Cloud KMS spécifiée échouent.
Une fois cette règle définie, elle ne s'applique qu'aux nouvelles ressources du projet. Toutes les ressources existantes sans clé Cloud KMS appliquée continuent d'exister et sont accessibles sans problème.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Utilisez le filtre pour rechercher la contrainte suivante:
constraints/gcp.restrictNonCmekServices
Dans la colonne "Nom", cliquez sur Restreindre les services autorisés à créer des ressources sans CMEK.
Cliquez sur
Gérer la règle.Sur la page Modifier la règle, sous Source de la règle, sélectionnez Remplacer la règle parente.
Sous Règles, cliquez sur Ajouter une règle.
Dans la liste Valeurs de règles, sélectionnez Personnalisé.
Dans la liste Policy type (Type de règle), sélectionnez Deny (Refuser).
Dans le champ Valeurs personnalisées, saisissez les valeurs suivantes:
is:eventarc.googleapis.com
Cliquez sur OK, puis sur Définir la règle.
gcloud
Créez un fichier temporaire
/tmp/policy.yaml
pour stocker la règle :name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:eventarc.googleapis.com
Remplacez
PROJECT_ID
par l'ID du projet auquel vous appliquez cette contrainte.Exécutez la commande
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Pour vérifier que la stratégie est appliquée, vous pouvez essayer de créer un canal Eventarc Standard dans le projet. Le processus échoue, sauf si vous spécifiez une clé Cloud KMS.
Restreindre les clés Cloud KMS pour un projet Eventarc
La contrainte constraints/gcp.restrictCmekCryptoKeyProjects
vous permet de restreindre les clés Cloud KMS que vous pouvez utiliser pour protéger une ressource dans un projet Eventarc.
Par exemple, vous pouvez spécifier une règle semblable à la suivante: "Pour les ressources Eventarc applicables dans projects/my-company-data-project
, les clés Cloud KMS utilisées dans ce projet doivent provenir de projects/my-company-central-keys
OU projects/team-specific-keys
."
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Utilisez le filtre pour rechercher la contrainte suivante:
constraints/gcp.restrictCmekCryptoKeyProjects
Dans la colonne "Nom", cliquez sur Limiter les projets pouvant fournir des clés CryptoKeys KMS pour CMEK.
Cliquez sur
Gérer la règle.Sur la page Modifier la règle, sous Source de la règle, sélectionnez Remplacer la règle parente.
Sous Règles, cliquez sur Ajouter une règle.
Dans la liste Valeurs de règles, sélectionnez Personnalisé.
Dans la liste Type de règle, sélectionnez Autoriser.
Dans le champ Valeurs personnalisées, saisissez les valeurs suivantes:
under:projects/KMS_PROJECT_ID
Remplacez
KMS_PROJECT_ID
par l'ID du projet dans lequel se trouvent les clés Cloud KMS que vous souhaitez utiliser.Par exemple,
under:projects/my-kms-project
.Cliquez sur OK, puis sur Définir la règle.
gcloud
Créez un fichier temporaire
/tmp/policy.yaml
pour stocker la règle :name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects spec: rules: - values: allowedValues: - under:projects/KMS_PROJECT_ID
Remplacez les éléments suivants
PROJECT_ID
: ID du projet auquel vous appliquez cette contrainte.KMS_PROJECT_ID
: ID du projet dans lequel se trouvent les clés Cloud KMS que vous souhaitez utiliser.
Exécutez la commande
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Pour vérifier que la règle a bien été appliquée, vous pouvez essayer de créer un canal Eventarc Standard à l'aide d'une clé Cloud KMS d'un autre projet. Le processus échoue.
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és 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.