Azure Key Vault为何或如何安全?我需要在服务器上存储密钥URI和客户端ID以及客户端密钥,因此如果有人授予对托管应用程序的服务器的访问权限,他将能够访问存储在密钥库中的密钥和密钥。这意味着将它们存储在服务器上同样安全,对吗?
答案 0 :(得分:4)
您误解了Key Vault。密钥保险库在某种意义上是安全的,没有任何东西通过公共互联网传输,与Key Vault和Azure资源的所有通信都通过Azure Backbone,因此默认情况下它们是安全的(如果您认为Azure是安全的,那么)。 /> 此外,使用Key Vault,您可以允许部署某些证书,而无需查看它们(或复制它们)。基本上,它支持RBAC。
答案 1 :(得分:4)
这对OP来说已经晚了,但我希望它可以帮助其他人在使用Azure Key Vault时解决鸡蛋问题。
在Azure VM上运行应用程序的上下文中,您可以使用客户端证书身份验证,而不是使用client_secret
进行身份验证,而不是documentation: Authenticate with a Certificate instead of a Client Secret中所述。
在上图中:
access_token
,然后使用它访问密钥保管库。开发人员无需知道证书的私钥值即可成功验证其应用。相反,他们只需要知道导入的pfx
(私钥及其证书的容器)在证书库中的位置。
至少在Windows上,您作为机密管理员可以将私钥和证书转换为密码保护的pfx
格式,然后将其部署到Windows证书存储区中。这样,除非他们知道pfx
文件的密码,否则没有人能够知道私钥。
Azure Compute的其他细节方法是使用Azure Managed Service Identity。使用Azure MSI,Azure将自动为您的资源(例如VM)分配身份/服务主体,并且您可以在特定端点上触发只能由您的资源访问的请求以获取access_token
。但要小心Azure MSI仍处于公开预览状态,因此请在使用前查看已知问题。
上图说明了Azure Resource Manager如何为VM分配服务主体身份。
access_token
。access_token
访问授权服务主体访问权限的密钥保管库等资源。