Bonnes pratiques pour l'utilisation des CMEK

Cette page décrit les bonnes pratiques à suivre pour configurer le chiffrement au repos à l'aide de clés de chiffrement gérées par le client (CMEK) sur vos Trusted Cloud ressources. Ce guide s'adresse aux architectes cloud et aux équipes de sécurité. Il décrit les bonnes pratiques et les décisions que vous devez prendre lors de la conception de votre architecture CMEK.

Ce guide suppose que vous connaissez déjà Cloud Key Management Service (Cloud KMS) et les clés de chiffrement gérées par le client.

Décider d'utiliser CMEK

Nous vous recommandons d'utiliser CMEK pour chiffrer les données au repos dans les services Trusted Cloudsi vous avez besoin de l'une des fonctionnalités suivantes:

  • Possédez vos clés de chiffrement.

  • Contrôlez et gérez vos clés de chiffrement, y compris le choix de l'emplacement, le niveau de protection, la création, le contrôle des accès, la rotation, l'utilisation et la destruction.

  • Générez du matériel de clé dans Cloud KMS ou importez du matériel de clé géré en dehors de Trusted Cloud.

  • Définissez des règles concernant les emplacements où vos clés doivent être utilisées.

  • Supprimez de manière sélective les données protégées par vos clés en cas de départ ou pour remédier aux événements de sécurité (crypto-destruction).

  • Créez et utilisez des clés propres à un client, en établissant une limite cryptographique autour de vos données.

  • Enregistrez l'accès administratif et aux données aux clés de chiffrement.

  • Respecter les réglementations actuelles ou futures qui exigent l'un de ces objectifs.

Si vous n'avez pas besoin de ces fonctionnalités, évaluez si le chiffrement par défaut au repos avec Google Cloud-powered keys est adapté à votre cas d'utilisation. Si vous choisissez de n'utiliser que le chiffrement par défaut, vous pouvez arrêter de lire ce guide.

Concevoir votre architecture CMEK

Lorsque vous concevez une architecture CMEK, vous devez tenir compte de la configuration des clés que vous utiliserez et de la manière dont elles sont gérées. Ces décisions ont une incidence sur vos coûts, vos frais opérationnels et la facilité d'implémentation de fonctionnalités telles que le chiffrement destructeur.

Les sections suivantes présentent des recommandations pour chaque choix de conception.

Utiliser un projet de clé CMEK centralisé pour chaque environnement

Nous vous recommandons d'utiliser un projet de clé CMEK centralisé pour chaque dossier d'environnement. Ne créez pas de ressources chiffrées avec CMEK dans le même projet que celui dans lequel vous gérez les clés Cloud KMS. Cette approche permet d'éviter le partage de clés de chiffrement entre les environnements et de faciliter la séparation des tâches.

Le diagramme suivant illustre ces concepts dans la conception recommandée:

  • Chaque dossier d'environnement comporte un projet de clé Cloud KMS géré séparément des projets d'application.
  • Les trousseaux et les clés Cloud KMS sont provisionnés dans le projet de clé Cloud KMS. Ces clés sont utilisées pour chiffrer les ressources dans les projets d'application.
  • Les stratégies IAM (Identity and Access Management) sont appliquées aux projets ou aux dossiers pour permettre la séparation des tâches. Le principal qui gère les clés Cloud KMS dans le projet de clé Cloud KMS n'est pas le même que celui qui utilise les clés de chiffrement dans les projets d'application.

Structure de dossier et de projet Cloud KMS recommandée

Créer des trousseaux de clés Cloud KMS pour chaque emplacement

Vous devez créer des trousseaus de clés Cloud KMS dans les emplacements où vous déployez des ressourcesTrusted Cloud chiffrées avec CMEK.

  • Les ressources régionales et zonales doivent utiliser un trousseau de clés et un CMEK dans la même région que la ressource ou à l'emplacement global.
  • Les ressources globales doivent utiliser un trousseau de clés et CMEK à l'emplacement global.

L'application des clés régionales fait partie d'une stratégie de régionalisation des données. En appliquant l'utilisation de trousseaux de clés et de clés dans une région définie, vous imposez également que les ressources doivent correspondre à la région du trousseau de clés.

