51CTO 博客地址:https://blog.51cto.com/14669127

需求:Azure 订阅中包含一个名为VM1的虚拟机,VM1在名为RG1的资源组中,VM1运行的服务,其资源都部署到RG1中,如果确保运行在VM1的服务可以使用VM1Identity来管理RG1中的资源,该如何配置?

解决方案需求解析:

如何使用Azure VM的Identity管理所在的Resource Group?_Resource Group

上图是Managed Service Identities如何与Azure 虚拟机(VM)协同工作的原理图,具体如下:

1.      Azure资源管理器收到请求,在VM上启用系统分配的Managed Identity.

2.      Azure资源管理器在Azure AD中创建与VM Identities相对应的服务主体

3.      Azure资源管理器通过使用服务主体客户端ID和证书更新Azure Instance Metadata Service Identities endpoint来配置VM上的标识。

4.      VM有了Identities之后,根据服务主体信息向VM授权对Azure资源的访问权限。

说明:若调用Azure资源管理器,使用Azure 基于角色的访问控制向VM服务主体分配相应的角色;若调用Key Vault,请授权代码对Key Vault中特定密钥的访问权限。

5.      VM上运行的代码可以从VM中访问的Azure Instance Metadata Service Identities endpoint请求令牌:http://169.254.169.254/metadata/identity/oauth2/token

6.      调用了Azure AD,以便使用在步骤3中配置的客户端ID和证书请求访问令牌。Azure AD返回JSON Web令牌访问令牌。

7.      代码在调用支持Azure AD身份验证的服务时发送访问令牌。

相关资料:

How managed Identities for Azure Resources work with Azure Virtual Machines