我有一个winforms应用程序,它将数据库连接字符串存储在应用程序的配置文件中。这不是一个很好的方法来做到这一点。应用程序运行在Azure VM上,并通过虚拟桌面远程应用程序流访问。虽然应用程序的用户没有访问服务器文件系统,但我仍然希望以更好的方式保护连接字符串。使用Azure Key Vault是一种好方法吗?如果是,我将如何做到这一点。如果不是,建议使用哪些其他方法?
70gysomp1#
感谢@Peter Bons和@Anand Sowmithiran带领我们走向正确的方向。
是的,我同意他们使用密钥库,您可以在Azure密钥库中保护您的连接字符串作为秘密。使用密钥库的AFAIK是保护秘密和向用户添加访问权限的好方法。
下面是在Azure密钥保管库中保护连接字符串的步骤。
Create Azure Key vault在Azure门户中,然后在左侧刀片中的对象下选择Secrets,然后单击Generate/import以创建新的Secret。Azure Key vault〉〉Secrets〉〉+ Generate/import。
如下图所示,输入详细信息,如上传选项为手动,然后为您的secret提供名称和值。例如,您可以将您的secret名称为winformconnectionstring,将Secret值为您的DatabaseConnectionString作为值。单击创建。
如果需要,您还可以设置连接字符串的过期日期。通过使用密钥库Secret,您可以保护连接字符串。x1c 0d1x*然后,通过使用Azure密钥库中的访问策略,您可以向特定用户提供访问权限,例如可以读取/写入您的机密的用户。*您还可以通过为应用程序运行的VM分配托管身份来授予应用程序对Key Vault的访问权限。请按照以下步骤操作:
在您的创建的Azure密钥保管库中,转到访问策略〉〉+创建〉〉创建访问策略〉〉权限。如下图所示,在权限中配置为Secret管理,然后在secret权限中,您可以提供您的应用/用户希望对连接字符串密钥保管库执行的权限。
然后在principal中选择要授予访问权限的主体(在本例中为VM的托管标识)。(为此,您需要启用系统分配的标识并复制该对象,然后在此处输入,如图所示,选择您的VM。)
在这里,您可以选择用户的电子邮件地址,也给予访问特定的用户。
在“访问策略”下,您可以看到可以访问您的Secrets的用户/应用程序。x1c4d 1x您还可以参考这些MS document和SO以获得适用于.NET的Azure密钥保管库机密库。这可能会有所帮助。
1条答案
按热度按时间70gysomp1#
感谢@Peter Bons和@Anand Sowmithiran带领我们走向正确的方向。
是的,我同意他们使用密钥库,您可以在Azure密钥库中保护您的连接字符串作为秘密。使用密钥库的AFAIK是保护秘密和向用户添加访问权限的好方法。
下面是在Azure密钥保管库中保护连接字符串的步骤。
Create Azure Key vault在Azure门户中,然后在左侧刀片中的对象下选择Secrets,然后单击Generate/import以创建新的Secret。Azure Key vault〉〉Secrets〉〉+ Generate/import。
如下图所示,输入详细信息,如上传选项为手动,然后为您的secret提供名称和值。例如,您可以将您的secret名称为winformconnectionstring,将Secret值为您的DatabaseConnectionString作为值。单击创建。
如果需要,您还可以设置连接字符串的过期日期。通过使用密钥库Secret,您可以保护连接字符串。x1c 0d1x
*然后,通过使用Azure密钥库中的访问策略,您可以向特定用户提供访问权限,例如可以读取/写入您的机密的用户。
*您还可以通过为应用程序运行的VM分配托管身份来授予应用程序对Key Vault的访问权限。请按照以下步骤操作:
在您的创建的Azure密钥保管库中,转到访问策略〉〉+创建〉〉创建访问策略〉〉权限。如下图所示,在权限中配置为Secret管理,然后在secret权限中,您可以提供您的应用/用户希望对连接字符串密钥保管库执行的权限。
然后在principal中选择要授予访问权限的主体(在本例中为VM的托管标识)。(为此,您需要启用系统分配的标识并复制该对象,然后在此处输入,如图所示,选择您的VM。)
在这里,您可以选择用户的电子邮件地址,也给予访问特定的用户。
在“访问策略”下,您可以看到可以访问您的Secrets的用户/应用程序。x1c4d 1x您还可以参考这些MS document和SO以获得适用于.NET的Azure密钥保管库机密库。这可能会有所帮助。