Amazon Redshift
Guide de la gestion du cluster

Chiffrement de base de données Amazon Redshift

Dans Amazon Redshift, vous pouvez activer le chiffrement de base de données pour vos clusters afin d'améliorer la protection des données inactives. Lorsque vous activez le chiffrement pour un cluster, les blocs de données et les métadonnées système sont chiffrés pour le cluster et ses instantanés.

Vous pouvez activer le chiffrement lorsque vous lancez votre cluster, ou vous pouvez modifier un cluster non chiffré pour utiliser le chiffrement AWS Key Management Service (AWS KMS). Pour ce faire, vous pouvez utiliser une clé gérée par AWS ou une clé gérée par le client. Lorsque vous modifiez votre cluster pour activer le chiffrement KMS, Amazon Redshift migre automatiquement vos données vers un nouveau cluster chiffré. Les instantanés créés à partir du cluster chiffré sont également chiffrés. Vous pouvez également migrer un cluster chiffré vers un cluster non chiffré en modifiant le cluster et en changeant l'option Chiffrer la base de données. Pour plus d'informations, consultez Modification du chiffrement d'un cluster.

Bien que le chiffrement soit un paramètre facultatif dans Amazon Redshift, nous vous recommandons de l'activer pour les clusters qui contiennent des données sensibles. En outre, vous pouvez être contraint d'utiliser le chiffrement en fonction des directives ou règlements régissant vos données. Par exemple, la norme PCI DSS (Payment Card Industry Data Security Standard), les lois américaines Sarbanes-Oxley (SOX) et HIPAA (Health Insurance Portability et Accountability Act) et d'autres règlements similaires fournissent des directives permettant de gérer des types de données spécifiques.

Amazon Redshift utilise une hiérarchie de clés de chiffrement pour chiffrer la base de données. Vous pouvez utiliser AWS Key Management Service (AWS KMS) ou un module de sécurité matérielle (HSM) pour gérer les clés de chiffrement de niveau supérieur dans cette hiérarchie. Le processus qu'Amazon Redshift utilise pour le chiffrement diffère en fonction de la façon dont vous gérez les clés. Amazon Redshift s'intègre automatiquement avec AWS KMS mais pas avec un HSM. Lorsque vous utilisez un HSM, vous devez utiliser des certificats client et de serveur pour configurer une connexion approuvée entre Amazon Redshift et votre HSM.

Chiffrement de base de données pour Amazon Redshift à l'aide d'AWS KMS

Lorsque vous choisissez AWS KMS pour la gestion des clés avec Amazon Redshift, il existe une hiérarchie à quatre niveaux des clés de chiffrement. Ces clés, par ordre hiérarchique, sont la clé principale, une clé de chiffrement du cluster (CEK), une clé de chiffrement de base de données (DEK) et les clés de chiffrement de données.

Lorsque vous lancez votre cluster, Amazon Redshift renvoie une liste des clés principales du client (CMK) que votre compte AWS a créées ou est autorisé à utiliser dans AWS KMS. Vous sélectionnez une clé CMK en guise de clé principale dans la hiérarchie de chiffrement.

Par défaut, Amazon Redshift sélectionne votre clé par défaut en tant que clé principale. Votre clé par défaut est une clé gérée par AWS qui est créée pour votre compte AWS à utiliser dans Amazon Redshift. AWS KMS crée cette clé la première fois que vous lancez un cluster chiffré dans une région AWS et que vous choisissez la clé par défaut.

Si vous ne voulez pas utiliser la clé par défaut, vous devez disposer d'une clé CMK gérée par le client (ou en créer une) séparément dans AWS KMS, avant de lancer votre cluster dans Amazon Redshift. Les clés CMK gérées par le client vous donnent davantage de flexibilité, en vous permettant notamment de créer, d'effectuer la rotation, de désactiver et de définir le contrôle d'accès, ainsi que de contrôler les clés de chiffrement utilisées pour protéger vos données. Pour plus d'informations sur la création de clés CMK, consultez Création de clés dans le AWS Key Management Service Developer Guide.

Si vous souhaitez utiliser une clé AWS KMS d'un autre compte AWS, vous devez avoir l'autorisation d'utiliser cette clé et spécifier son Amazon Resource Name (ARN) dans Amazon Redshift. Pour plus d'informations sur l'accès aux clés dans AWS KMS, consultez Contrôle de l'accès à vos clés dans le AWS Key Management Service Developer Guide.