Pour les charges de travail qui nécessitent une haute disponibilité ou des fonctionnalités de reprise après sinistre dans plusieurs emplacements, il vous incombe d'évaluer si votre charge de travail est résiliente en cas de non-disponibilité de Cloud KMS dans une région donnée. Par exemple, un disque persistant Compute Engine chiffré avec une clé Cloud KMS de la région A ne peut pas être recréé dans la région B dans un scénario de reprise après sinistre où la région A est indisponible. Pour atténuer le risque de ce scénario, vous pouvez planifier le chiffrement d'une ressource avec des clés global.

Choisir une stratégie de granularité des clés

La granularité fait référence à l'échelle et à la portée de l'utilisation prévue de chaque clé. Par exemple, une clé qui protège plusieurs ressources est considérée comme moins précise qu'une clé qui ne protège qu'une seule ressource.

Les clés Cloud KMS utilisées pour le CMEK doivent être provisionnées à l'avance avant de créer une ressource qui sera chiffrée avec la clé, comme un disque persistant Compute Engine. Vous pouvez choisir de créer des clés très précises pour des ressources individuelles ou de créer des clés moins précises à réutiliser plus largement entre les ressources.

Bien qu'il n'existe pas de modèle universellement correct, tenez compte des compromis suivants entre les différents modèles:

Clés à haute granularité : par exemple, une clé pour chaque ressource individuelle

  • Contrôle plus précis pour désactiver en toute sécurité les versions de clé:la désactivation ou la destruction d'une version de clé utilisée pour un champ d'application restreint présente un risque moindre d'affecter d'autres ressources que la désactivation ou la destruction d'une clé partagée. Cela signifie également que l'utilisation de clés très précises permet de réduire l'impact potentiel d'une clé compromise par rapport à l'utilisation de clés à faible granularité.
  • Coût:l'utilisation de clés précises nécessite de gérer davantage de versions de clés actives par rapport à une stratégie qui utilise des clés moins précises. Une granularité de clé plus élevée nécessite un plus grand nombre de versions de clés actives, ce qui entraîne des coûts supplémentaires.
  • Coûts opérationnels:l'utilisation de clés très précises peut nécessiter des efforts administratifs ou des outils supplémentaires d'automatisation pour provisionner un grand nombre de ressources Cloud KMS et gérer les contrôles d'accès des agents de service afin qu'ils ne puissent utiliser que les clés appropriées.

Clés à faible granularité : par exemple, une clé pour chaque application, pour chaque région et pour chaque environnement

  • Désactivation sécurisée des versions de clé:la désactivation ou la destruction d'une version de clé utilisée pour une portée étendue nécessite plus de précautions que la désactivation ou la destruction d'une clé très précise. Vous devez vous assurer que toutes les ressources chiffrées par cette version de clé sont rechiffres de manière sécurisée avec une nouvelle version de clé avant de désactiver l'ancienne version de clé. Cela signifie également que l'utilisation de clés à faible granularité peut augmenter l'impact potentiel d'une compromission de clé par rapport à l'utilisation de clés à haute granularité.
  • Coût:l'utilisation de clés moins précises nécessite de créer moins de versions de clé, ce qui réduit les coûts.
  • Surcharge opérationnelle:vous pouvez définir et préprovisionner un nombre connu de clés, avec moins d'efforts pour assurer des contrôles d'accès appropriés.

Choisir le niveau de protection des clés

Lorsque vous créez une clé, il vous incombe de sélectionner le niveau de protection approprié pour chaque clé en fonction de vos exigences concernant les données et les charges de travail chiffrées avec CMEK. Les questions suivantes peuvent vous aider dans votre évaluation:

  1. Avez-vous besoin de l'une des fonctionnalités CMEK ? Vous pouvez consulter les fonctionnalités listées dans la section Décider d'utiliser CMEK de cette page.

    • Si c'est le cas, passez à la question suivante.
    • Si ce n'est pas le cas, nous vous recommandons d'utiliser le S3NS chiffrement par défaut.
  2. Avez-vous besoin d'une certification FIPS 140-2 de niveau 2 ou de niveau 3, ou que le matériel de clé soit stocké en dehors de Trusted Cloud ?

Utiliser le matériel de clé généré par Trusted Cloudsi possible

Cette section ne s'applique pas aux clés Cloud EKM.

