存储帐户的托管标识

重要

Azure Cache for Redis宣布其所有 SKU 的停用时间表。 建议尽快将现有Azure Cache for Redis实例移动到Azure托管 Redis。

有关由世纪互联运营的 Microsoft Azure 中 Azure Redis 停用的详细信息,请参阅 Azure Redis 中的新增功能。

迁移指南:

有关停用的更多详细信息:

托管标识通过使身份验证更加简化和安全,帮助Azure服务相互连接。 托管标识使用 Microsoft Entra ID 提供身份验证,而不是管理服务之间的授权。 本文介绍如何使用托管标识将Azure Cache for Redis缓存连接到 Azure 存储 帐户。

使用托管标识,可以简化安全连接到 Azure 存储帐户的过程,适用于以下 Azure Redis 场景:

注意

只有 Azure Redis 数据持久性和导入导出功能使用托管标识。 这些功能仅在 Azure Redis 高级层中可用,因此托管标识仅在 Azure Redis 高级层中可用。

Azure Cache for Redis支持系统分配和用户分配托管标识。 每种托管标识都有优势,但Azure Cache for Redis中的功能相同。

  • 系统分配的标识 特定于缓存资源。 如果删除缓存,则会删除标识。
  • 用户分配的标识 特定于用户。 可以将此标识分配给支持托管标识的任何资源,例如存储帐户。 即使删除特定的缓存资源,此分配仍保持不变。

为 Azure Redis Premium 数据暂留或导入导出功能配置托管标识包括多个部分:

必须先正确完成所有步骤,以便 Azure Redis 的数据持久性或导入导出功能能够访问存储帐户。 否则,会看到错误或未写入任何数据。

可用范围

层 基本、标准 高级
可用 是 是

先决条件

  • 能够在Azure订阅中创建和配置高级层Azure Redis 缓存和Azure 存储帐户。
  • 若要分配用户分配的托管身份:在与 Azure Redis 缓存和存储帐户相同的 Azure 订阅中创建的托管身份。

启用托管身份

可以使用 Azure 门户、Azure CLI或Azure PowerShell为 Azure Redis 缓存启用托管标识。 可以在创建缓存实例或之后启用托管标识。

在 Azure 门户中启用托管标识

在缓存创建过程中,只能分配系统分配的托管标识。 可以将系统分配的标识或用户分配的标识添加到现有缓存。

使用托管标识创建新的缓存

  1. 在 Azure 门户中,选择创建Azure Cache for Redis缓存。 在基本信息选项卡上,为缓存 SKU选择高级,并完成其余所需信息。

    创建高级缓存的屏幕截图。

  2. 选择“ 高级 ”选项卡,然后在 “系统分配的托管标识”下,将 “状态 ”设置为 “打开”。

    显示将系统分配的托管标识设置为 On 的屏幕截图。

  3. 完成缓存创建过程。

  4. 部署缓存后,转到缓存页,然后在左侧导航菜单中的“设置”下选择“标识”。 验证“标识”页的“系统分配”选项卡上是否显示对象(主体)ID。

    显示“资源”菜单中的“标识”的屏幕截图。

将系统分配的标识添加到现有缓存

  1. 在 Azure Redis Premium 缓存的 Azure 门户页面上,选择左侧导航菜单中的Settings下的Identity。

  2. 在“ 系统分配 ”选项卡上,将 “状态 ”设置为 “开”,然后选择“ 保存”。

    显示“系统分配”已选择且状态为“开启”的屏幕截图。

  3. 对启用系统分配的托管标识提示做出“是”响应。

  4. 分配标识后,验证“标识”页的“系统分配”选项卡上是否显示对象(主体)ID。

    显示“对象(主体) ID”的屏幕截图。

将用户分配的标识添加到现有缓存

  1. 在 Azure Redis Premium 缓存的 Azure 门户页面上,选择左侧导航菜单中的Settings下的Identity。

  2. 选择“用户分配”选项卡,然后选择“添加”。

    用户分配的身份状态已启用。

  3. 在 “添加用户分配的托管标识 ”屏幕上,从订阅中选择托管标识,然后选择“ 添加”。 有关用户分配的托管标识的详细信息,请参阅管理用户分配的标识。

    显示用户分配的托管标识的屏幕截图。

  4. 添加用户分配的标识后,请验证它是否显示在“标识”页的“用户分配”选项卡上。

    显示“标识”页的“用户分配的标识”的屏幕截图。

