存储的托管标识

托管标识是 Azure 中使用的一种常用工具,可帮助开发人员最大程度地减轻机密和登录信息的管理工作负担。 当 Azure 服务相互连接时,托管标识很有用。 无需管理每个服务之间的授权,而可以使用 Azure Active Directory (Azure AD) 来提供托管标识,使身份验证过程更简便、更安全。

将托管标识和存储帐户配合使用

现在,Azure Cache for Redis 可以使用托管标识来连接存储帐户,此功能在以下两种方案中非常有用:

  • 数据持久性 -- 通过 RDB 或 AOF 文件按计划备份缓存中的数据。

  • 导入或导出 -- 保存缓存数据的快照,或者从保存的文件中导入数据。

对于这些任务,使用托管标识可以简化安全连接到所选存储帐户的过程。

注意

此功能尚不支持连接到缓存实例时需要执行的身份验证。

Azure Cache for Redis 支持两种类型的托管标识

  • 系统分配的标识特定于资源。 在这种情况下,缓存即是资源。 删除缓存时会删除标识。

  • 用户分配的标识特定于用户而不是资源。 可将这种标识分配给任何支持托管标识的资源,即使删除缓存,仍会保留该标识。

每种类型的托管标识各有优势,但在 Azure Cache for Redis中,其功能是相同的。

启用托管标识

可以在创建缓存实例时或者在创建缓存之后启用托管标识。 在创建缓存期间,只能分配系统分配的标识。 可将任一标识类型添加到现有缓存。

先决条件和限制

用于存储的托管标识目前仅与导入/导出功能和持久性功能一起使用,这使其对 Azure Cache for Redis 高级层的用处受到限制。

用于存储的托管标识在依赖于云服务(经典)的缓存上不受支持。 若要详细了解如何检查缓存是否在使用云服务(经典),请参阅我如何知道缓存是否受影响?

使用门户创建具有托管标识的新缓存

  1. 登录到 Azure 门户

  2. 使用任何高级层的缓存类型创建新的 Azure Cache for Redis 资源。 在“基本信息”选项卡中填写所有必需的信息。

    显示如何创建高级缓存的屏幕截图。

  3. 选择“高级”选项卡。然后向下滚动到“系统分配的托管标识”并选择“打开”。

    显示窗体“高级”页的屏幕截图。

  4. 完成创建过程。 创建并部署缓存后,将其打开,然后选择左侧“设置”部分下的“标识”选项卡。 你将发现,系统分配的一个对象 ID 已分配到缓存标识。

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

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

  1. 在 Azure 门户中导航到你的 Azure Cache for Redis资源。 在左侧的“资源”菜单中选择“标识”。

  2. 若要启用系统分配的标识,请选择“系统分配”选项卡,然后在“状态”下选择“打开”。 选择“保存”以确认。

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

  3. 此时将弹出一个对话框,指出你的缓存将注册到 Azure Active Directory,并且可以向它授予对 Azure AD 所保护的资源的访问权限。 请选择“是”。 询问是否要启用托管标识的屏幕截图。

  4. 你将看到一个对象(主体)ID,这表示已分配该标识。

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

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

  1. 在 Azure 门户中导航到你的 Azure Cache for Redis资源。 在左侧的“资源”菜单中选择“标识”。

  2. 若要启用用户分配的标识,请选择“用户分配”选项卡并选择“添加”。

    用户分配的标识状态为“打开”。

  3. 此时将弹出一个边栏,可在其中为订阅选择任何可用的用户分配的标识。 选择一个标识,然后选择“添加”。 有关用户分配的托管标识的详细信息,请参阅管理用户分配的标识

    注意

    在执行此步骤之前,需要提前创建用户分配的标识

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

  4. 你将发现,用户分配的标识已列在“用户分配”窗格中。

    显示名称、资源组和订阅列表的屏幕截图。

使用 Azure CLI 启用托管标识

可以使用 Azure CLI 创建具有托管标识的新缓存或将现有缓存更新为使用托管标识。 有关详细信息,请参阅 az redis createaz redis identity

例如,若要将缓存更新为使用系统托管标识,请使用以下 CLI 命令:


az redis identity assign \--mi-system-assigned \--name MyCacheName \--resource-group MyResource Group

使用 Azure PowerShell 启用托管标识

可以使用 Azure PowerShell 创建具有托管标识的新缓存或将现有缓存更新为使用托管标识。 有关详细信息,请参阅 New-AzRedisCacheSet-AzRedisCache

例如,若要将缓存更新为使用系统托管标识,请使用以下 PowerShell 命令:

Set-AzRedisCache -ResourceGroupName \"MyGroup\" -Name \"MyCache\" -IdentityType "SystemAssigned"

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

重要

只有在存储帐户中配置托管标识之后,Azure Cache for Redis 才能访问该帐户以实现持久性或导入/导出功能。 如果未正确完成此步骤,将会出错或者不会写入任何数据。

  1. 创建一个新的存储帐户,或者打开一个要与缓存实例连接的现有存储帐户。

  2. 在“资源”菜单打开“访问控制(IAM)”。 然后依次选择“添加”、“添加角色分配”。

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

  3. 在“角色”窗格中搜索“存储 Blob 数据参与者”。 选择该角色,然后选择“下一步”。

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

  4. 选择“成员”选项卡。在“将访问权限分配给”下选择“托管标识”,然后选择“选择成员”。 右侧会弹出一个边栏。

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

  5. 使用“托管标识”下的下拉菜单选择“用户分配的托管标识”或“系统分配的托管标识”。 如果你有许多的托管标识,可以按名称搜索。 选择所需的托管标识,并选择“选择”。 然后选择“查看 + 分配”以确认。

    显示“托管标识”窗体的屏幕截图,其中显示了“用户分配的托管标识”。

  6. 可以在“存储 Blob 数据参与者”下检查你的存储帐户的角色分配,确认是否成功分配了该标识。

    存储 Blob 数据参与者列表的屏幕截图。

注意

通过系统分配的标识将 Azure Cache for Redis 实例添加为存储 Blob 数据参与者,可以方便地将缓存实例添加到受信任的服务列表,从而更容易实现防火墙例外处理。 如果不使用托管标识,而是使用密钥授权存储帐户,则对存储帐户设置防火墙例外往往会中断持久性过程和导入-导出进程。

使用托管标识访问存储帐户

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

  1. 打开分配有存储 Blob 数据参与者角色的 Azure Cache for Redis 实例,然后在“资源”菜单中转到“数据持久性”。

  2. 将“身份验证方法”更改为“托管标识”,然后选择前面配置的存储帐户。 选择“保存”。

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

    重要

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

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

    显示“资源”菜单中的“导出数据”的屏幕截图。

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

  1. 打开分配有存储 Blob 数据参与者角色的 Azure Cache for Redis 实例,然后在“管理”下转到“导入”或“导出”选项卡。

  2. 如果要导入数据,请选择用于保存所选 RDB 文件的 Blob 存储位置。 如果要导出数据,请键入所需的 Blob 名称前缀和存储容器。 在这两种情况下,都必须使用配置的存储帐户进行托管标识访问。

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

  3. 在“身份验证方法”下,选择“托管标识”,并相应地选择“导入”或“导出”。

注意

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

重要

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

后续步骤