Architecture Cloud HSM

Auteurs : Adit Sinha, Il-Sung Lee

Remerciements : David Hale

Dernière mise à jour : juin 2021

Cette rubrique présente l'architecture de Cloud HSM.

Présentation

Même si Google Cloud chiffre toutes les données client au repos, certains clients, en particulier ceux qui sont sensibles aux règles de conformité, doivent garder le contrôle des clés utilisées pour chiffrer leurs données. Pour ces clients, Google Cloud propose Cloud HSM, un service permettant de protéger les clés avec un module de sécurité matérielle.

Ce service vous permet de générer des clés de chiffrement et d'effectuer des opérations de cryptographie dans des modules HSM certifiés FIPS 140-2 de niveau 3. Il est entièrement géré. Vous pouvez donc protéger vos charges de travail les plus sensibles, sans avoir à vous soucier des coûts opérationnels engendrés par la gestion d'un cluster HSM. Le service offre plusieurs avantages :

  • Disponibilité mondiale
  • Une API simple, cohérente et unifiée
  • Scaling automatique en fonction de votre utilisation
  • Gestion centralisée et conformité réglementaire

Cloud HSM est disponible dans toutes les régions Google Cloud du monde entier, y compris dans des zones multirégionales plus étendues. Dès que vous activez Cloud HSM, vous pouvez créer et utiliser des clés basées sur HSM pour protéger vos données, y compris celles que vous stockez dans d'autres services Google Cloud, tels que BigQuery, Cloud Storage, et Persistent Disk.

Étant donné que Cloud HSM et le matériel HSM sont gérés par Google, vous êtes exempté de tâches laborieuses et complexes liées à la gestion et à l'utilisation de clés basées sur HSM en production. De plus, vos données sont strictement isolées des autres locataires et services dans Google Cloud. L'API du plan de données Cloud HSM, qui fait partie de l'API Cloud Key Management Service, offre une expérience simplifiée et intuitive.

Cloud HSM accepte les clés de chiffrement gérées par le client (CMEK, Customer-Managed Encryption Key) basées sur HSM, partout où les clés CMEK sont disponibles dans Google Cloud. Par exemple, vous pouvez chiffrer des données dans des buckets Cloud Storage ou des tables Cloud SQL à l'aide d'une clé Cloud HSM que vous gérez.

Cloud HSM est conçu pour assurer la conformité avec les exigences réglementaires, les restrictions géographiques et d'autres règles métier. La section Sécurité et conformité réglementaire explique comment Cloud HSM vous permet de vérifier la conformité des clés existantes, d'importer de manière sécurisée des clés dans Cloud HSM et de gérer la provenance des clés.

Enfin, la section Flux de requêtes affiche la séquence d'événements qui se produit en arrière-plan lorsque vous créez une clé Cloud HSM, utilisez la clé directement ou dans une intégration de CMEK.

Gestion de Cloud HSM

Dans Cloud HSM, les clusters des HSM sont gérés par une équipe d'ingénieurs en fiabilité des sites (SRE) et de techniciens de Google, dans chaque centre de données Google Cloud. Google gère la sécurité physique, la sécurité logique, l'infrastructure, la planification de la capacité, l'expansion géographique et la planification de la reprise après sinistre pour les centres de données dans Cloud HSM.

Abstraction du matériel HSM

En règle générale, les applications communiquent directement avec les HSM à l'aide de PKCS#11 et d'une API de gestion des clusters. Cela nécessite de gérer un code spécialisé pour les charges de travail qui utilisent ou gèrent des clés basées sur HSM.

Cloud HSM élimine la communication avec le HSM en transmettant par proxy les requêtes des clés basées sur HSM via l'API Cloud Key Management Service. L'abstraction réduit le besoin de code propre à HSM. Cloud HSM hérite de l'intégration étroite de Cloud Key Management Service à Google Cloud.

Chacune de ces fonctionnalités offre des avantages considérables en matière de sécurité. L'API Cloud Key Management Service réduit considérablement l'étendue de l'interface HSM, ce qui réduit les risques en cas de violation de la sécurité du client. Par exemple, un pirate informatique ne serait pas en mesure d'effacer l'intégralité des HSM. Les tentatives de destruction de clés individuelles sont atténuées par une période de sécurité de 24 heures.

