单个服务主体是否可以用于访问 Azure 中的多个资源?

Can a single Service Principal be used to access multiple resources in Azure?

我有一个应用服务需要连接到 Azure Key Vault 以获取存储和 Cosmos DB 连接字符串。同一应用程序还需要使用服务主体名称(带有客户端 ID 和密码)直接连接到 SQL PaaS 实例(而不是通过 Azure Key Vault)。我可以为两者使用一个服务主体吗?

Can I use one single service principal for both?

当然可以。只要服务主体具有访问 Azure Key Vault 和 SQL 数据库的适当权限,它就应该能够访问这些资源。

这里的关键是必须为您的服务委托人分配适当的 RBAC roles。例如,如果您在 Azure 订阅中为您的服务委托人分配 Contributor 角色,则您可以使用该服务委托人管理 Azure 订阅的所有资源(角色分配除外)。