Ce document fournit des instructions pour configurer des clés de chiffrement gérées par le client (CMEK) pour les journaux stockés dans des buckets de journaux. Ce document explique également comment gérer ces clés et les limites associées à l'utilisation de CMEK.
Vous pouvez configurer CMEK comme paramètre de ressource par défaut pour une organisation ou un dossier. Une fois configuré, Cloud Logging s'assure que tous les nouveaux buckets de journaux de l'organisation ou du dossier sont chiffrés à l'aide d'une clé gérée par le client. Si vous ne fournissez pas de clé lorsque vous créez le bucket de journaux, la clé par défaut est utilisée. Pour en savoir plus, consultez la page Configurer CMEK pour Cloud Logging.
Présentation
Par défaut, Cloud Logging chiffre le contenu client stocké au repos. Les données stockées dans des buckets de journaux par Logging sont chiffrées à l'aide de clés de chiffrement de clés, un processus appelé chiffrement encapsulé. L'accès à vos données de journalisation nécessite l'accès à ces clés de chiffrement de clé, qui sont gérées par Google Cloud sans aucune action de votre part.
Votre organisation peut avoir des exigences de chiffrement réglementaires, de conformité ou avancées que notre chiffrement au repos par défaut ne fournit pas. Pour répondre aux exigences de votre organisation, vous pouvez gérer vos clés au lieu de laisser Google Cloud gérer les clés de chiffrement qui protègent vos données.
Pour en savoir plus sur l'utilisation des clés CMEK, y compris leurs avantages et leurs limites, consultez la page Clés de chiffrement gérées par le client.
Pour le chiffrement symétrique, la rotation périodique et automatique des clés est recommandée en termes de sécurité. Pour en savoir plus, consultez la page Rotation des clés.
Prérequis
Procédez comme suit :
L'utilisation de CMEK présente certaines limites. Avant de créer un bucket de journaux avec CMEK activé, consultez les limites.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Configurez le projet Google Cloud dans lequel vous prévoyez de créer vos clés:
-
Pour obtenir les autorisations nécessaires pour créer des clés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Cloud KMS (
roles/cloudkms.admin
) sur le projet ou sur une ressource parente. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créez un trousseau de clés et des clés.
Cloud Logging vous permet d'utiliser une clé dans n'importe quelle région. Toutefois, lorsque vous créez un bucket de journaux, son emplacement doit correspondre à celui de la clé. Pour en savoir plus sur les régions disponibles, consultez les documents suivants:
Vous ne pouvez pas activer CMEK pour les buckets de journaux créés dans la région
global
.
-
Assurez-vous de disposer des autorisations Cloud Logging suivantes sur le projet Google Cloud dans lequel vous prévoyez de créer des buckets de journaux:
logging.settings.get
logging.buckets.get
logging.buckets.list
logging.buckets.create
logging.buckets.update
Activer CMEK
Une fois les étapes préalables effectuées, suivez ces instructions pour activer le chiffrement CMEK pour un bucket de journaux individuel.
Identifier l'ID du compte de service
Pour déterminer l'ID de compte de service associé à la ressource Google Cloud pour laquelle CMEK s'applique, procédez comme suit:
Exécutez la commande
gcloud logging settings describe
suivante:gcloud logging settings describe --project=BUCKET_PROJECT_ID
Avant d'exécuter la commande précédente, effectuez le remplacement suivant:
- BUCKET_PROJECT_ID: nom du projet Google Cloud dans lequel vous prévoyez de créer le bucket de journaux.
La commande précédente génère un compte de service pour la ressource spécifiée, s'il n'en existe pas déjà un, et renvoie l'ID de ce compte de service dans le champ
kmsServiceAccountId
:kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com name: projects/BUCKET_PROJECT_ID/settings
Le champ
kmsServiceAccountId
liste le compte de service utilisé par Cloud Logging pour appeler Cloud Key Management Service.Si le champ KMS_SERVICE_ACCT_NAME a le format
cmek-pPROJECT_NUMBER
, et si vous utilisez VPC Service Controls ou si vous activez le partage limité au domaine, déterminez si vous devez migrer votre compte de service CMEK. Pour savoir quand vous devez effectuer la migration et comment procéder, consultez la section Résoudre les problèmes liés à VPC Service Controls et au partage limité au domaine.
Affecter le rôle Chiffreur/Déchiffreur
Lorsque vous configurez le chiffrement CMEK au niveau du bucket de journaux, autorisez le compte de service à utiliser votre service Cloud KMS en lui attribuant le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service identifié par le champ kmsServiceAccountId
:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Avant d'exécuter la commande précédente, effectuez les remplacements suivants:
- KMS_PROJECT_ID: identifiant alphanumérique unique du projet Google Cloud qui exécute Cloud KMS. Il est composé du nom de votre projet et d'un numéro attribué de manière aléatoire. Pour savoir comment obtenir cet identifiant, consultez la section Identifier des projets.
- KMS_SERVICE_ACCT_NAME: nom du compte de service affiché dans le champ
kmsServiceAccountId
de la réponse de la commandegcloud logging settings describe
. - KMS_KEY_LOCATION: région de la clé Cloud KMS.
- KMS_KEY_RING: nom du trousseau de clés Cloud KMS.
- KMS_KEY_NAME : nom de la clé Cloud KMS. Son format est le suivant :
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
.
Créer un bucket de journaux et fournir la clé Cloud KMS
Pour créer un bucket de journaux et activer CMEK pour ce bucket, exécutez la commande gcloud logging buckets create
suivante:
gcloud logging buckets create BUCKET_ID \ --location=LOCATION \ --cmek-kms-key-name=KMS_KEY_NAME \ --project=BUCKET_PROJECT_ID
Avant d'exécuter la commande précédente, effectuez les remplacements suivants:
- BUCKET_ID: nom ou ID du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
- KMS_KEY_NAME : nom de la clé Cloud KMS. Son format est le suivant :
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - BUCKET_PROJECT_ID: nom du projet Google Cloud dans lequel le bucket de journaux sera créé.
Vérifier l'activation des clés de chiffrement
Pour vérifier que vous avez bien créé un bucket de journaux avec CMEK activé, exécutez la commande gcloud logging buckets list
suivante:
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Avant d'exécuter la commande précédente, effectuez le remplacement suivant:
- BUCKET_PROJECT_ID: nom du projet Google Cloud qui stocke le bucket de journaux.
Dans la sortie sous forme de tableau, une colonne est intitulée CMEK
. Si la valeur de la colonne CMEK
est TRUE
, le chiffrement CMEK est activé pour le bucket de journaux.
Pour afficher les détails d'un bucket de journaux spécifique, y compris les détails de la clé, exécutez la commande suivante:
gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID
Gérer votre clé Cloud KMS
Les sections suivantes décrivent comment mettre à jour un bucket de journaux pour qu'il utilise la dernière version de clé principale d'une clé Cloud KMS. Elles expliquent également comment modifier, révoquer des accès et désactiver votre clé Cloud KMS.
Effectuer une rotation de votre clé Cloud KMS
Lorsque vous créez une clé Cloud KMS, vous pouvez configurer une période de rotation. Vous pouvez également effectuer une rotation manuelle d'une clé Cloud KMS. Chaque fois qu'une clé est rotée, une nouvelle version de cette clé est créée.
Si vous faites pivoter une clé Cloud KMS, la nouvelle version de clé ne s'applique qu'aux buckets de journaux créés après la rotation des clés. Si la clé est utilisée par un bucket de journaux existant, la rotation de la clé ne modifie pas la façon dont le bucket de journaux protège ses données.
Par exemple, supposons que vous créiez un bucket de journaux et que vous activiez CMEK, puis que vous effectuiez une rotation de la clé Cloud KMS. Le bucket de journaux que vous avez créé n'utilise pas la nouvelle version de clé. Il continue plutôt de protéger ses données avec la version de clé marquée comme principale lors de la création du bucket de journaux.
Pour mettre à jour un bucket de journaux afin qu'il utilise la version de clé principale la plus récente d'une clé Cloud KMS, procédez comme suit:
- Identifiez la clé Cloud KMS actuelle du bucket de journaux. Pour en savoir plus, consultez Vérifier l'activation des clés.
- Identifiez une autre clé Cloud KMS que vous pouvez utiliser. Si votre trousseau ne contient qu'une seule clé, créez-en une.
- Remplacez la clé Cloud KMS du bucket de journaux par la clé Cloud KMS créée à l'étape précédente.
- Remplacez la clé Cloud KMS du bucket de journaux par la clé Cloud KMS d'origine.
Modifier votre clé Cloud KMS
Pour modifier la clé Cloud KMS associée à votre bucket de journaux, créez une clé et mettez à jour les paramètres CMEK du bucket de journaux:
gcloud logging buckets update BUCKET_ID --location=LOCATION \ --cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
- BUCKET_ID: nom ou ID du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
- NEW_KMS_KEY_NAME: nom de la nouvelle clé.
- BUCKET_PROJECT_ID: nom du projet Google Cloud qui stocke le bucket de journaux.
Révoquer l'accès à la clé Cloud KMS
Pour révoquer l'accès de Logging à la clé Cloud KMS à tout moment, supprimez l'autorisation IAM du compte de service configuré pour cette clé.
Si vous supprimez l'accès de Logging à une clé, la prise en compte de la modification peut prendre jusqu'à une heure.
Si vous disposez d'un ensemble de données BigQuery associé, BigQuery ne peut pas utiliser cet accès pour appliquer la clé à une nouvelle table BigQuery. Si vous souhaitez utiliser une clé sur une table BigQuery qui n'est pas associée à la journalisation, suivez la documentation BigQuery. Si vous révoquez l'accès de la journalisation à une clé et que vous disposez d'un ensemble de données BigQuery associé, vous révoquez également l'accès de BigQuery à la même clé.
Vous ne pouvez pas révoquer l'accès de BigQuery à la clé de l'ensemble de données associé tout en préservant l'accès de Logging.
Pour en savoir plus sur l'impact de la révocation des droits d'accès, consultez la section Limites.
Pour supprimer l'accès de la journalisation à une clé, exécutez la commande suivante:
gcloud kms keys remove-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Avant d'exécuter la commande précédente, effectuez les remplacements suivants:
- KMS_PROJECT_ID: identifiant alphanumérique unique du projet Google Cloud qui exécute Cloud KMS. Il est composé du nom de votre projet et d'un numéro attribué de manière aléatoire. Pour savoir comment obtenir cet identifiant, consultez la section Identifier des projets.
- KMS_SERVICE_ACCT_NAME: nom du compte de service affiché dans le champ
kmsServiceAccountId
de la réponse de la commandegcloud logging settings describe
. - KMS_KEY_LOCATION: région de la clé Cloud KMS.
- KMS_KEY_RING: nom du trousseau de clés Cloud KMS.
- KMS_KEY_NAME : nom de la clé Cloud KMS. Son format est le suivant :
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
.
Limites
Voici les limites connues.
Le chiffrement CMEK désactive Error Reporting
Si vous souhaitez utiliser le Error Reporting, n'activez pas les clés de chiffrement gérées par le client (CMEK) sur vos buckets de journaux. Pour en savoir plus, consultez la section Dépannage.
Impossible de supprimer le chiffrement CMEK des buckets de journaux
Vous ne pouvez pas reconfigurer les buckets de journaux pour modifier ou supprimer CMEK.
Dégradation due à l'indisponibilité de la clé Cloud KMS
Une clé Cloud KMS est considérée comme disponible et accessible par Logging si les deux conditions suivantes sont remplies :
- La clé est activée.
- Le compte de service Logging détient des autorisations de chiffrement et de déchiffrement sur la clé.
La journalisation recommande vivement de s'assurer que toutes les clés sont correctement configurées et toujours disponibles.
Perte de la reprise après sinistre
En cas de défaillances critiques dans le stockage principal de Cloud Logging, Logging duplique les données de journalisation dans des fichiers de reprise après sinistre. Lorsque le chiffrement CMEK est activé pour une ressource, telle qu'une organisation Google Cloud, les journaux appartenant à cette ressource sont protégés par la clé CMEK configurée. Si la clé CMEK n'est pas accessible, les fichiers de reprise après sinistre ne peuvent pas être écrits pour cette ressource.
La perte de fichiers de reprise après sinistre n'a aucune incidence sur les opérations de journalisation normales. Toutefois, en cas de sinistre de stockage, Cloud Logging risque de ne pas pouvoir récupérer les journaux des ressources dont le chiffrement CMEK n'est pas correctement configuré.
Compatibilité avec les contraintes
Cloud Customer Care ne peut pas lire les journaux de votre ressource si sa clé n'est pas correctement configurée ou si elle n'est plus disponible.
Performances des requêtes dégradées
Lorsqu'une clé de chiffrement gérée par le client est inaccessible, Cloud Logging continue de chiffrer vos données et de les stocker dans des buckets de journaux. Toutefois, Cloud Logging ne peut pas effectuer d'optimisations en arrière-plan sur ces données. Si l'accès aux clés est restauré, les données deviennent disponibles. Toutefois, elles sont initialement stockées dans un état non optimisé, ce qui peut affecter les performances des requêtes.
Dégradation en raison de l'indisponibilité de la clé Cloud EKM
Lorsque vous utilisez une clé Cloud EKM, Google Cloud n'a aucun contrôle sur la disponibilité de votre clé gérée en externe dans le système partenaire de gestion des clés externes. Pour le chiffrement CMEK au niveau du bucket, si une clé gérée en externe n'est pas disponible, Cloud Logging continue de stocker les journaux dans des buckets de journaux, mais les utilisateurs ne peuvent pas y accéder.
Pour plus d'informations sur les clés externes et les autres solutions possibles, consultez la documentation de Cloud External Key Manager.
Régionalité
Lorsque vous créez un bucket de journaux et activez CMEK, vous devez utiliser une clé dont la région correspond au champ d'application régional de vos données.
Vous ne pouvez pas configurer CMEK pour les buckets de journaux créés dans la région global
.
Disponibilité des bibliothèques clientes
Les bibliothèques clientes de Logging ne fournissent pas de méthodes pour configurer CMEK.
Quotas
Pour en savoir plus sur les limites d'utilisation de Logging, consultez la page Quotas et limites.
Résoudre les erreurs de configuration
Pour savoir comment résoudre les erreurs de configuration CMEK, consultez la page Résoudre les erreurs CMEK et de configuration de l'organisation.