托管标识通过使身份验证更加简化且安全,帮助 Azure 服务相互连接。 托管标识使用 Microsoft Entra ID 来提供身份验证,而不是管理服务之间的授权。 本文介绍如何使用托管标识将 Azure Cache for Redis 缓存连接到 Azure 存储帐户。
通过托管身份,您可以简化以下 Azure Redis 场景中安全连接到 Azure 存储帐户的过程:
注意
只有 Azure Redis 数据持久性和导入导出功能使用托管标识。 这些功能仅在 Azure Redis 高级层中可用,因此托管标识仅在 Azure Redis 高级层中可用。
Azure Redis 缓存支持 系统分配 的托管标识和 用户分配的 托管标识。 每种托管标识都有优势,但 Azure Redis 缓存中的功能相同。
- 系统分配的标识 特定于缓存资源。 如果删除缓存,则会删除标识。
- 用户分配的标识 特定于用户。 可以将此标识分配给支持托管标识的任何资源,例如存储帐户。 即使删除特定的缓存资源,此分配仍保持不变。
为 Azure Redis Premium 数据持久性或导入导出功能配置托管标识包括几个部分:
- 在 Azure Redis 缓存中启用托管标识。
- 将 Azure 存储帐户 配置为使用托管标识。
- 配置 数据持久性 或 导入导出 功能以使用托管标识。
必须先正确完成所有部分,然后 Azure Redis 数据持久性或导入导出才能访问存储帐户。 否则,会看到错误或未写入任何数据。
可用范围
层 | 基本、标准 | 高级 | Enterprise、Enterprise Flash |
---|---|---|---|
可用 | 是 | 是 | 否 |
先决条件
- 能够在 Azure 订阅中创建和配置高级层 Azure Redis 缓存和 Azure 存储帐户。
- 若要分配用户分配的托管标识:在 Azure Redis 缓存和存储帐户所在的同一 Azure 订阅中创建的托管标识。
启用托管标识
可以使用 Azure 门户、Azure CLI 或 Azure PowerShell 为 Azure Redis 缓存启用托管标识。 可以在创建缓存实例或之后启用托管标识。
在 Azure 门户中启用托管标识
在缓存创建过程中,只能分配系统分配的托管标识。 可以将系统分配的标识或用户分配的标识添加到现有缓存。
使用托管标识创建新的缓存
在 Azure 门户中,选择 创建 Azure Redis 缓存。 在基本信息选项卡上,为缓存 SKU选择高级,并完成其余所需信息。
选择“ 高级 ”选项卡,然后在 “系统分配的托管标识”下,将 “状态 ”设置为 “打开”。
完成缓存创建过程。
部署缓存后,转到缓存页,然后在左侧导航菜单中的“设置”下选择“标识”。 验证“标识”页的“系统分配”选项卡上是否显示对象(主体)ID。
将系统分配的标识添加到现有缓存
在 Azure Redis Premium 缓存的 Azure 门户页上,在左侧导航菜单中的“设置”下选择“标识”。
在“ 系统分配 ”选项卡上,将 “状态 ”设置为 “开”,然后选择“ 保存”。
对启用系统分配的托管标识提示做出“是”响应。
分配标识后,验证“标识”页的“系统分配”选项卡上是否显示对象(主体)ID。
将用户分配的标识添加到现有缓存
在 Azure Redis Premium 缓存的 Azure 门户页上,在左侧导航菜单中的“设置”下选择“标识”。
选择“用户分配”选项卡,然后选择“添加”。
在 “添加用户分配的托管标识 ”屏幕上,从订阅中选择托管标识,然后选择“ 添加”。 有关用户分配的托管标识的详细信息,请参阅管理用户分配的标识。
添加用户分配的标识后,请验证它是否显示在“标识”页的“用户分配”选项卡上。
使用 Azure CLI 启用托管标识
可以使用 Azure CLI 通过 az redis create 创建具有托管标识的新缓存。 可以使用 az redis 标识更新现有缓存以使用托管标识。
例如,若要更新缓存以使用系统托管标识,请使用以下 Azure CLI 命令:
az redis identity assign \--mi-system-assigned \--name MyCacheName \--resource-group MyResource Group
使用 Azure PowerShell 启用托管标识
可以使用 Azure PowerShell 通过 New-AzRedisCache 创建具有托管标识的新缓存。 可以使用 Set-AzRedisCache 更新现有缓存以使用托管标识。
例如,若要更新缓存以使用系统托管标识,请使用以下 Azure PowerShell 命令:
Set-AzRedisCache -ResourceGroupName \"MyGroup\" -Name \"MyCache\" -IdentityType "SystemAssigned"
将存储帐户配置为使用托管标识
在 Azure 门户中,创建新的存储帐户或打开要连接到缓存实例的现有存储帐户。
从左侧导航菜单中选择 访问控制(IAM )。
在 “访问控制”(IAM) 页上,选择“ 添加添加>角色分配”。
在“添加角色分配”页的“角色”选项卡上,搜索并选择“存储 Blob 数据参与者”,然后选择“下一步”。
在“ 成员 ”选项卡上,选择“ 分配访问权限”,选择“ 托管标识”,然后选择“ 选择成员”。
在 “选择托管标识 ”窗格中,选择 托管标识 下的下拉箭头以查看所有可用的用户分配和系统分配的托管标识。 如果你有许多托管标识,则可以搜索所需的标识。 选择你所需的托管标识,然后选择“选择”。
在“ 添加角色分配 ”页上,选择“ 审阅 + 分配”,然后选择“ 审阅 + 分配 ”以确认。
在存储帐户的“访问控制 (IAM)”页上,选择“查看对此资源的访问权限”下的“查看”,然后在“角色分配”选项卡上搜索“存储 Blob 数据参与者”以验证是否添加了托管标识。
重要
若要使用具有防火墙例外的存储帐户进行导出,必须:
- 通过系统分配的标识将 Azure Redis 缓存添加为存储 Blob 数据参与者,并
- 在“存储帐户 网络 ”页上,选择“ 允许受信任的服务”列表中的 Azure 服务访问此存储帐户。
如果不使用托管标识,而是使用密钥授权存储帐户,则存储帐户上的防火墙例外会中断持久性进程和导入-导出进程。
将托管标识与数据持久性配合使用
在具有存储 Blob 数据参与者角色的 Azure Redis 高级缓存的 Azure 门户页上,在左侧导航菜单中的“设置”下选择“数据持久性”。
确保“身份验证方法”设置为“托管标识”。
重要
该选择会默认为系统分配的标识(如果已启用)。 否则,它会使用第一个列出的用户分配的标识。
在 “存储帐户”下,选择配置为使用托管标识的存储帐户(如果尚未选择),然后选择“ 保存 ”(如有必要)。
现在,可以使用托管标识身份验证将数据持久性备份保存到存储帐户。
使用托管标识导入和导出缓存数据
在具有存储 Blob 数据参与者角色的 Azure Redis 高级缓存的 Azure 门户页上,在左侧导航菜单中的“管理”下选择“导入数据”或“导出数据”。
在导入数据或导出数据屏幕上,为身份验证方法选择托管标识。
若要导入数据,请在“导入数据”屏幕上,选择“RDB 文件”旁边的“选择 Blob”。 从 Blob 存储位置选择 Redis 数据库 (RDB) 文件,然后选择“选择”。
若要导出数据,请在“导出数据”屏幕上输入 Blob 名称前缀,然后选择“导出输出”旁边的“选择存储容器”。 选择或创建用于保存导出数据的容器,然后选择“ 选择”。
在 “导入数据 ”或“ 导出数据 ”屏幕上,分别选择“ 导入 ”或“ 导出 ”。
注意
导入或导出数据需要几分钟时间。
重要
如果发生导出或导入失败,请仔细检查是否为存储帐户配置了缓存的系统分配的标识或用户分配的标识。 如果启用了,使用的标识默认为系统分配的标识。 否则,它会使用第一个列出的用户分配的标识。