2016-08-15 78 views
3

密鑰循環的Azure Storage sample code演示使用多個唯一命名的密鑰。但是,在KeyVault中現在可以創建單個Secret的多個版本。我沒有看到爲什麼使用Versions無法實現按鍵旋轉的原因,並且它看起來就像它更容易管理。Azure KeyVault密鑰旋轉

任何人都可以提供任何指導你爲什麼要選擇多個祕密在單個祕密的版本以支持按鍵旋轉?如果不是這樣的話,可能有關於版本的目標的一般指導?

謝謝!

+0

我不是專家,但看着API,似乎沒有版本標識符的每個機密都默認爲最新版本,這就是預期的方法。所以大多數情況下,它看起來像那裏的API(REST,.NET等)並不是真正構建代碼模式來支持你想要的版本。 –

+0

例如,它看起來像ResolverKeyAsync方法不允許您提供版本值來選擇不同版本的密鑰。也許當APIs已經成熟以適應這種新功能時,這種模式會更有意義。再次,不是專家,鹽粒等。 –

+0

謝謝@ kyle-hale。在回答你的觀點「[..]看API時,似乎沒有版本標識符的每個機密都默認爲最新版本」 - 正確。但我認爲這不重要(實際上我認爲這是可取的)。由於密鑰的每個版本都可以唯一地尋址,所以只要存儲版本,就可以解密使用先前版本加密的數據並將最新版本用於加密 –

回答

1

隨意使用單個祕密和多個版本進行密鑰輪換,具體取決於您使用的是哪個SDK。

對於我們基於Node.js的應用程序,我們的配置指向完整的KeyVault祕密URI。

一些祕密只指向祕密(沒有版本)的短URL,所以應用程序獲得「最新版本」。

需要輪換的其他機密將需要該版本的完整URL。例如,我們使用Azure Table Encryption;因此加密時表中的每一行都使用KeyVault中的密鑰包裝密鑰。密鑰包裝密鑰是一個完整的KeyVault版本化URL,因爲您需要該特定祕密來解密表數據。隨着時間的推移,不同的行將指向不同的密鑰版本。

對於一般場景,即將當前版本的密鑰旋轉到新密鑰,只需構建您的配置系統和連接邏輯,以一次支持2個密鑰 - 如果一個失敗,則使用另一個;或考慮基於時間的邏輯。

任何方法都可以,但考慮如果您隨着時間的推移使用版本而不是擴大其他祕密名稱,那麼您的故事將會變得多麼美好和「乾淨」。

+0

祕密的版本數量是否有限制? –

相關問題