我试图了解Azure Key Vault将提供的安全优势(或同样的AWS KMS)
我了解密钥管理的好处,能够轻松地轮换,更改,审核密钥访问 .
让我感到困惑的是它如何更安全 .
据我了解,如果我开发一个Web应用程序并想保护我的连接字符串(例如),我可以在Key Vault中创建一个密钥对并将其保存在那里 . 然后我在AAD中创建一个应用程序,并使用客户端ID / Secret / URI对Key Vault进行身份验证以获取我的连接字符串 . 资源组还可以进一步限制这一点 .
但是现在这意味着我要保护客户端ID / Secret / URI .
这怎么样更好?
附:我不是开发人员!我只想在这些事情中四处寻找,从一个devops的角度来理解它们 . 因此,如果你能够将你的答案瞄准典型的无知操作员,那将是值得赞赏的;)
2 回答
Azure Key Vault uses Hardware Security Modules (HSMs) by Thales . 关于HSM的特殊之处在于他们没有给你钥匙 . 您可以在HSM中创建或导入密钥 . 稍后,您将数据提供给HSM,HSM正在对该数据执行加密操作 . 例如 . 加密,解密,散列等 . 顺便说一下,那些硬件设备真的很贵 . 使用Azure Key Vault,您可以以较低的价格使用此保护 . 这是使用Azure Key Vault的一个好处 .
问题 why this is more secure :密钥比受到危害的单个虚拟机更有 Value . 如果您的某个虚拟机已遭到入侵,并且您的虚拟机上有加密密钥,则攻击者会拥有您的密钥 .
如果您的VM上只有您的客户端ID和密码,则攻击者只有那些凭据而不是您的密钥 . 正如您所知,即使使用这些凭据,攻击者也无法从HSM获取密钥 . 这意味着攻击者可以使用您的凭据在一定时间内执行加密操作 . 当您识别出攻击时,您将使凭据无效 .
So the difference in a nutshell:
没有HSM:攻击者拥有您的密钥,并且可以根据需要使用这些密钥(并且它们是有效的) .
使用HSM:攻击者没有您的密钥,只能使用您的凭据执行加密操作,只要它们有效 .
从开发人员的角度来看,要了解azure key Vault的概念,我会推荐这个链接 -
https://azure.microsoft.com/en-in/documentation/articles/key-vault-whatis/
它描述了开发人员在三个不同视角中对天蓝色钥匙保险库的需求 -
但是,Azure密钥保管库尚未完全由微软发布 . 完整的密钥保险库将于2015年12月发布,这将是ARM的扩展功能 .