2016-08-15 1 views
3

La rotation Azure Storage sample code de la clé illustre l'utilisation de plusieurs secrets nommés de manière unique. Cependant, dans KeyVault, il est maintenant possible de créer plusieurs versions d'un seul secret. Je ne vois aucune raison pour laquelle la rotation des clés ne peut pas être obtenue en utilisant des versions et il semble à première vue que ce serait plus facile à gérer.Rotation de la clé Azure KeyVault

Quelqu'un peut-il donner des conseils sur la raison pour laquelle vous choisiriez plusieurs Secrets plutôt que des versions d'un seul Secret pour soutenir la rotation des clés? Et potentiellement toute orientation générale sur ce à quoi sont destinées les versions si ce n'est pas cela?

Merci!

+0

Je ne suis pas un expert, mais en regardant l'API, il semble que chaque secret sans identificateur de version par défaut à la dernière version, et c'est l'approche prévue. Donc, la plupart du temps, il semble que les API (REST, .NET, etc.) ne construisent pas vraiment de modèles de code pour prendre en charge l'utilisation des versions comme vous le souhaitez. –

+0

Par exemple, il semble que la méthode ResolverKeyAsync ne vous permette pas de fournir une valeur de version pour sélectionner différentes versions d'une clé. Peut-être que lorsque les API auront mûri pour cette nouvelle fonctionnalité, ce modèle aura plus de sens. Encore une fois, pas un expert, grain de sel, etc –

+0

Merci @ kyle-hale. En réponse à votre point "[..] regardant l'API, il semble que chaque secret sans un identificateur de version par défaut à la dernière version" - correct. Mais je ne pense pas que cela compte (en fait, je pense que c'est souhaitable). Étant donné que chaque version de la clé peut être adressée uniquement, tant que la version est stockée, les données chiffrées avec une version précédente peuvent être déchiffrées et la dernière version utilisée pour le chiffrement –

Répondre

1

N'hésitez pas à utiliser un seul secret et plusieurs versions pour la rotation des clés, selon le (s) SDK que vous utilisez. Pour nos applications basées sur Node.js, nous avons une configuration qui pointe sur les adresses URI secrètes KeyVault complètes.

Certains secrets ne pointent que sur l'URL courte pour un secret (pas de version), donc l'application obtient "la dernière version".

D'autres secrets nécessitant une rotation nécessitent l'URL complète de la version. Nous utilisons Azure Table Encryption, par exemple; Ainsi, chaque ligne de la table cryptée utilise une clé d'emballage de clé de KeyVault. La clé de retour à la ligne est une URL complète avec version KeyVault, car vous avez besoin de ce secret spécifique pour déchiffrer les données de la table. Au fil du temps, différentes lignes pointeront vers différentes versions clés.

Pour les scénarios généraux, c'est-à-dire faire tourner une version actuelle d'une clé, vous venez de créer votre système de configuration et votre logique de connexion pour prendre en charge 2 clés à la fois. ou envisager une logique basée sur le temps.

Toute approche est bonne, mais considérez comment votre histoire sera belle et "propre" si vous utilisez des versions au fil du temps au lieu de proliférer des noms secrets supplémentaires.

+0

Y a-t-il une limite au nombre de versions qu'un secret peut avoir? –