Lorsque vous créez une clé, vous devez autoriser Cloud KMS à générer le matériel de clé pour vous ou importer manuellement le matériel de clé généré en dehors de Trusted Cloud. Dans la mesure du possible, nous vous recommandons de choisir l'option générée. Cette option n'expose pas le matériel de clé brut en dehors de Cloud KMS et crée automatiquement de nouvelles versions de clé en fonction de la période de rotation de clé que vous choisissez. Si vous avez besoin de pouvoir importer votre propre matériel de clé, nous vous recommandons d'évaluer les considérations opérationnelles et les risques suivants liés à l'approche BYOK (Bring Your Own Key) :

  • Pouvez-vous implémenter une automatisation pour importer de manière cohérente les nouvelles versions de clé ? Cela inclut à la fois les paramètres Cloud KMS pour limiter les versions de clé à l'importation uniquement et l'automatisation en dehors de Cloud KMS pour générer et importer de manière cohérente le matériel de clé. Quel est l'impact si votre automatisation ne parvient pas à créer une nouvelle version de clé au moment prévu ?
  • Comment comptez-vous stocker ou mettre en séquestre de manière sécurisée le matériel de clé d'origine ?
  • Comment pouvez-vous atténuer le risque que votre processus d'importation de clés fuite le matériel de clé brut ?
  • Quel serait l'impact de la réimportation d'une clé précédemment détruite, car le matériel de clé brut a été conservé en dehors de Trusted Cloud ?
  • L'avantage d'importer vous-même le matériel de clé justifie-t-il l'augmentation des coûts opérationnels et des risques ?

Choisir l'objectif et l'algorithme de clé adaptés à vos besoins

Lorsque vous créez une clé, vous devez sélectionner son objectif et son algorithme sous-jacent. Pour les cas d'utilisation de CMEK, seules les clés avec l'objectif ENCRYPT_DECRYPT symétrique peuvent être utilisées. Cet objectif de clé utilise toujours l'algorithme GOOGLE_SYMMETRIC_ENCRYPTION, qui utilise des clés AES-256 (Advanced Encryption Standard, 256 bits) en mode GCM (Galois Counter Mode), complétées avec des métadonnées internes de Cloud KMS. Lorsque vous utilisez Autokey, ces paramètres sont automatiquement appliqués.

Pour d'autres cas d'utilisation, tels que le chiffrement côté client, consultez les objectifs et algorithmes de clé disponibles pour choisir l'option la plus adaptée à votre cas d'utilisation.

Choisir une période de rotation

Nous vous recommandons d'évaluer la période de rotation des clés adaptée à vos besoins. La fréquence de rotation des clés dépend des exigences de vos charges de travail en fonction de leur sensibilité ou de leur conformité. Par exemple, la rotation des clés peut être requise au moins une fois par an pour répondre à certaines normes de conformité, ou vous pouvez choisir une période de rotation plus fréquente pour les charges de travail hautement sensibles.

Après avoir effectué la rotation d'une clé symétrique, la nouvelle version est marquée comme version de clé principale et est utilisée pour toutes les nouvelles requêtes visant à protéger les informations. Les anciennes versions de clé restent disponibles pour déchiffrer les données chiffrées précédemment protégées par cette version. Lors de la rotation d'une clé, les données chiffrées avec les versions de clé précédentes ne sont pas automatiquement rechiffrées.

La rotation fréquente des clés permet de limiter le nombre de messages chiffrés avec la même version de clé, ce qui contribue à réduire le risque et les conséquences d'une compromission de clé.

Appliquer des contrôles d'accès appropriés

Nous vous recommandons de tenir compte des principes du moindre privilège et de la séparation des tâches lorsque vous planifiez les contrôles d'accès. Les sections suivantes présentent ces recommandations.

Appliquer le principe du moindre privilège

Lorsque vous attribuez une autorisation pour gérer les CMEK, appliquez le principe du moindre privilège et n'accordez que les autorisations minimales nécessaires pour effectuer une tâche. Nous vous recommandons vivement d'éviter d'utiliser des rôles de base. Attribuez plutôt des rôles Cloud KMS prédéfinis pour atténuer les risques d'incidents de sécurité liés à un accès sur-autorisé.

Planifier la séparation des tâches

Gérez des identités et des autorisations distinctes pour les personnes qui administrent vos clés de chiffrement et celles qui les utilisent. La norme NIST SP 800-152 définit une séparation des tâches entre l'officier cryptographique qui active et gère les services d'un système de gestion de clés cryptographiques et l'utilisateur qui utilise ces clés pour chiffrer ou déchiffrer des ressources.

Lorsque vous utilisez CMEK pour gérer le chiffrement au repos avec des services Trusted Cloud , le rôle IAM permettant d'utiliser des clés de chiffrement est attribué à l'agent de service du service Trusted Cloud , et non à l'utilisateur individuel. Par exemple, pour créer des objets dans un bucket Cloud Storage chiffré, un utilisateur n'a besoin que du rôle IAM roles/storage.objectCreator, et l'agent de service Cloud Storage du même projet (comme service-PROJECT_NUMBER@gs-project-accounts.s3ns-system.iam.gserviceaccount.com) a besoin du rôle IAM roles/cloudkms.cryptoKeyEncrypterDecrypter.

Le tableau suivant indique les rôles IAM généralement associés à chaque fonction:

Rôle IAM Description Désignation NIST SP 800-152
roles/cloudkms.admin Fournit un accès aux ressources Cloud KMS, à l'exception des types de ressources et des opérations cryptographiques soumis à des restrictions. Responsable du chiffrement
roles/cloudkms.cryptoKeyEncrypterDecrypter Permet d'utiliser les ressources Cloud KMS pour les opérations encrypt et decrypt uniquement. Utilisateur du système de gestion des clés cryptographiques
roles/cloudkms.viewer Active les opérations get et list. Administrateur audit

Appliquer les CMEK de manière cohérente

Les sections suivantes décrivent des contrôles supplémentaires pour réduire les risques tels que l'utilisation incohérente des clés, la suppression ou la destruction accidentelle.

Appliquer les liens de projet

Nous vous recommandons de protéger les projets avec des droits d'accès pour éviter toute suppression accidentelle. Lorsqu'un lien de projet est appliqué, le projet de clé Cloud KMS ne peut pas être supprimé tant que le lien n'est pas supprimé.

Exiger des clés CMEK

Nous vous recommandons d'appliquer l'utilisation de CMEK à l'ensemble de votre environnement à l'aide de contraintes de règles d'administration.

Utilisez constraints/gcp.restrictNonCmekServices pour bloquer les requêtes de création de certains types de ressources sans spécifier de clé CMEK.

Exiger une durée programmée pour la destruction minimale

Nous vous recommandons de définir une durée minimale de destruction planifiée. La destruction de clé est une opération irréversible pouvant entraîner une perte de données. Par défaut, Cloud KMS utilise une durée de destruction programmée (parfois appelée période de suppression réversible) de 30 jours avant que le matériel de la clé ne soit détruit de manière irrécupérable. Cela permet de disposer d'un certain temps pour restaurer une clé en cas de destruction accidentelle. Toutefois, une personne disposant du rôle Administrateur Cloud KMS peut créer une clé dont la durée de destruction planifiée est aussi courte que 24 heures, ce qui peut ne pas être suffisant pour détecter un problème et restaurer la clé. La durée de destruction planifiée ne peut être définie que lors de la création de la clé.

Lorsqu'une clé est programmée pour destruction, elle ne peut pas être utilisée pour les opérations cryptographiques, et toutes les requêtes d'utilisation de la clé échouent. Pendant ce temps, surveillez les journaux d'audit pour vérifier que la clé n'est pas utilisée. Si vous souhaitez réutiliser la clé, vous devez la restaurer avant la fin de la période de destruction programmée.

Pour vous assurer que toutes les clés créées respectent une durée minimale de destruction programmée, nous vous recommandons de configurer la contrainte de règle d'administration constraints/cloudkms.minimumDestroyScheduledDuration avec une durée minimale de 30 jours ou votre durée préférée. Cette règle d'administration empêche les utilisateurs de créer des clés dont la durée de suppression planifiée est inférieure à la valeur spécifiée dans la règle.

Appliquer les niveaux de protection autorisés pour les clés CMEK

Nous vous recommandons d'appliquer vos exigences concernant les niveaux de protection des clés de manière cohérente dans l'ensemble de votre environnement à l'aide de contraintes de règles d'administration.

Utilisez constraints/cloudkms.allowedProtectionLevels pour exiger que les nouvelles clés, versions de clé et tâches d'importation doivent utiliser les niveaux de protection que vous autorisez.

Configurer des contrôles de détection pour les CMEK

Trusted Cloud fournit différents contrôles de détection pour les CMEK. Les sections suivantes expliquent comment activer et utiliser ces commandes pertinentes pour Cloud KMS.

Activer et agréger la journalisation d'audit