L'intégration de Cloud Key Management Service avec Google Cloud vous permet de contrôler l'accès aux ressources HSM à l'aide d'Identity and Access Management (IAM). En tant que mécanisme couramment utilisé, une configuration IAM est moins susceptible de rencontrer des erreurs de configuration et des bugs qu'une solution HSM personnalisée.

Schéma de l'architecture Cloud HSM.

Séparation géographique stricte, volontaire

Dans Cloud HSM, vous pouvez choisir de rendre les clés disponibles à l'échelle mondiale ou d'appliquer des restrictions géographiques strictes sur les clés qui en ont besoin.

Les HSM sont souvent divisés en partitions, de sorte qu'un seul appareil physique peut fonctionner comme plusieurs appareils logiques. Vous pouvez utiliser des partitions pour réduire les coûts de déploiement lorsque vous devez séparer l'administration et les clés HSM.

Chaque emplacement régional Cloud HSM est associé à une clé d'encapsulation distincte. La clé d'encapsulation est clonée sur une partition dans chaque HSM de l'emplacement, mais ne quitte jamais le HSM à l'emplacement. Cela permet aux HSM d'une même région de diffuser le même ensemble de clés client et garantit que les HSM situés en dehors de la région ne peuvent pas diffuser ces clés.

Cloud HSM crée également des emplacements multirégionaux via l'encapsulation de clés. Toutes les clés client d'un emplacement multirégional sont encapsulées à l'aide d'une clé d'encapsulation présente sur une partition, dans tous les emplacements qui constituent l'emplacement multirégional. Le service exploite le même matériel pour les emplacements multirégionaux, mais fournit la même isolation forte entre les régions et les emplacements multirégionaux.

Schéma de la zone géographique Cloud HSM

Le schéma de régionalisation dépend de la réplication des clés d'encapsulation sur les partitions appropriées. Chaque modification de configuration doit être approuvée par plusieurs membres de l'équipe Cloud HSM avant d'être active. Les techniciens de centre de données ne peuvent pas accéder à une configuration HSM, à un environnement d'exécution ni à un stockage sur le terrain.

Gestion centralisée

Dans un centre de données traditionnel qui héberge des HSM, la gestion des HSM et de leurs ressources est complètement distincte de la gestion des autres ressources cryptographiques. Cloud HSM est étroitement intégré à Google Cloud, ce qui vous permet de gérer de manière transparente vos ressources Cloud HSM :

  • Vous gérez vos ressources basées sur HSM en même temps que les autres clés dans Cloud Key Management Service et les clés gérées en externe dans Cloud External Key Manager (Cloud EKM).
  • Vous gérez l'accès aux ressources basées sur HSM dans IAM.
  • Les rapports de coûts liés aux opérations de chiffrement utilisant des clés basées sur HSM sont indiqués dans Cloud Billing.
  • Vous pouvez utiliser les clés sauvegardées par HSM de manière transparente dans tous les services Google Cloud qui acceptent le chiffrement des ressources à l'aide de clés de chiffrement gérées par le client (CMEK). Les intégrations de CMEK nécessitent que la clé CMEK et les données qu'elle chiffre se trouvent dans des emplacements géographiques compatibles. En raison de la restriction géographique stricte des clés Cloud HSM, l'ensemble du chiffrement et du déchiffrement des données CMEK est également limité géographiquement.
  • Les opérations administratives sur les ressources basées sur HSM sont toujours consignées au niveau de la couche API dans les journaux d'audit Cloud. Vous pouvez également choisir d'activer la journalisation des accès aux données. Pour plus d'informations, consultez les informations sur les journaux d'audit de Cloud Key Management Service.
  • Google s'associe directement au fabricant du HSM pour garantir la mise à jour du matériel et des logiciels sur chaque HSM, ainsi que pour rechercher et résoudre les problèmes en temps réel. En cas d'exploitation nulle sur le HSM, Google peut désactiver de manière sélective les chemins de code concernés sur les clusters HSM concernés jusqu'à ce que l'exploitation soit corrigée.

Expérience développeur et utilisateur