Une fois que vous choisissez une clé principale, Amazon Redshift demande à AWS KMS de générer une clé de données et de la chiffrer à l'aide de la clé principale sélectionnée. Cette clé de données est utilisée comme clé CEK dans Amazon Redshift. AWS KMS exporte la clé CEK chiffrée vers Amazon Redshift, où elle est stockée en interne sur un disque sur un réseau distinct du cluster avec l'affectation de la clé CMK et le contexte de chiffrement de la clé CEK. Seule la clé CEK chiffrée est exportée vers Amazon Redshift ; la clé CMK reste dans AWS KMS. Amazon Redshift transmet également au cluster la clé CEK chiffrée via un canal sécurisé et la charge dans la mémoire. Puis, Amazon Redshift appelle AWS KMS pour déchiffrer la clé CEK et charge la clé CEK déchiffrée dans la mémoire. Pour plus d'informations sur les affectations, le contexte de chiffrement et les autres concepts liés à AWS KMS, consultez Concepts dans le AWS Key Management Service Developer Guide.

Ensuite, Amazon Redshift génère une clé de manière aléatoire à utiliser en tant que clé DEK et la charge en mémoire dans le cluster. La clé CEK déchiffrée est utilisée pour chiffrer la clé DEK, qui est ensuite transmise via un canal sécurisé depuis le cluster pour être stockée en interne par Amazon Redshift sur le disque dans un autre réseau que celui du cluster. A l'instar de la clé CEK, les versions chiffrées et déchiffrées de la clé DEK sont chargées en mémoire dans le cluster. La version déchiffrée de la clé DEK est ensuite utilisée pour chiffrer les clés de chiffrement individuelles qui sont générées de façon aléatoire pour chaque bloc de données de la base de données.

Lorsque le cluster redémarre, Amazon Redshift commence par les versions stockées en interne et chiffrées des clés CEK et DEK, les recharge dans la mémoire, puis appelle AWS KMS pour déchiffrer la clé CEK avec la clé CMK à nouveau afin qu'elle puisse être chargée en mémoire. La clé CEK déchiffrée est ensuite utilisée pour déchiffrer la clé DEK à nouveau, et la clé DEK déchiffré est chargée dans la mémoire et utilisée pour chiffrer et déchiffrer les clés de bloc de données en fonction des besoins.

Pour plus d'informations sur la création de clusters Amazon Redshift chiffrés avec des clés AWS KMS, consultez Création d'un cluster et Gérer les clusters à l'aide de l'interface de ligne de commande Amazon Redshift et de l'API.

Copie d'instantanés chiffrés par AWS KMS dans une autre région AWS

Les clés AWS KMS sont spécifiques à une région AWS. Si vous permettez la copie d'instantanés Amazon Redshift dans une autre région AWS et que le cluster source et ses instantanés sont chiffrés à l'aide d'une clé principale AWS KMS, vous devez configurer une autorisation pour Amazon Redshift afin d'utiliser une clé principale dans la région AWS de destination. Cette autorisation permet à Amazon Redshift de chiffrer les instantanés dans la région AWS de destination. Pour plus d'informations sur la copie d'instantanés entre régions, consultez Copie d'instantanés sur une autre région AWS.

Note

Si vous activez la copie d'instantanés à partir d'un cluster chiffré et que vous utilisez AWS KMS pour votre clé principale, vous ne pouvez pas renommer votre cluster, car le nom du cluster s'inscrit dans le contexte de chiffrement. Si vous devez renommer votre cluster, vous pouvez désactiver la copie des instantanés de la région AWS source, renommer le cluster, puis configurer et activer à nouveau la copie des instantanés.

Le processus permettant de configurer l'autorisation de copier des instantanés est le suivant.

  1. Dans la région AWS de destination, créez une autorisation de copie d'instantanés en procédant comme suit :

    • Si vous ne possédez pas encore de clé AWS KMS à utiliser, créez-en une. Pour plus d'informations sur la création de clés AWS KMS, consultez Création de clés dans le AWS Key Management Service Developer Guide.

    • Spécifiez un nom pour l'autorisation de copie d'instantanés. Ce nom doit être unique dans cette région AWS pour votre compte AWS.

    • Spécifiez l'ID de clé AWS KMS pour laquelle vous créez l'autorisation. Si vous ne spécifiez pas d'ID de clé, l'autorisation s'applique à votre clé par défaut.

  2. Dans la région AWS source, activez la copie des instantanés et précisez le nom de l'autorisation de copie d'instantanés que vous avez créée dans la région AWS de destination.

