[英]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.