Comme Google est responsable de la gestion du HSM, Cloud HSM offre des avantages considérables aux développeurs et aux utilisateurs finaux.

HSM à l'échelle de Google

Lorsque vous utilisez du matériel existant sur site ou dans des centres de données, celui-ci est susceptible de brider les performances ou de devenir un point de défaillance unique. Cloud HSM est conçu pour résister fortement aux charges de travail imprévisibles et aux défaillances matérielles.

Toutes les clés client sont stockées sous forme encapsulée avec une clé d'encapsulation régionale dans la base de données KMS et ne peuvent être désencapsulées que par un HSM de la région lors d'une opération de chiffrement. Cela présente plusieurs avantages :

  • La durabilité d'une clé n'est pas liée à un HSM ou à un sous-ensemble de HSM spécifique d'une région.
  • Chaque client Cloud HSM bénéficie de l'évolutivité et de la disponibilité complètes des clusters Cloud HSM diffusant ses clés.
  • Cloud HSM peut gérer un ensemble de clés beaucoup plus volumineux capable d'être stocké sur un HSM.
  • L'ajout ou le remplacement d'un HSM est rapide et sécurisé.

Conception d'API unifiée

Cloud HSM et Cloud Key Management Service partagent une API de gestion et de plan de données commune. Les détails internes de la communication avec un HSM sont extraits de l'appelant.

Par conséquent, aucun changement de code n'est requis pour mettre à jour une application existante qui utilise des clés logicielles dans Cloud Key Management Service pour assurer la compatibilité avec les clés sauvegardées par HSM. Au lieu de cela, vous mettez à jour le nom de ressource de la clé à utiliser.

Sécurité et conformité réglementaire

Cloud HSM peut vous aider à appliquer la conformité réglementaire pour vos charges de travail dans le cloud.

Attestation de clé cryptographique

Chaque fois que vous générez ou importez une clé Cloud HSM, le HSM génère une instruction d'attestation signée avec une clé de signature associée à la partition. L'instruction contient des informations sur les attributs de votre clé. La clé de signature est sauvegardée par des chaînes de certificats racines à la fois dans Google et dans le fabricant du HSM. Vous pouvez télécharger l'instruction d'attestation et les certificats pour vérifier l'authenticité de l'instruction et valider les propriétés de la clé et du HSM qui l'a générée ou importée.

La chaîne de certificats vous permet de vérifier les affirmations suivantes :

  • Le matériel et le micrologiciel HSM sont authentiques.
  • La partition HSM et HSM sont gérés par Google.
  • Le HSM est en mode de fonctionnement FIPS.

Le contenu de l'instruction d'attestation vous permet de vérifier les affirmations suivantes :

  • La clé n'est pas extraite.
  • La clé a été générée pour votre CryptoKeyVersion.
  • La clé publique d'une paire de clés asymétriques correspond à une clé privée basée sur HSM.
  • Le matériel de clé d'une clé symétrique importée correspond à la valeur que vous avez encapsulée.

Importer des clés directement dans les HSM en toute sécurité

Vous pouvez importer en toute sécurité des clés existantes dans Cloud HSM pour conserver une sauvegarde de votre matériel de clé en dehors de Google Cloud, ou pour simplifier la migration de certaines charges de travail vers Google Cloud. Le processus d'importation de clé ne permet pas à Google d'accéder directement au matériel de clé non encapsulé. Cloud HSM fournit une instruction d'attestation pour la clé d'encapsulation générée par HSM afin de vérifier qu'aucun accès n'a eu lieu.

Comme l'importation de clés est susceptible de créer un risque de sécurité et de conformité en permettant aux utilisateurs d'importer des clés provenant de sources inconnues, des rôles Cloud IAM distincts permettent de contrôler avec précision les utilisateurs autorisés à importer des clés dans un projet. Les clés importées peuvent être caractérisées par la déclaration d'attestation générée par le HSM lors de l'importation.

Pour en savoir plus, consultez la page Importer une clé dans Cloud Key Management Service.

Procédures de sécurité strictes pour protéger le matériel HSM

Conformément à la norme FIPS 140-2 de niveau 3, les appareils HSM disposent de mécanismes intégrés qui vous aident à vous protéger et à fournir des preuves de falsification physique.

