簡體   English   中英

在 C# 應用程序中安全存儲 Azure blob 存儲訪問密鑰的正確方法

[英]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# 應用程序中安全地存儲您的存儲帳戶訪問密鑰,您可以使用以下任一選項:

  1. 將存儲帳戶密鑰存儲為環境變量
  2. 對 Blob 存儲使用 Azure AD 身份驗證,而不是訪問密鑰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM