将托管标识添加到 Azure 服务结构的正确方法

问题描述

由于没有直接将托管标识添加到 Azure 服务结构的直接方法,因此考虑将托管标识添加到 Azure VM 规模集实例,而后者又由预期的 Azure 服务结构实例管理。以便 Service Fabric 应用程序(最终部署到 Azure VM 规模集实例的那些 VM)可以利用为 Azure VM 规模集实例预配的托管标识来访问其他 Azure 资源,如 Azure Key Vault 等。

这是为 Azure 服务结构应用程序创建托管标识的正确方法吗? (或)是否有任何方法可以使用 Powershell 或 Azure 门户为 Azure 服务结构启用托管标识?

是否有任何方法可以将托管标识仅限于 Azure 服务结构集群中的某些应用程序而不是所有应用程序?

请说明。

解决方法

这是为 Azure 服务结构应用程序创建托管标识的正确方法吗? (或)是否有任何方法可以使用 Powershell 或 Azure 门户为 Azure 服务结构启用托管标识?

是的,这应该是正确的方式,您可以利用 VMSS 的 MSI(托管身份)来访问 Azure 资源。 该文档还提到了相同的方式 - Authenticate Service Fabric applications to Azure Resources using Managed Service Identity (MSI),它提供了一种启用 MSI 的 ARM 模板方式。

通过powershell或者portal开启VMSS的MSI,可以参考

注意:在使用 MSI 访问 Azure 资源之前,您需要在资源范围内 grant the correct RBAC roles to the MSI。对于 Azure 密钥保管库,您需要add the MSI to the access policy

是否有任何方法可以将托管标识仅限于 Azure 服务结构集群中的某些应用程序而不是所有应用程序?

不,你不能。为 VMSS 启用 MSI 后,它将应用于 VMSS 中的所有应用程序。

如果您想将 MSI 限制为仅用于某个应用程序,您可能需要使用 system-assignedUser-Assigned 托管标识部署 Service Fabric 应用程序,请使用应用程序的 MSI 而不是 VMSS,请确保enable the Managed Identity Token Service on the cluster 首先。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...