【问题标题】:Why should I use managed identity?为什么要使用托管标识?
【发布时间】:2020-04-06 21:10:49
【问题描述】:

使用托管标识访问 Azure 服务有什么好处?我经常看到提到的是,由于这一点,您不会向配置文件提交秘密。但是我正在使用 ARM 模板部署所有资源,而且我的配置文件中也没有任何秘密。连接字符串等设置是在部署期间设置的。我在这里看到的唯一区别是,使用托管标识,即使有人访问 Azure 门户,他也无法获得我的数据库的登录名和密码。但是这个人已经可以访问我的订阅了。那么这是一个问题吗?

托管身份还能给我什么?

【问题讨论】:

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


    【解决方案1】:

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

    如果您将托管服务身份与密钥保管库之类的东西结合使用,您还可以更轻松地限制有权访问配置机密的人数。您可以仅向少数人提供对保管库的访问权限,但仍允许其他人查看/编辑应用程序及其非机密配置。

    【讨论】:

    • 基本上是我想说的,但你的回答更好
    【解决方案2】:

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

    【讨论】:

    • 为了避免访问订阅,请始终使用 2Fa
    【解决方案3】:
    • 秘密/密钥管理。轮换机密是最佳实践。这是 使用托管身份自动完成。如果手动/脚本更改密码会很复杂。

    • 秘密/关键库存。更容易查看哪些应用程序有什么 权限。

    • 撤消访问权限。可以轻松撤销对某个应用程序的访问权限。 通过更新密码来撤销访问可能会很可怕。

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 我怀疑你可以在 Azure 上做到这一点。什么时候加密?如果使用 ARM 模板部署它会怎样?如果您的应用被扩展为在多个虚拟服务器上以多个副本运行怎么办?
      猜你喜欢
      • 2018-04-28
      • 1970-01-01
      • 2010-10-12
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2022-11-11
      • 1970-01-01
      相关资源
      最近更新 更多