Le Blog Amazon Web Services
Dans quel cas avez-vous besoin des magasins de clés personnalisés d’AWS KMS ?
Vous pouvez utiliser la fonction de magasin de clés personnalisé du service AWS Key Management Service (KMS) pour obtenir un meilleur contrôle sur vos clés KMS. Cette fonctionnalité s’intègre avec AWS KMS et AWS CloudHSM pour vous aider à répondre aux obligations de conformité qui, autrement, nécessiteraient l’utilisation de module de sécurité matérielle spécifique (HSM, Hardware Security Module) déployés on-premises, tout en assurant leur intégration avec les services AWS fournis par AWS KMS. Toutefois, ce contrôle supplémentaire est accompagné d’une augmentation des coûts et d’un impact potentiel sur la performance et la disponibilité.
Cet article vous aidera à décider si l’utilisation d’un magasin de clés personnalisé correspond à la meilleure approche pour vous.
AWS KMS est un service entièrement opéré par AWS qui génère des clés de chiffrement et vous aide à gérer leur utilisation dans plus de 60 services AWS. Le SDK de chiffrement AWS prend en charge AWS KMS et d’autres outils de chiffrement côté client, afin de l’intégrer dans vos propres applications. AWS KMS est conçu pour répondre aux exigences de la grande majorité des clients d’AWS. Toutefois, il existe des situations où les clients doivent gérer leurs clés dans des HSM dédiés dont ils ont le contrôle direct et exclusif.
AWS CloudHSM est un service qui vise principalement à prendre en charge les applications opérées par les clients d’AWS qui sont spécifiquement conçues pour utiliser les HSM. Ce service permet d’avoir un contrôle direct des ressources HSM, mais nécessite également une intégration plus complexe afin de fonctionner avec d’autres services AWS. Avant la fonctionnalité de magasin de clés personnalisé, si vous aviez besoin d’un contrôle direct sur vos HSM afin d’utiliser et stocker des données réglementées dans des services gérés par AWS, vous deviez choisir entre modifier ces exigences, ne pas utiliser un certain service AWS ou construire votre propre solution. Le magasin de clés personnalisé d’AWS KMS vous offre une autre option.
Comment fonctionne un magasin de clés personnalisé ?
Grâce au service de magasin de clés personnalisé, vous pouvez configurer votre propre cluster AWS CloudHSM et autoriser AWS KMS à l’utiliser comme magasin de clés dédié à vos clés plutôt que le magasin de clés d’AWS KMS par défaut. Ensuite, lorsque vous créez des clés dans KMS, vous pouvez choisir de générer les éléments de clé dans votre cluster AWS CloudHSM. Les clés principales client (CMK, Customer Master Key) d’AWS KMS ne quittent jamais les instances d’AWS CloudHSM, et toutes les opérations d’AWS KMS qui utilisent ces clés ne sont effectuées que dans vos HSM. Sur tous les autres aspects, les clés principales stockées dans votre magasin de clés personnalisé sont utilisées d’une manière qui est cohérente avec les autres CMK d’AWS KMS.
Ce diagramme illustre les composants principaux du service et montre comment un cluster de deux instances AWS CloudHSM est connecté à AWS KMS pour créer un magasin de clés contrôlé par le client :
Parce que vous contrôlez votre cluster AWS CloudHSM, vous pouvez gérer directement certains aspects du cycle de vie de vos clés, indépendamment d’AWS KMS. Plus précisément, vous pouvez vérifier que AWS KMS a correctement créé les clés dans vos HSMs et vous pouvez supprimer les clés et restaurer celles sauvegardées à tout moment. Vous pouvez également choisir de connecter et de déconnecter le cluster AWS CloudHSM d’AWS KMS, isolant ainsi efficacement vos clés d’AWS KMS. Cependant, plus le contrôle est important, plus la responsabilité devient grande. Il est important que vous compreniez l’impact de l’utilisation de cette fonctionnalité sur la disponibilité et la durabilité de vos clés et de vos données, comme nous l’abordons dans la prochaine section.
Critères de décision
Les clients d’AWS KMS qui envisagent d’utiliser un magasin de clés personnalisé nous précisent souvent qu’ils comptent utiliser cette fonctionnalité de manière sélective, en décidant clé par clé où les stocker. Pour décider si et comment vous pourriez utiliser cette fonctionnalité, certains points importants doivent être considérés.
Voici quelques raisons pour lesquelles vous pourriez choisir de stocker une clé dans un magasin de clés personnalisé :
- Vous avez des clés qui doivent être protégées dans un HSM à accès dédié ou dans un HSM sur lequel vous avez un contrôle direct et exclusif,
- Vous avez des clés qui doivent impérativement être stockées dans un HSM globalement validé au niveau 3 de la norme FIPS 140-2 (les HSM utilisées dans le magasin de clés d’AWS KMS par défaut sont globalement validées au niveau 2, avec une validation au niveau 3 dans plusieurs catégories, dont la sécurité matérielle),
- Vous avez des clés qui doivent être audités indépendamment d’AWS KMS.
Et voici d’autres considérations qui pourraient influencer votre décision d’utiliser un magasin de clés personnalisé :
- Coût – Chaque magasin de clés personnalisé exige que votre cluster AWS CloudHSM contienne au moins deux HSM. Les tarifs d’AWS CloudHSM varient selon les régions, mais vous devez vous attendre à des coûts d’au moins 1 000 dollars par mois et par HSM, si chaque équipement est provisionné en permanence. Ce coût s’applique que vous fassiez des demandes via l’API d’AWS KMS directement ou indirectement via un service AWS,
- Performance – Le nombre de HSM détermine le volume dans lequel les clés peuvent être utilisées. Il est important de comprendre les modes d’utilisation prévus pour vos clés et de vous assurer que vous avez provisionné vos ressources HSM de manière appropriée,
- Disponibilité – Le nombre de HSM et l’utilisation des zones de disponibilité (AZ) ont un impact sur la disponibilité de votre cluster et, par conséquent, de vos clés. Le risque d’erreurs de configuration qui entraînent la déconnexion d’un magasin de clés personnalisé, ou la suppression et la non-récupération des éléments de clé, doit être compris et évalué,
- Opérations – En utilisant la fonction de magasin de clés personnalisé, vous effectuerez certaines tâches qui sont normalement prises en charge par AWS KMS. Vous devrez mettre en place des clusters HSM, configurer les utilisateurs HSM et éventuellement restaurer les HSM à partir d’une sauvegarde précédente. Il s’agit des tâches sensibles en matière de sécurité pour lesquelles vous devez disposer des ressources et des contrôles appropriés au niveau organisationnel.
Mise en route
Voici un récapitulatif des étapes à suivre pour créer votre première clé dans un magasin de clés personnalisé dans une région donnée.
- Créez votre cluster CloudHSM, initialisez-le et ajoutez des HSM au cluster. Si vous disposez déjà d’un cluster AWS CloudHSM, vous pouvez l’utiliser comme un magasin de clés personnalisé en plus de l’utilisation faite par vos applications existantes,
- Créez un utilisateur CloudHSM afin que AWS KMS puisse accéder à votre cluster pour créer et utiliser des clés,
- Créez un magasin de clés personnalisé dans AWS KMS, donnez-lui un nom, définissez le cluster AWS CloudHSM que vous voulez utiliser et donnez à AWS KMS les informations d’identification pour pouvoir accéder à votre cluster,
- Demandez à AWS KMS d’établir une connexion avec votre cluster et de se connecter,
- Créez une CMK dans AWS KMS comme d’habitude, à l’exception du fait que vous devez maintenant sélectionner AWS CloudHSM comme source de votre élément de clé. Vous définirez les administrateurs, les utilisateurs et les politiques pour la clé comme vous le feriez pour toute autre CMK,
- Utilisez la clé via les API AWS KMS existantes, le CLI AWS ou le SDK de chiffrement AWS. Les requêtes pour utiliser la clé n’ont pas besoin de savoir si la clé est stockée dans un magasin de clés personnalisé ou dans le magasin de clés AWS KMS par défaut.
Synthèse
Certains clients ont besoin de mettre en place des contrôles spécifiques avant de pouvoir utiliser AWS KMS pour gérer les clés de chiffrement dans AWS. La fonction de magasin de clés personnalisé d’AWS KMS vise à satisfaire cette exigence. Vous pouvez appliquer les contrôles fournis par AWS CloudHSM aux clés gérées dans AWS KMS, sans modifier les politiques de contrôle d’accès ni l’intégration entre les services.
Toutefois, en utilisant cette fonctionnalité, vous devenez responsable de certains aspects opérationnels qui seraient autrement gérés par AWS KMS. Il est important que vous ayez les contrôles appropriés en place et que vous compreniez les exigences en termes de performance et de disponibilité de chaque clé que vous créez dans un magasin de clés personnalisé.
Si la migration de données sensibles vers AWS vous a été interdite en raison d’exigences spécifiques de gestion des clés qui ne sont pas exclusivement satisfaites par le magasin de clés AWS KMS par défaut, envisagez d’utiliser la fonctionnalité de magasin de clés personnalisé de AWS KMS.
Article original par Richard Moulds, Principal Product Manager chez AWS, et traduit par Bruno Medeiros de Barros, Solutions Architect chez AWS France, LinkedIn.