[英]Correct way to securely store Azure blob storage access key in C# app
我正在構建一個 c# 應用程序 (WPF),它將日志文件上傳到 azure blob 存儲。 我將StorageConnectionString
存儲在App.config
文件中,如下所示:
<appSettings>
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<my account name>;AccountKey=<my account key>;EndpointSuffix=core.windows.net" />
</appSettings>
在我的代碼中,我像這樣檢索StorageConnectionString
:
string connectionString = ConfigurationManager.AppSettings.Get("StorageConnectionString");
到目前為止一切正常,但我擔心App.config
文件中清晰可見的StorageConnectionString
。
如何確保我的應用程序無法通過逆向工程來獲取StorageConnectionString
?
您的應用程序不應使用共享密鑰。 存儲帳戶密鑰授予對存儲帳戶的完全訪問權限。 更好的方法是在您的應用程序中使用共享訪問簽名與 Azure AD。
完整的概述可以在這里找到:
https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
雖然 Microsoft 建議使用 Azure AD 和 SAS 來授權對 Azure 存儲的請求。 如果您必須使用共享密鑰授權,請使用Azure Key Vault保護您的帳戶密鑰。 您可以在運行時從密鑰保管庫中檢索密鑰,而不是將它們與您的應用程序一起保存。 有關Azure 密鑰庫的詳細信息,請參閱Azure 密鑰庫概述。
我們所有的安全建議都可以在這里找到:
https://docs.microsoft.com/en-us/azure/storage/blobs/security-recommendations
要在 C# 應用程序中安全地存儲您的存儲帳戶訪問密鑰,您可以使用以下任一選項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.