En plus des garanties fournies par le matériel HSM lui-même, l'infrastructure de Cloud HSM est gérée conformément à la conception de la sécurité dans l'infrastructure Google.

Des procédures documentées et contrôlables protègent l'intégrité de chaque HSM pendant le provisionnement, le déploiement et la production :

  • Toutes les configurations HSM doivent être validées par plusieurs ingénieurs en fiabilité des sites (SRE) Cloud HSM avant de pouvoir être déployées dans un centre de données.
  • Une fois qu'un HSM a été mis en service, la modification de la configuration ne peut être lancée et vérifiée que par plusieurs ingénieurs SRE de Cloud HSM.
  • Un HSM ne peut recevoir que des micrologiciels signés par le fabricant du HSM.
  • Le matériel HSM n'est pas directement exposé à un réseau.
  • Les serveurs qui hébergent du matériel HSM ne peuvent pas exécuter de processus non autorisés.

Isolation des services et des locataires

L'architecture Cloud HSM garantit que les HSM sont protégés contre les interférences malveillantes ou involontaires avec d'autres services ou locataires.

Un HSM qui fait partie de cette architecture n'accepte que les requêtes de Cloud HSM, et le service Cloud HSM n'accepte que les requêtes de Cloud Key Management Service. Cloud Key Management Service impose aux appelants les autorisations IAM appropriées sur les clés qu'ils tentent d'utiliser. Les requêtes non autorisées n'atteignent pas les HSM.

Les clés basées sur HSM sont également soumises à des quotas pour les opérations de chiffrement. Ces quotas protègent votre capacité à exécuter vos charges de travail en évitant les tentatives accidentelles ou malveillantes de surcharge du service. Les quotas par défaut, 3 000 RPM pour les opérations de chiffrement asymétriques et 30 000 RPM pour les opérations de chiffrement symétriques, sont basés sur les modèles d'utilisation observés. Les quotas sont nettement inférieurs à la capacité de service et peuvent être augmentés à la demande.

Flux de requêtes

Cette section explique comment les points forts de l'architecture ci-dessus s'appliquent dans la pratique, en affichant les étapes correspondant aux différents types de requêtes. Ces flux mettent l'accent sur les parties spécifiques à Cloud HSM. Pour plus d'informations sur les étapes communes à toutes les clés, consultez le livre blanc Cloud Key Management Service.

Créer des clés

Lorsque vous créez une clé basée sur HSM, l'API Cloud Key Management Service ne crée pas le matériel de clé, mais demande à HSM de le faire.

Un HSM ne peut créer des clés que dans les emplacements avec lesquels il est compatible. Chaque partition d'un HSM contient une clé d'encapsulation correspondant à un emplacement Cloud Key Management Service. La clé d'encapsulation est partagée entre toutes les partitions compatibles avec l'emplacement Cloud Key Management Service. Le processus de création de clé prend la forme suivante :

  1. Le service Google Front End (GFE) achemine la requête de création de clé vers un serveur Cloud Key Management Service à l'emplacement correspondant à la requête.
  2. L'API Cloud Key Management Service vérifie l'identité de l'appelant, s'il dispose de l'autorisation nécessaire pour créer des clés dans le projet et s'il détient un quota de requêtes d'écriture suffisant.
  3. L'API Cloud Key Management Service transmet la requête à Cloud HSM.
  4. Cloud HSM communique directement avec le HSM. Le HSM :
    1. Crée la clé et l'encapsule avec la clé d'encapsulation spécifique à l'emplacement.
    2. Crée l'instruction d'attestation pour la clé et la signe avec la clé de signature de partition.
  5. Une fois que Cloud HSM a renvoyé la clé encapsulée et l'attestation à Cloud Key Management Service, l'API Cloud Key Management Service encapsule la clé encapsulée par HSM en fonction de la hiérarchie des clés Cloud Key Management Service puis l'écrit dans le projet.

Cette conception garantit que la clé ne peut pas être désencapsulée ou utilisée en dehors d'un HSM, qu'elle ne peut pas être extraite du HSM et qu'elle n'existe dans son état désencapsulé que dans les emplacements que vous comptez utiliser.

