存储的托管标识
托管标识是 Azure 中使用的一种常用工具,可帮助开发人员最大程度地减轻机密和登录信息的管理工作负担。 当 Azure 服务相互连接时,托管标识很有用。 无需管理每个服务之间的授权,而是可使用 Microsoft Entra ID 来提供托管标识,使身份验证过程更简便、更安全。
将托管标识和存储帐户配合使用
现在,Azure Cache for Redis 可以使用托管标识来连接存储帐户,此功能在以下两种方案中非常有用:
对于这些任务,使用托管标识可以简化安全连接到所选存储帐户的过程。
Azure Cache for Redis 支持两种类型的托管标识:
系统分配的标识特定于资源。 在这种情况下,缓存即是资源。 删除缓存时会删除标识。
用户分配的标识特定于用户而不是资源。 可将这种标识分配给任何支持托管标识的资源,即使删除缓存,仍会保留该标识。
每种类型的托管标识各有优势,但在 Azure Cache for Redis中,其功能是相同的。
启用托管标识
可以在创建缓存实例时或者在创建缓存之后启用托管标识。 在创建缓存期间,只能分配系统分配的标识。 可将任一标识类型添加到现有缓存。
可用范围
层 | 基本、标准 | 高级 |
---|---|---|
可用 | 否 | 是 |
先决条件和限制
用于存储的托管标识目前仅与导入/导出功能和持久性功能一起使用,这使其对 Azure Cache for Redis 高级层的用处受到限制。
用于存储的托管标识在依赖于云服务(经典)的缓存上不受支持。 若要详细了解如何检查缓存是否在使用云服务(经典),请参阅我如何知道缓存是否受影响?。
使用门户创建具有托管标识的新缓存
登录到 Azure 门户。
使用任何高级层的缓存类型创建新的 Azure Cache for Redis 资源。 在“基本信息”选项卡中填写所有必需的信息。
选择“高级”选项卡。然后向下滚动到“系统分配的托管标识”并选择“打开”。
完成创建过程。 创建并部署缓存后,将其打开,然后选择左侧“设置”部分下的“标识”选项卡。 你将发现,系统分配的一个对象 ID 已分配到缓存标识。
将系统分配的标识添加到现有缓存
在 Azure 门户中导航到你的 Azure Cache for Redis资源。 在左侧的“资源”菜单中选择“标识”。
若要启用系统分配的标识,请选择“系统分配”选项卡,然后在“状态”下选择“打开”。 选择“保存”以确认。
此时会弹出一个对话框,显示你的缓存将注册到 Microsoft Entra ID,并且可向它授权来访问由 Microsoft Entra ID 保护的资源。 选择是。
你将看到一个对象(主体)ID,这表示已分配该标识。
将用户分配的标识添加到现有缓存
在 Azure 门户中导航到你的 Azure Cache for Redis资源。 在左侧的“资源”菜单中选择“标识”。
若要启用用户分配的标识,请选择“用户分配”选项卡并选择“添加”。
此时将弹出一个边栏,可在其中为订阅选择任何可用的用户分配的标识。 选择一个标识,然后选择“添加”。 有关用户分配的托管标识的详细信息,请参阅管理用户分配的标识。
注意
在执行此步骤之前,需要提前创建用户分配的标识。
你将发现,用户分配的标识已列在“用户分配”窗格中。
使用 Azure CLI 启用托管标识
可以使用 Azure CLI 创建具有托管标识的新缓存或将现有缓存更新为使用托管标识。 有关详细信息,请参阅 az redis create 或 az redis identity。
例如,若要将缓存更新为使用系统托管标识,请使用以下 CLI 命令:
az redis identity assign \--mi-system-assigned \--name MyCacheName \--resource-group MyResource Group
使用 Azure PowerShell 启用托管标识
可以使用 Azure PowerShell 创建具有托管标识的新缓存或将现有缓存更新为使用托管标识。 有关详细信息,请参阅 New-AzRedisCache 或 Set-AzRedisCache。
例如,若要将缓存更新为使用系统托管标识,请使用以下 PowerShell 命令:
Set-AzRedisCache -ResourceGroupName \"MyGroup\" -Name \"MyCache\" -IdentityType "SystemAssigned"
将存储帐户配置为使用托管标识
重要
只有在存储帐户中配置托管标识之后,Azure Cache for Redis 才能访问该帐户以实现持久性或导入/导出功能。 如果未正确完成此步骤,将会出错或者不会写入任何数据。
创建一个新的存储帐户,或者打开一个要与缓存实例连接的现有存储帐户。
在“资源”菜单打开“访问控制(IAM)”。 然后依次选择“添加”、“添加角色分配”。
在“角色”窗格中搜索“存储 Blob 数据参与者”。 选择该角色,然后选择“下一步”。
选择“成员”选项卡。在“将访问权限分配给”下选择“托管标识”,然后选择“选择成员”。 工作窗格旁边弹出一个边栏。
使用“托管标识”下的下拉菜单选择“用户分配的托管标识”或“系统分配的托管标识”。 如果你有许多的托管标识,可以按名称搜索。 选择所需的托管标识,并选择“选择”。 然后选择“查看 + 分配”以确认。
可以在“存储 Blob 数据参与者”下检查你的存储帐户的角色分配,确认是否成功分配了该标识。
注意
若要使用具有防火墙例外的存储帐户进行导出,必须:
- 通过系统分配的标识将 Azure Cache for Redis 实例添加为存储 blob 数据参与者,并
- 检查允许受信任服务列表中的 Azure 服务访问此存储帐户。
如果不使用托管标识,而是使用密钥授权存储帐户,则对存储帐户设置防火墙例外会中断持久性过程和导入导出进程。
使用托管标识访问存储帐户
将托管标识与数据持久性配合使用
打开分配有存储 Blob 数据参与者角色的 Azure Cache for Redis 实例,然后在“资源”菜单中转到“数据持久性”。
将“身份验证方法”更改为“托管标识”,然后选择你在本文前面配置的存储帐户。 选择“保存”。
重要
标识默认为系统分配的标识(如果已启用)。 否则,将使用第一个列出的用户分配的标识。
现在可以使用托管标识身份验证将数据持久性备份保存到存储帐户。
使用托管标识导入和导出缓存数据
打开分配有存储 Blob 数据参与者角色的 Azure Cache for Redis 实例,然后在“管理”下转到“导入”或“导出”选项卡。
如果要导入数据,请选择用于保存所选 RDB 文件的 Blob 存储位置。 如果要导出数据,请键入所需的 Blob 名称前缀和存储容器。 在这两种情况下,都必须使用配置的存储帐户进行托管标识访问。
在“身份验证方法”下,选择“托管标识”,并相应地选择“导入”或“导出”。
注意
导入或导出数据需要几分钟时间。
重要
如果发生导出或导入失败,请仔细检查是否为存储帐户配置了缓存的系统分配的标识或用户分配的标识。 使用的标识默认为系统分配的标识(如果已启用)。 否则,将使用第一个列出的用户分配的标识。