使用 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"

将存储帐户配置为使用托管标识

  1. 在Azure门户中,创建新的存储帐户或打开要连接到缓存实例的现有存储帐户。

  2. 从左侧导航菜单中选择 访问控制(IAM )。

  3. 在 “访问控制”(IAM) 页上,选择“ 添加添加>角色分配”。

    截图显示访问控制 (IAM) 设置。

  4. 在“添加角色分配”页的“角色”选项卡上,搜索并选择“存储 Blob 数据参与者”,然后选择“下一步”。

    显示带有角色列表的“添加角色分配”窗体的屏幕截图。

  5. 在“ 成员 ”选项卡上,选择“ 分配访问权限”,选择“ 托管标识”,然后选择“ 选择成员”。

    显示带有成员窗格的“添加角色分配”窗体的屏幕截图。

  6. 在 “选择托管标识 ”窗格中,选择 托管标识 下的下拉箭头以查看所有可用的用户分配和系统分配的托管标识。 如果你有许多托管标识,则可以搜索所需的标识。 选择你所需的托管标识,然后选择“选择”。

    显示“添加选择托管标识”窗格的屏幕截图。

  7. 在“ 添加角色分配 ”页上,选择“ 审阅 + 分配”,然后选择“ 审阅 + 分配 ”以确认。

    显示分配有托管标识的托管标识窗体的屏幕截图。

  8. 在存储帐户的“访问控制 (IAM)”页上,选择“查看对此资源的访问权限”下的“查看”,然后在“角色分配”选项卡上搜索“存储 Blob 数据参与者”以验证是否添加了托管标识。

    Storage Blob 数据贡献者列表的屏幕截图。

重要

若要使用具有防火墙例外的存储帐户进行导出,必须:

  • 通过系统分配的身份,将 Azure Redis 缓存添加为 Storage Blob 数据参与者。
  • 在存储帐户 Networking 页上,选择受信任的服务列表中的 Allow Azure 服务以访问此存储帐户。

如果不使用托管标识,而是使用密钥授权存储帐户,则存储帐户上的防火墙例外会中断持久性进程和导入-导出进程。

将托管标识与数据持久性配合使用

  1. 在 Azure 门户页上,针对具有 Storage Blob 数据参与者 角色的 Azure Redis Premium 缓存,选择左侧导航菜单中的 设置 下的 数据持久性。

  2. 确保“身份验证方法”设置为“托管标识”。

    重要

    该选择会默认为系统分配的标识(如果已启用)。 否则,它会使用第一个列出的用户分配的标识。

  3. 在 “存储帐户”下,选择配置为使用托管标识的存储帐户(如果尚未选择),然后选择“ 保存 ”(如有必要)。

    显示数据永久性窗格的屏幕截图,其中选择了身份验证方法。

现在,可以使用托管标识身份验证将数据持久性备份保存到存储帐户。

使用托管标识导入和导出缓存数据

  1. 在具有 Storage Blob 数据参与者角色的 Azure Redis Premium 缓存的 Azure 门户页面上,在左侧导航菜单中 管理 下选择“导入数据”或“导出数据”。

  2. 在导入数据或导出数据屏幕上,为身份验证方法选择托管标识。

  3. 若要导入数据,请在“导入数据”屏幕上,选择“RDB 文件”旁边的“选择 Blob”。 从 Blob 存储位置选择 Redis 数据库 (RDB) 文件,然后选择“选择”。

  4. 若要导出数据,请在“导出数据”屏幕上输入 Blob 名称前缀,然后选择“导出输出”旁边的“选择存储容器”。 选择或创建用于保存导出数据的容器,然后选择“ 选择”。

    显示已选择“托管标识”的屏幕截图。

  5. 在 “导入数据 ”或“ 导出数据 ”屏幕上,分别选择“ 导入 ”或“ 导出 ”。

    注意

    导入或导出数据需要几分钟时间。

重要

如果发生导出或导入失败,请仔细检查是否为存储帐户配置了缓存的系统分配的标识或用户分配的标识。 如果启用了,使用的标识默认为系统分配的标识。 否则,它会使用第一个列出的用户分配的标识。