Ce processus préalable n'est nécessaire que si vous activez la copie des instantanés à l'aide de l'AWS CLI, l'API Amazon Redshift ou des kits SDK. Si vous utilisez la console, Amazon Redshift fournit le flux de travail approprié pour configurer l'autorisation lorsque vous activez la copie d'instantanés entre régions. Pour plus d'informations sur la configuration de copie d'instantanés entre régions pour les clusters chiffrés par AWS KMS à l'aide de la console, consultez Configurer une copie d'instantané inter-région pour un cluster chiffré AWS KMS–.

Avant que l'instantané soit copié dans la région AWS de destination, Amazon Redshift le déchiffre à l'aide de la clé principale dans la région AWS source et le chiffre à nouveau temporairement à l'aide d'une clé RSA générée de façon aléatoire qu'Amazon Redshift gère en interne. Amazon Redshift copie ensuite l'instantané via un canal sécurisé vers la région AWS de destination, déchiffre l'instantané à l'aide de la clé RSA gérée en interne, puis chiffre à nouveau l'instantané à l'aide de la clé principale dans la région AWS de destination.

Pour plus d'informations sur la configuration de l'autorisation de copie d'instantanés pour les clusters chiffrés par AWS KMS, consultez Configuration de Amazon Redshift pour utiliser les clés de chiffrement AWS KMS à l'aide de l'API Amazon Redshift et l'AWS CLI.

Chiffrement pour Amazon Redshift à l'aide de modules de sécurité matérielle

Si vous n'utilisez pas AWS KMS pour la gestion des clés, vous pouvez utiliser un module de sécurité matérielle (HSM) pour la gestion des clés avec Amazon Redshift.

Important

Le chiffrement HSM n'est pas pris en charge pour les types de nœuds DC2.

Les HSM sont des dispositifs qui permettent de contrôler directement la génération et la gestion des clés. Ils fournissent une plus grande sécurité en séparant la gestion des clés des couches d'application et de base de données. Amazon Redshift prend en charge AWS CloudHSM Classic pour la gestion des clés. Le processus de chiffrement est différent lorsque vous utilisez HSM pour gérer vos clés de chiffrement au lieu de AWS KMS.

Important

Amazon Redshift prend uniquement en charge AWS CloudHSM Classic. Nous ne prenons pas en charge le service AWS CloudHSM plus récent. AWS CloudHSM Classic n'est pas disponible dans toutes les régions AWS. Pour plus d'informations sur les régions AWS disponibles, consultez le tableau des régions AWS.

Lorsque vous configurez votre cluster pour utiliser un HSM, Amazon Redshift envoie une demande au HSM pour générer et stocker une clé à utiliser comme clé CEK. Toutefois, contrairement à AWS KMS, le HSM n'exporte pas la clé CEK vers Amazon Redshift. Au lieu de cela, Amazon Redshift génère de manière aléatoire la clé DEK dans le cluster et la transmet au HSM pour qu'elle soit chiffrée par la clé CEK. Le HSM renvoie la clé DEK chiffrée à Amazon Redshift, où elle est encore chiffrée à l'aide d'une clé principale interne générée de manière aléatoire et stockée en interne sur un disque sur un autre réseau que celui du cluster. Amazon Redshift charge également la version déchiffrée de la clé DEK en mémoire dans le cluster afin que celle-ci puisse être utilisée pour chiffrer et déchiffrer les clés individuelles pour les blocs de données.

Si le cluster est redémarré, Amazon Redshift déchiffre la clé DEK doublement chiffré, stockée en interne à l'aide de la clé principale interne pour renvoyer la clé DEK stockée en interne à l'état de chiffrement CEK. La clé DEK chiffrée par la clé CEK est ensuite transmise au HSM pour être déchiffrée et transmise à Amazon Redshift où elle peut être chargée en mémoire à nouveau pour être utilisée avec des blocs de données individuels.

Configuration d'une connexion approuvée entre Amazon Redshift et un HSM

