Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWS KMS porte-clés
Notre bibliothèque de chiffrement côté client a été renommée SDK de chiffrement de AWS base de données. Ce guide du développeur fournit toujours des informations sur le client de chiffrement DynamoDB. |
Un AWS KMS trousseau de clés utilise le chiffrement symétrique ou le RSA asymétrique AWS KMS keyspour générer, chiffrer et déchiffrer les clés de données. AWS Key Management Service (AWS KMS) protège vos clés KMS et effectue des opérations cryptographiques dans les limites de la norme FIPS. Nous vous recommandons d'utiliser un AWS KMS trousseau de clés, ou un trousseau de clés présentant des propriétés de sécurité similaires, dans la mesure du possible.
Vous pouvez également utiliser une clé KMS multirégionale symétrique dans un AWS KMS trousseau de clés. Pour plus de détails et des exemples d'utilisation de plusieurs régions AWS KMS keys, consultezUtilisation de plusieurs régions AWS KMS keys. Pour plus d'informations sur les clés multirégionales, consultez la section Utilisation des clés multirégionales dans le manuel du AWS Key Management Service développeur.
AWS KMS les porte-clés peuvent inclure deux types de clés d'emballage :
-
Clé du générateur : génère une clé de données en texte brut et la chiffre. Un trousseau de clés qui chiffre des données doit comporter une clé génératrice.
-
Clés supplémentaires : chiffre la clé de données en texte brut générée par la clé du générateur. AWS KMS les porte-clés peuvent comporter zéro ou plusieurs clés supplémentaires.
Vous devez disposer d'une clé génératrice pour chiffrer les enregistrements. Lorsqu'un AWS KMS trousseau de clés ne comporte qu'une seule AWS KMS clé, celle-ci est utilisée pour générer et chiffrer la clé de données.
Comme tous les porte-clés, les AWS KMS porte-clés peuvent être utilisés indépendamment ou dans un porte-clés multiple avec d'autres porte-clés du même type ou d'un type différent.
Rubriques
Autorisations requises pour les AWS KMS porte-clés
Le SDK AWS de chiffrement de base de données n'en nécessite pas Compte AWS et n'en dépend pas Service AWS. Toutefois, pour utiliser un AWS KMS trousseau de clés, vous devez disposer des autorisations minimales suivantes AWS KMS keys sur celui-ci. Compte AWS
-
Pour chiffrer avec un AWS KMS trousseau de clés, vous avez besoin de l'GenerateDataKeyautorisation kms : sur la clé du générateur. Vous devez disposer de l'autorisation KMS:Encrypt pour toutes les clés supplémentaires du trousseau de clés. AWS KMS
-
Pour déchiffrer avec un AWS KMS trousseau de clés, vous devez disposer de l'autorisation KMS:Decrypt sur au moins une des clés du trousseau de clés. AWS KMS
-
Pour chiffrer avec un trousseau de clés multiples composé de trousseaux de AWS KMS clés, vous avez besoin de l'GenerateDataKeyautorisation kms : sur la clé du générateur située dans le trousseau de clés du générateur. Vous avez besoin de l'autorisation KMS:Encrypt sur toutes les autres clés de tous les autres trousseaux de clés. AWS KMS
-
Pour chiffrer avec un jeu de AWS KMS clés RSA asymétrique, vous n'avez pas besoin de kms : GenerateDataKey ou de KMS:Encrypt car vous devez spécifier le matériel de clé publique que vous souhaitez utiliser pour le chiffrement lorsque vous créez le trousseau de clés. Aucun AWS KMS appel n'est effectué lors du chiffrement avec ce porte-clés. Pour déchiffrer avec un trousseau de AWS KMS clés RSA asymétrique, vous devez disposer de l'autorisation KMS:Decrypt.
Pour obtenir des informations détaillées sur les autorisations pour AWS KMS keys, voir Authentification et contrôle d'accès dans le Guide du AWS Key Management Service développeur.
Identification AWS KMS keys dans un AWS KMS porte-clés
Un AWS KMS porte-clés peut en inclure un ou plusieurs AWS KMS keys. Pour spécifier un AWS KMS key dans un AWS KMS trousseau de clés, utilisez un identifiant de AWS KMS clé compatible. Les identificateurs de clé que vous pouvez utiliser pour identifier un élément AWS KMS key dans un trousseau de clés varient en fonction de l'opération et de l'implémentation du langage. Pour plus de détails sur les identificateurs de clé d'un AWS KMS key, consultez la section Identifiants de clé dans le guide du AWS Key Management Service développeur.
Il est recommandé d'utiliser l'identifiant de clé le plus précis qui soit adapté à votre tâche.
-
Pour chiffrer à l'aide d'un AWS KMS trousseau de clés, vous pouvez utiliser un identifiant de clé, un ARN de clé, un nom d'alias ou un ARN d'alias pour chiffrer les données.
Note
Si vous spécifiez un nom d'alias ou un alias ARN pour une clé KMS dans un jeu de clés de chiffrement, l'opération de chiffrement enregistre l'ARN de clé actuellement associé à l'alias dans les métadonnées de la clé de données chiffrée. Cela n'enregistre pas l'alias. Les modifications apportées à l'alias n'affectent pas la clé KMS utilisée pour déchiffrer vos clés de données chiffrées.
-
Pour déchiffrer avec un AWS KMS trousseau de clés, vous devez utiliser un ARN de clé pour vous identifier. AWS KMS keys Pour plus de détails, consultez Sélection des clés d'emballage.
-
Dans un porte-clés utilisé pour le chiffrement et le déchiffrement, vous devez utiliser un ARN de clé pour identifier les AWS KMS keys.
Lors du déchiffrement, le SDK de chiffrement de AWS base de données recherche dans le jeu de AWS KMS clés une clé capable de déchiffrer l'une AWS KMS key des clés de données chiffrées. Plus précisément, le SDK AWS de chiffrement de base de données utilise le modèle suivant pour chaque clé de données cryptée dans la description du matériel.
-
Le SDK AWS de chiffrement de base de données obtient l'ARN de la clé AWS KMS key qui a chiffré la clé de données à partir des métadonnées de la description du matériel.
-
Le SDK AWS Database Encryption recherche dans le trousseau de clés de déchiffrement un AWS KMS key code ARN correspondant.
-
S'il trouve un AWS KMS key ARN correspondant dans le jeu de clés, le SDK de chiffrement de AWS base de données demande d'utiliser la clé KMS AWS KMS pour déchiffrer la clé de données chiffrée.
-
Dans le cas contraire, il passe à la clé de données chiffrée suivante, le cas échéant.
Création d'un AWS KMS porte-clés
Vous pouvez configurer chaque AWS KMS porte-clés avec un AWS KMS key ou plusieurs AWS KMS keys éléments identiques ou différents Comptes AWS . Régions AWS AWS KMS key Il doit s'agir d'une clé de chiffrement symétrique (SYMMETRIC_DEFAULT
) ou d'une clé RSA KMS asymétrique. Vous pouvez également utiliser une clé KMS multirégionale à chiffrement symétrique. Vous pouvez utiliser un ou plusieurs AWS KMS porte-clés dans un porte-clés multiple.
Vous pouvez créer un AWS KMS trousseau de clés qui chiffre et déchiffre les données, ou vous pouvez créer un trousseau de AWS KMS clés spécialement conçu pour le chiffrement ou le déchiffrement. Lorsque vous créez un AWS KMS trousseau de clés pour chiffrer des données, vous devez spécifier une clé de génération, AWS KMS key qui est utilisée pour générer une clé de données en texte brut et la chiffrer. La clé de données n'est mathématiquement pas liée à la clé KMS. Ensuite, si vous le souhaitez, vous pouvez en spécifier d'autres AWS KMS keys qui chiffrent la même clé de données en texte brut. Pour déchiffrer un champ crypté protégé par ce trousseau de clés, le trousseau de déchiffrement que vous utilisez doit inclure au moins l'un des éléments AWS KMS keys définis dans le trousseau de clés, ou non. AWS KMS keys(Un AWS KMS porte-clés sans numéro AWS KMS keys est connu sous le nom de porte-clés AWS KMS Discovery.)
Toutes les clés d'encapsulation d'un jeu de clés de chiffrement ou d'un jeu de clés multiples doivent être en mesure de chiffrer la clé de données. Si le chiffrement d'une clé d'encapsulation échoue, la méthode de chiffrement échoue. Par conséquent, l'appelant doit disposer des autorisations requises pour toutes les clés du trousseau de clés. Si vous utilisez un jeu de clés de découverte pour chiffrer des données, seul ou dans un jeu de clés multiples, l'opération de chiffrement échoue.
Les exemples suivants utilisent la CreateAwsKmsMrkMultiKeyring
méthode pour créer un jeu de AWS KMS clés avec une clé KMS de chiffrement symétrique. La CreateAwsKmsMrkMultiKeyring
méthode crée automatiquement le AWS KMS client et garantit que le trousseau de clés gère correctement les clés à région unique et à régions multiples. Ces exemples utilisent une clé ARNs pour identifier les clés KMS. Pour plus d’informations, consultez Identification AWS KMS keys dans un AWS KMS porte-clés.
Les exemples suivants utilisent la CreateAwsKmsRsaKeyring
méthode pour créer un AWS KMS trousseau de clés avec une clé RSA KMS asymétrique. Pour créer un trousseau de AWS KMS clés RSA asymétrique, entrez les valeurs suivantes.
-
kmsClient
: créer un nouveau AWS KMS client -
kmsKeyID
: l'ARN de clé qui identifie votre clé RSA KMS asymétrique -
publicKey
: un ByteBuffer fichier PEM codé en UTF-8 qui représente la clé publique de la clé que vous avez transmisekmsKeyID
-
encryptionAlgorithm
: l'algorithme de chiffrement doit êtreRSAES_OAEP_SHA_256
ouRSAES_OAEP_SHA_1
Utilisation de plusieurs régions AWS KMS keys
Vous pouvez utiliser plusieurs régions AWS KMS keys comme clés d'encapsulation dans le SDK de chiffrement AWS de base de données. Si vous chiffrez avec une clé multirégionale dans une clé Région AWS, vous pouvez déchiffrer en utilisant une clé multirégionale associée dans une autre. Région AWS
Les clés KMS multirégionales sont un ensemble de AWS KMS keys clés différentes Régions AWS qui ont le même matériau clé et le même identifiant de clé. Vous pouvez utiliser ces clés associées comme s'il s'agissait de la même clé dans différentes régions. Les clés multirégionales prennent en charge les scénarios courants de reprise après sinistre et de sauvegarde qui nécessitent le chiffrement dans une région et le déchiffrement dans une autre région sans passer un appel interrégional à. AWS KMS Pour plus d'informations sur les clés multirégionales, consultez la section Utilisation des clés multirégionales dans le manuel du AWS Key Management Service développeur.
Pour prendre en charge les clés multirégionales, le SDK de chiffrement de AWS base de données inclut des porte-clés compatibles avec AWS KMS plusieurs régions. La CreateAwsKmsMrkMultiKeyring
méthode prend en charge les clés à région unique et à régions multiples.
-
Pour les clés à région unique, le symbole compatible avec plusieurs régions se comporte de la même manière que le porte-clés à région unique. AWS KMS Il tente de déchiffrer le texte chiffré uniquement à l'aide de la clé à région unique qui a chiffré les données. Pour simplifier votre expérience en matière de trousseau de AWS KMS clés, nous vous recommandons d'utiliser
CreateAwsKmsMrkMultiKeyring
cette méthode chaque fois que vous utilisez une clé KMS de chiffrement symétrique. -
Pour les clés multirégionales, le symbole compatible avec plusieurs régions tente de déchiffrer le texte chiffré avec la même clé multirégionale qui a chiffré les données ou avec la clé multirégionale associée dans la région que vous spécifiez.
Dans les trousseaux de clés compatibles avec plusieurs régions qui utilisent plusieurs clés KMS, vous pouvez spécifier plusieurs clés à région unique ou multirégionale. Toutefois, vous ne pouvez spécifier qu'une seule clé pour chaque ensemble de clés multirégionales associées. Si vous spécifiez plusieurs identificateurs de clé avec le même identifiant de clé, l'appel du constructeur échoue.
Les exemples suivants créent un AWS KMS trousseau de clés avec une clé KMS multirégionale. Les exemples spécifient une clé multirégionale comme clé génératrice et une clé mono-région comme clé enfant.
Lorsque vous utilisez des trousseaux de AWS KMS clés multirégionaux, vous pouvez déchiffrer le texte chiffré en mode strict ou en mode découverte. Pour déchiffrer le texte chiffré en mode strict, instanciez le symbole multirégional avec le code ARN de la clé multirégionale associée dans la région dans laquelle vous êtes en train de déchiffrer le texte chiffré. Si vous spécifiez l'ARN d'une clé multirégionale associée dans une région différente (par exemple, la région où l'enregistrement a été chiffré), le symbole prenant en compte plusieurs régions émettra un appel interrégional pour cela. AWS KMS key
Lors du déchiffrement en mode strict, le symbole prenant en compte plusieurs régions nécessite un ARN clé. Il n'accepte qu'un seul ARN de clé pour chaque ensemble de clés multirégionales associées.
Vous pouvez également déchiffrer en mode découverte à l'aide de clés AWS KMS multirégionales. Lorsque vous déchiffrez en mode découverte, vous n'en spécifiez aucune. AWS KMS keys(Pour plus d'informations sur les porte-clés de AWS KMS découverte d'une seule région, consultezUtilisation d'un porte-clés AWS KMS Discovery.)
Si vous avez chiffré avec une clé multirégionale, le symbole compatible avec plusieurs régions en mode découverte essaiera de déchiffrer en utilisant une clé multirégionale associée dans la région locale. S'il n'en existe aucun, l'appel échoue. En mode découverte, le SDK AWS de chiffrement de base de données ne tente pas d'appeler plusieurs régions pour obtenir la clé multirégionale utilisée pour le chiffrement.
Utilisation d'un porte-clés AWS KMS Discovery
Lors du déchiffrement, il est recommandé de spécifier les clés d'encapsulation que le SDK de chiffrement de AWS base de données peut utiliser. Pour suivre cette bonne pratique, utilisez un jeu de clés de AWS KMS déchiffrement qui limite les clés AWS KMS d'encapsulage à celles que vous spécifiez. Toutefois, vous pouvez également créer un trousseau de clés de AWS KMS découverte, c'est-à-dire un AWS KMS trousseau de clés ne spécifiant aucune clé d'encapsulation.
Le SDK AWS Database Encryption fournit un jeu de clés de AWS KMS découverte standard et un jeu de clés de découverte pour les AWS KMS clés multirégionales. Pour plus d'informations sur l'utilisation de clés multirégionales avec le SDK AWS de chiffrement de base de données, consultez. Utilisation de plusieurs régions AWS KMS keys
Comme il ne spécifie aucune clé d'encapsulation, un jeu de clés de découverte ne peut pas chiffrer les données. Si vous utilisez un jeu de clés de découverte pour chiffrer des données, seul ou dans un jeu de clés multiples, l'opération de chiffrement échoue.
Lors du déchiffrement, un jeu de clés de découverte permet au SDK de chiffrement de AWS base de données de demander AWS KMS à déchiffrer toute clé de données chiffrée à l'aide de AWS KMS key celle qui l'a chiffrée, indépendamment de son propriétaire ou de son accès. AWS KMS key L'appel ne réussit que lorsque l'appelant est kms:Decrypt
autorisé à utiliser le. AWS KMS key
Important
Si vous incluez un trousseau de clés de AWS KMS découverte dans un jeu de clés multiples de déchiffrement, le jeu de clés de découverte remplace toutes les restrictions relatives aux clés KMS spécifiées par les autres trousseaux de clés du jeu de clés multiple. Le porte-clés multiple se comporte comme le porte-clés le moins restrictif. Si vous utilisez un trousseau de découverte pour chiffrer des données, seul ou dans un jeu de clés multiples, l'opération de chiffrement échoue
Le SDK AWS Database Encryption fournit un jeu de clés de AWS KMS découverte pour plus de commodité. Cependant, nous vous recommandons d'utiliser un porte-clés plus limité chaque fois que possible pour les raisons suivantes.
-
Authenticité — Un trousseau de clés de AWS KMS découverte peut utiliser tout AWS KMS key élément utilisé pour chiffrer une clé de données dans la description du matériel, à condition que l'appelant soit autorisé à l'utiliser pour le déchiffrer. AWS KMS key Ce n'est peut-être pas AWS KMS key celui que l'appelant a l'intention d'utiliser. Par exemple, l'une des clés de données cryptées peut avoir été cryptée sous une forme moins sécurisée AWS KMS key que tout le monde peut utiliser.
-
Latence et performances : un jeu de clés de AWS KMS découverte peut être sensiblement plus lent que les autres car le SDK de chiffrement de AWS base de données essaie de déchiffrer toutes les clés de données chiffrées, y compris celles chiffrées AWS KMS keys dans d'autres régions, Comptes AWS et AWS KMS keys que l'appelant n'est pas autorisé à utiliser pour le déchiffrement.
Si vous utilisez un trousseau de clés de découverte, nous vous recommandons d'utiliser un filtre de découverte afin de limiter le nombre de clés KMS pouvant être utilisées à celles Comptes AWS des partitions spécifiées. Pour obtenir de l'aide pour trouver votre identifiant de compte et votre partition, consultez la section Vos Compte AWS identifiants et votre format ARN dans le Références générales AWS.
Les exemples de code suivants instancient un jeu de clés de AWS KMS découverte avec un filtre de découverte qui limite les clés KMS que le SDK de chiffrement de AWS base de données peut utiliser à celles de la aws
partition et du compte d'exemple. 111122223333
Avant d'utiliser ce code, remplacez les valeurs d'exemple Compte AWS et de partition par des valeurs valides pour votre partition Compte AWS and. Si vos clés KMS se trouvent dans des régions chinoises, utilisez la valeur de aws-cn
partition. Si vos clés KMS sont incluses AWS GovCloud (US) Regions, utilisez la valeur de aws-us-gov
partition. Pour tous les autres Régions AWS, utilisez la valeur de aws
partition.
Utiliser un porte-clés de découverte AWS KMS régional
Un trousseau de découverte AWS KMS régional est un trousseau de clés qui ne spécifie pas les ARN des clés KMS. Au lieu de cela, il permet au SDK AWS de chiffrement de base de données de déchiffrer en utilisant uniquement les clés KMS en particulier. Régions AWS
Lors du déchiffrement à l'aide d'un jeu de clés de découverte AWS KMS régional, le SDK AWS de chiffrement de base de données déchiffre toute clé de données chiffrée selon un dans le spécifié. AWS KMS key Région AWS Pour réussir, l'appelant doit avoir l'kms:Decrypt
autorisation d'utiliser au moins l'un des éléments spécifiés Région AWS qui ont chiffré une clé de données. AWS KMS keys
Comme les autres trousseaux de découverte, le trousseau de clés de découverte régional n'a aucun effet sur le chiffrement. Cela ne fonctionne que lors du déchiffrement de champs chiffrés. Si vous utilisez un jeu de clés de découverte régional dans un jeu de clés multiples utilisé pour le chiffrement et le déchiffrement, il n'est efficace que lors du déchiffrement. Si vous utilisez un jeu de clés de découverte multirégional pour chiffrer des données, seul ou dans un jeu de clés multirégional, l'opération de chiffrement échoue.
Important
Si vous incluez un trousseau de clés de découverte AWS KMS régional dans un jeu de clés multiples de déchiffrement, le jeu de clés de découverte régional remplace toutes les restrictions relatives aux clés KMS spécifiées par les autres trousseaux de clés du jeu de clés multiples. Le porte-clés multiple se comporte comme le porte-clés le moins restrictif. Un trousseau de AWS KMS découverte n'a aucun effet sur le chiffrement lorsqu'il est utilisé seul ou dans un jeu de clés multiples.
Le jeu de clés de découverte régional du SDK AWS de chiffrement de base de données tente de déchiffrer uniquement avec des clés KMS dans la région spécifiée. Lorsque vous utilisez un trousseau de clés de découverte, vous configurez la région sur le AWS KMS client. Ces implémentations du SDK de chiffrement de AWS base de données ne filtrent pas les clés KMS par région, mais AWS KMS échoueront à une demande de déchiffrement de clés KMS en dehors de la région spécifiée.
Si vous utilisez un trousseau de clés de découverte, nous vous recommandons d'utiliser un filtre de découverte afin de limiter les clés KMS utilisées pour le déchiffrement à celles figurant dans les partitions Comptes AWS et les partitions spécifiées.
Par exemple, le code suivant crée un trousseau de clés de découverte AWS KMS régional avec un filtre de découverte. Ce jeu de clés limite le SDK AWS de chiffrement de base de données aux clés KMS du compte 111122223333 dans la région USA Ouest (Oregon) (us-west-2).