Nous vous recommandons d'agréger les journaux d'audit des activités des administrateurs Cloud KMS (ainsi que les journaux d'activités des administrateurs pour tous les services) dans un emplacement centralisé pour toutes les ressources de votre organisation. Cela permet à une équipe de sécurité ou à un auditeur d'examiner toutes les activités liées à la création ou à la modification de ressources Cloud KMS en même temps. Pour obtenir des conseils sur la configuration de récepteurs de journaux agrégés, consultez la section Agréger et stocker les journaux de votre organisation.

Vous pouvez également activer les journaux d'accès aux données pour consigner les opérations qui utilisent les clés, y compris les opérations de chiffrement et de déchiffrement. Lorsque vous utilisez des CMEK, cela peut générer un volume de journaux important et avoir un impact sur vos coûts, car chaque opération de chaque service qui utilise des CMEK crée des journaux d'accès aux données. Avant d'activer les journaux d'accès aux données, nous vous recommandons de définir un cas d'utilisation clair pour les journaux supplémentaires et d'évaluer l'augmentation de vos coûts de journalisation.

Évaluer vos exigences de conformité

Les différents frameworks de conformité ont des exigences différentes en matière de chiffrement et de gestion des clés. Un framework de conformité décrit généralement les principes et les objectifs généraux de la gestion des clés de chiffrement, mais n'indique pas de manière prescriptive le produit ou la configuration spécifique qui permet de respecter la conformité. Il est de votre responsabilité de comprendre les exigences de votre framework de conformité et de déterminer comment vos contrôles, y compris la gestion des clés, peuvent répondre à ces exigences.

Pour savoir comment les services Trusted Cloud peuvent vous aider à respecter les exigences de différents frameworks de conformité, consultez la ressource suivante :

Récapitulatif des bonnes pratiques

Le tableau suivant récapitule les bonnes pratiques recommandées dans ce document:

Thème Tâche
Décider d'utiliser CMEK Utilisez CMEK si vous avez besoin de l'une des fonctionnalités activées par CMEK.
Projets de clés Cloud KMS Utilisez un projet de clé centralisé pour chaque environnement. Ne créez pas de ressources Cloud KMS dans le même projet que les ressources Trusted Cloudque les clés protègent.
Trousseaux de clés Cloud KMS Créez des trousseaus de clés Cloud KMS pour chaque emplacement où vous souhaitez protéger des ressources. Trusted Cloud
Précision des clés Choisissez un modèle de granularité des clés qui répond à vos besoins en termes de tolérance au risque, de coûts et de frais opérationnels.
Niveau de protection Choisissez Cloud EKM si votre matériel de clé doit être stocké en dehors de Trusted Cloud ou si vous avez besoin d'une certification FIPS 140-2 de niveau 2 ou de niveau 3. Sinon, choisissez des clés logicielles. Consultez les conseils pour choisir un niveau de protection.
Matériel de clé Pour le matériel de clé hébergé sur Trusted Cloud, utilisez le matériel de clé généré par Trusted Cloudlorsque cela est possible. Si vous utilisez du matériel de clé importé, implémentez des procédures et des automatisations pour atténuer les risques.
Objectif et algorithme de la clé Toutes les clés CMEK doivent utiliser l'objectif de clé symétrique ENCRYPT_DECRYPT et l'algorithme GOOGLE_SYMMETRIC_ENCRYPTION.
Période de rotation Utilisez la rotation automatique des clés pour vous assurer qu'elles sont remplacées selon un calendrier. Choisissez et appliquez une période de rotation qui répond à vos besoins, idéalement au moins une fois par an. Utilisez une rotation des clés plus fréquente pour les charges de travail sensibles.
Moindre privilège Accordez les rôles prédéfinis les plus limités qui permettent à vos comptes principaux d'effectuer leurs tâches. N'utilisez pas de rôles de base.
Séparation des tâches Gérez des autorisations distinctes pour les administrateurs de clés et les principaux qui utilisent des clés.
Liens de projet Utilisez des privilèges de projet pour éviter la suppression accidentelle de vos projets clés.
Exiger des CMEK Utilisez la contrainte constraints/gcp.restrictNonCmekServices.
Exiger une durée programmée pour la destruction minimale Utilisez la contrainte constraints/cloudkms.minimumDestroyScheduledDuration.
Appliquer les niveaux de protection autorisés pour les clés CMEK Utilisez la contrainte constraints/cloudkms.allowedProtectionLevels.
Activer et agréger la journalisation d'audit Agrégation des journaux d'audit des activités administratives pour toutes les ressources de votre organisation. Déterminez si vous souhaitez activer la journalisation des opérations à l'aide de clés.
Évaluer les exigences de conformité Examinez votre architecture Cloud KMS et comparez-la aux exigences de conformité que vous devez respecter.