Lorsque vous optez pour utiliser un HSM pour la gestion de votre clé de cluster, vous devez configurer un lien réseau de confiance entre Amazon Redshift et votre HSM. Cela nécessite une configuration de certificats de client et de serveur. La connexion approuvée est utilisée pour transmettre les clés de chiffrement entre le HSM et Amazon Redshift pendant les opérations de chiffrement et de déchiffrement.

Amazon Redshift crée un certificat de client public à partir d'une paire de clés privée et publique générée de façon aléatoire. Celles-ci sont chiffrées et stockées en interne. Vous téléchargez et enregistrez le certificat de client public dans votre HSM et l'affectez à la partition HSM applicable.

Vous fournissez à Amazon Redshift l'adresse IP HSM, le nom de la partition HSM, le mot de passe de partition HSM et un certificat de serveur HSM public, qui est chiffré à l'aide d'une clé principale interne. Amazon Redshift termine le processus de configuration et vérifie qu'il peut se connecter au HSM. S'il ne peut pas, le cluster est passé à l'État INCOMPATIBLE_HSM et le cluster n'est pas créé. Dans ce cas, vous devez supprimer le cluster incomplet, puis réessayer.

Important

Lorsque vous modifiez votre cluster afin d'utiliser une autre partition HSM, Amazon Redshift vérifie qu'il peut se connecter à la nouvelle partition, mais il ne vérifie pas s'il existe une clé de chiffrement valide. Avant d'utiliser la nouvelle partition, vous devez répliquer vos clés sur la nouvelle partition. Si le cluster est redémarré et que Amazon Redshift ne peut pas trouver de clé valide, le redémarrage échoue. Pour plus d'informations, consultez Réplication de clés entre HSM.

Pour plus d'informations sur la configuration d'Amazon Redshift pour utiliser un HSM, consultez Configuration de Amazon Redshift pour utiliser un module de sécurité matérielle avec l'Amazon Redshift console et Configuration de Amazon Redshift pour utiliser HSM à l'aide de l'API Amazon Redshift et de l'AWS CLI.

Après la configuration initiale, si Amazon Redshift échoue pour vous connecter au HSM, un événement est consigné. Pour plus d'informations sur ces événements, consultez Notifications d'événements Amazon Redshift.

Rotation des clés de chiffrement dans Amazon Redshift

Dans Amazon Redshift vous pouvez effectuer une rotation des clés de chiffrement pour les clusters chiffrés. Lorsque vous démarrez le processus de rotation des clés, Amazon Redshift effectue une rotation de la clé CEK pour le cluster spécifié et pour les instantanés automatiques ou manuels du cluster. Amazon Redshift effectue également une rotation de la clé DEK pour le cluster spécifié, mais ne peut pas effectuer une rotation de la clé DEK pour les instantanés pendant qu'ils sont stockés en interne dans Amazon Simple Storage Service (Amazon S3) et chiffrés à l'aide de la clé DEK existante.

Alors que la rotation est en cours, le cluster est placé dans un état ROTATING_KEYS jusqu'à la fin, au moment où le cluster retourne à l'état AVAILABLE. Amazon Redshift gère le déchiffrement et le re-chiffrement pendant le processus de rotation des clés.

Note

Vous ne pouvez pas effectuer une rotation des clés pour des instantanés sans cluster source. Avant de supprimer un cluster, demandez-vous si ses instantanés reposent sur la rotation des clés.

Etant donné que le cluster est temporairement indisponible pendant le processus de rotation des clés, vous devez effectuer la rotation des clés uniquement dès que les données le nécessitent ou lorsque vous pensez que les clés ont été volées. La bonne pratique consiste à examiner le type de données que vous stockez et à prévoir à quelle fréquence effectuer la rotation des clés de chiffrement des données. La fréquence à laquelle effectuer la rotation des clés varie en fonction de vos stratégies d'entreprise concernant la sécurité des données et des normes du secteur relatives aux données sensibles et à la conformité réglementaire. Assurez-vous que votre plan tient compte des besoins en matière de sécurité autant que des considérations concernant la disponibilité de votre cluster.

Pour plus d'informations sur la rotation des clés, consultez Rotation des clés de chiffrement avec Amazon Redshift console et Rotation des clés de chiffrement à l'aide de l'API Amazon Redshift et de l'AWS CLI.