在 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");
到目前为止一切正常,但我担心 清晰可见 StorageConnectionString
在 App.config
文件中。
如何确保我的应用程序无法通过逆向工程获得 StorageConnectionString
?
要在 C# 应用程序中安全地存储您的存储帐户访问密钥,您可以使用以下任一选项:
- 将存储帐户密钥存储为环境变量
- 对 blob 存储使用 Azure AD 身份验证而不是访问密钥
您的应用程序应该不使用共享密钥。存储帐户密钥授予对您的存储帐户的完全访问权限。更好的方法是在您的应用程序中使用 Azure AD 使用共享访问签名。
可在此处找到完整的概述:
https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
虽然 Microsoft 建议将 Azure AD 与 SAS 一起使用以授权对 Azure 存储的请求。如果您必须使用共享密钥授权,请使用 Azure Key Vault 保护您的帐户密钥。您可以在运行时从密钥保管库中检索密钥,而不是将它们保存在您的应用程序中。有关 Azure Key Vault 的详细信息,请参阅 Azure Key Vault overview。
我们所有的安全建议都可以在这里找到:
https://docs.microsoft.com/en-us/azure/storage/blobs/security-recommendations
我正在构建一个 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");
到目前为止一切正常,但我担心 清晰可见 StorageConnectionString
在 App.config
文件中。
如何确保我的应用程序无法通过逆向工程获得 StorageConnectionString
?
要在 C# 应用程序中安全地存储您的存储帐户访问密钥,您可以使用以下任一选项:
- 将存储帐户密钥存储为环境变量
- 对 blob 存储使用 Azure AD 身份验证而不是访问密钥
您的应用程序应该不使用共享密钥。存储帐户密钥授予对您的存储帐户的完全访问权限。更好的方法是在您的应用程序中使用 Azure AD 使用共享访问签名。
可在此处找到完整的概述:
https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
虽然 Microsoft 建议将 Azure AD 与 SAS 一起使用以授权对 Azure 存储的请求。如果您必须使用共享密钥授权,请使用 Azure Key Vault 保护您的帐户密钥。您可以在运行时从密钥保管库中检索密钥,而不是将它们保存在您的应用程序中。有关 Azure Key Vault 的详细信息,请参阅 Azure Key Vault overview。
我们所有的安全建议都可以在这里找到:
https://docs.microsoft.com/en-us/azure/storage/blobs/security-recommendations