Le schéma suivant montre les différences lors de la création de clés Cloud HSM et de clés logicielles dans Cloud Key Management Service.

Schéma de création de clés HSM

Opérations de chiffrement

Lorsque vous effectuez une opération de chiffrement dans Cloud Key Management Service, vous n'avez pas besoin de savoir si vous utilisez une clé logicielle ou une clé basée sur HSM. Lorsque l'API Cloud Key Management Service détecte qu'une opération implique une clé basée sur HSM, elle transfère la requête à un HSM situé au même emplacement.

  1. Le GFE achemine la requête vers un serveur Cloud Key Management Service à l'emplacement approprié. L'API Cloud Key Management Service vérifie l'identité de l'appelant, s'il dispose de l'autorisation nécessaire pour accéder à la clé et effectuer l'opération, et le quota du projet pour les opérations de chiffrement.
  2. L'API Cloud Key Management Service récupère la clé encapsulée du datastore et déchiffre un niveau de chiffrement à l'aide de la clé principale Cloud Key Management Service. La clé est toujours encapsulée avec la clé d'encapsulation HSM pour l'emplacement KMS.
  3. L'API Cloud Key Management Service détecte que le niveau de protection est HSM et envoie la clé partiellement désencapsulée, ainsi que les entrées à l'opération de chiffrement, à Cloud HSM.
  4. Cloud HSM communique directement avec le HSM. Le HSM :
    1. Vérifie que la clé encapsulée et ses attributs n'ont pas été modifiés.
    2. Désencapsule la clé et la charge dans son espace de stockage.
    3. Effectue l'opération de chiffrement et renvoie le résultat.
  5. L'API Cloud Key Management Service renvoie le résultat à l'appelant.

Les opérations de chiffrement utilisant des clés basées sur HSM sont effectuées entièrement dans un HSM à l'emplacement configuré, et seul le résultat est visible par l'appelant.

Ce schéma montre la différence entre la création de clés Cloud HSM et de clés logicielles dans Cloud Key Management Service.

Schéma des opérations de chiffrement HSM

Intégrations de CMEK

L'utilisation combinée de CMEK et de Cloud HSM vous permet de protéger vos données dans certains services Google Cloud à l'aide de clés HSM. Pour configurer un service avec CMEK de manière à utiliser des clés Cloud HSM, il vous suffit de choisir une clé dotée d'un niveau de protection HSM lorsque vous suivez les instructions spécifiques au service.

Lorsqu'un appelant lit ou écrit des données dans un service avec CMEK, il n'a pas besoin d'autorisation directe pour utiliser la clé ni de savoir si la clé est stockée dans un HSM.

Le flux pour une opération CMEK est très semblable à celui d'une opération de chiffrement normale, avec les exceptions suivantes :

  • La requête du service avec CMEK est lancée au sein du réseau de Google et n'a pas besoin de transiter par le serveur GFE.
  • L'API Cloud Key Management Service vérifie que le compte de service du service avec CMEK dispose des autorisations appropriées pour utiliser la clé. L'API Cloud Key Management Service ne valide pas les autorisations sur l'utilisateur final du service avec CMEK.

Cloud HSM est le service de gestion des clés matérielles de Google Cloud. Il offre un certain nombre d'avantages distincts aux utilisateurs qui cherchent à protéger leurs données au repos avec des clés HSM. Le service a été conçu selon les principes d'un accès verrouillé aux API aux HSM, d'une évolutivité sans effort et d'une régionalisation étroite des clés.

Cloud HSM offre la compatibilité CMEK avec les services les plus importants et la présence de Cloud HSM dans toutes les régions Google Cloud (y compris les régions multirégionales et mondiales). Ce service est conçu pour vous permettre de protéger facilement vos données sensibles, où qu'elles se trouvent, grâce à une clé protégée par des appareils FIPS 140-2 de niveau 3.

Si vous désirez nous faire part de vos commentaires sur ce document, contactez-nous à l'adresse cloudhsm-feedback@google.com.

Documentation complémentaire

Pour en savoir plus, consultez les ressources suivantes :

Livres blancs :

Autre documentation :