Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何将托管标识与Azure计算库配合使用,以使用 blob URL 安全地发布Azure VM 应用程序,而无需使用 SAS URL 或可公开访问的存储帐户。
概述
通过 Azure VM 应用程序部署应用程序要求将应用程序包上传到存储帐户并提供 Blob 的 URL。 Azure 计算库使用此 URL 访问 Blob,并将其发布为虚拟机应用程序版本。
如果没有托管标识,可以使用两个选项来提供 Blob 访问:
- Blob URL - 要求存储帐户启用匿名访问。
- SAS URL - SAS 令牌以纯文本形式存储在应用程序版本资源中,必须管理令牌过期和重新生成。
这两种方法都不安全,因为 blob URL 会使您的存储帐户暴露在公共互联网中,而 SAS URL(作为机密信息)必须以纯文本形式存储。
Azure 计算画廊的托管标识
托管标识是一项安全功能,它允许Azure服务向其他Azure服务证明其标识,而无需在代码或配置中存储密码、密钥或令牌。 您无需管理凭据,微软 Entra ID 会自动处理身份验证。
通过将用户分配的托管标识附加到 Azure 计算画廊,您可以授予画廊代表您访问存储帐户中的 blob 的权限。 当画廊需要读取您的应用程序包时,它会呈现此身份,Microsoft Entra ID 验证该身份并授予访问权限。 由于Azure计算库是受信任的Microsoft服务,因此即使存储帐户位于虚拟网络后面,此访问也有效。
此方法使你能够:
- 限制对特定虚拟网络的存储帐户访问。
- 在存储帐户上禁用共享密钥访问并使用普通的 Blob URL。
- 确保不会将 SAS URL 等访问凭据存储为纯文本。
工作原理
概括而言,身份验证和访问流的工作原理如下:
- 将您的应用程序包上传到存储帐户中的 Blob 中。
- 创建用户分配的托管标识,并在存储帐户上授予 存储 Blob 数据参与者 角色。
- 您将托管标识附加到 Azure 计算库。
- 发布 VM 应用程序版本时,提供纯 Blob URL 而不是 SAS URL。
- Azure Compute Gallery 尝试使用 blob URL 直接访问 blob。
- Microsoft Entra ID 验证身份并授予画廊对 Blob 的访问权限。
先决条件
- Azure 计算图库
- 将 VM 应用程序包上传到 Blob 容器中的存储帐户。
步骤 1:创建用户分配的托管标识
创建Azure计算库用于向存储帐户进行身份验证的用户分配托管标识。
有关详细步骤,请参阅 创建用户分配的托管标识。
步骤 2:向标识分配存储访问权限
将 存储 Blob 数据参与者 角色分配给托管标识,以便它可以访问存储帐户中的应用程序包。
有关详细步骤,请参阅通过 Azure 门户分配 Azure 角色。 分配角色时:
- 选择 存储 Blob 数据参与者 作为角色。
- 分配对 托管标识的访问权限。
- 选择在上一步中创建的用户分配的托管标识。
步骤 3:将托管标识附加到 Azure 计算画廊
更新 Azure 计算画廊以使用用户分配的托管身份。 门户体验目前不适用于此步骤。
使用 REST API
使用 图库 - 创建或更新 API,将托管身份关联到您的图库。
PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}?api-version=2025-04-01
{
"location": "<location>",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>": {}
}
}
}
步骤 4:获取应用程序包的 Blob URL
检索存储帐户中存储的应用程序包的 Blob URL。 URL 格式为:
https://<storage-account-name>.blob.core.chinacloudapi.cn/<container-name>/<blob-name>
步骤 5:使用 Blob URL 发布 VM 应用程序版本
在创建或更新 VM 应用版本时,请在发布配置文件的 mediaLink 属性中使用 blob URL。 Azure Compute Gallery 使用附加的托管身份对 Blob 进行身份验证和访问。
有关创建 VM 应用程序版本的详细步骤,请参阅 “创建 VM 应用程序版本”。
技术详细信息
- 身份验证流程 - Azure 计算画廊首先尝试使用提供的 URL 访问 blob。 如果由于权限不足导致直接访问失败,则画廊将回退到附加的托管标识以进行身份验证。
- 受信任的服务访问 - Azure计算库是受信任的Microsoft服务。 托管标识提供可绕过存储帐户虚拟网络限制的受信任访问,因此库不需要位于虚拟网络内部才能访问受网络限制的存储帐户。
局限性
- 仅在将 VM 应用程序版本发布到 Azure 计算库时,才支持托管身份访问。 在将 VM 应用程序部署到 VM 或虚拟机规模集时,不能使用它。
- 将托管标识附加到映像库的门户体验当前不可用。 使用 REST API、Azure CLI或Azure PowerShell。