为什么要使用托管身份?

时间:2020-04-06 21:10:49

标签: azure azure-devops azure-active-directory azure-managed-identity

使用托管身份访问Azure服务有什么好处?我经常看到的是,由于这个原因,您不必将秘密提交给配置文件。但是我正在使用ARM模板部署所有资源,并且我的配置文件中也没有任何秘密。诸如连接字符串之类的设置是在部署期间设置的。我在这里看到的唯一区别是,即使有人访问Azure门户,他也无法使用Managed Identity来获取登录名和密码,例如,我的数据库。但是此人已经可以访问我的订阅。那有问题吗?

托管身份还给我什么?

4 个答案:

答案 0 :(得分:4)

这不仅与是否存储配置秘密有关,还与需要存储和管理多少秘密有关。
创建托管身份(特别是system-assigned托管身份)时,团队中的任何人都无需管理甚至访问与该应用程序身份相关的机密。身份已颁发,您可以为其提供对各种资源(例如密钥库)的访问权限。利用该访问权限,其他人将无法使用应用程序的身份。

如果将托管服务标识与密钥保险库等一起使用,则还可以更轻松地限制有权访问配置机密的人数。您只能提供对Vault的访问权限,而仍然允许其他人查看/编辑该应用程序及其非保密配置。

答案 1 :(得分:3)

您只是看到幸福的道路。例如,如果攻击者利用您应用程序中的漏洞并获取连接字符串怎么办?如果您使用托管身份,则他/她将无法模拟您的服务。

答案 2 :(得分:1)

  • 秘密/密钥管理。旋转秘密是最佳做法。这是 通过托管身份自动完成。如果手动/脚本更改密码会很复杂。

  • 秘密/密钥清单。轻松查看哪些应用程序具有哪些功能 权限。

  • 正在撤消访问权限。轻松撤消对特定应用程序的访问权限。 通过更新例如密码来取消访问权限可能会很吓人。

  • 粒度。授予连接字符串访问存储帐户的权限 将完全访问该存储帐户中的所有内容。通过使用 在资源上的MI / RBAC,例如可以设置对 特定的斑点。

答案 3 :(得分:0)

为什么不在连接字符串中使用加密。托管ID位于计算机上,如果有人可以访问计算机,则该ID可能会受到损害。