选择如何在 Azure 门户中授予对 blob 数据的访问权限

使用 Azure 门户访问 Blob 数据时,门户会在后台对 Azure 存储发出请求。 可以使用 Microsoft Entra 帐户或存储帐户访问密钥对 Azure 存储请求进行授权。 门户会指示使用的是哪种方法,如果你有相应的权限,则门户还允许在这两种方法之间切换。

还可以指定如何在 Azure 门户中授权单个 blob 上传操作。 门户默认使用已用于授权 blob 上传操作的任何方法,但你可以选择在上传 blob 时更改此设置。

访问 Blob 数据所需的权限

你需要特定权限,具体取决于你在 Azure 门户中授权访问 Blob 数据的方式。 在大多数情况下,这些权限是通过 Azure 基于角色的访问控制 (Azure RBAC) 提供的。 有关 Azure RBAC 的详细信息,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)?

使用帐户访问密钥

若要使用帐户访问密钥访问 blob 数据,你必须已分配到一个 Azure 角色,此角色包含 Azure RBAC 操作 Microsoft.Storage/storageAccounts/listkeys/action。 此 Azure 角色可以是内置角色,也可以是自定义角色。 支持“Microsoft.Storage/storageAccounts/listkeys/action”的内置角色(按权限从小到大排序)包括:

尝试在 Azure 门户中访问 Blob 数据时,门户首先会检查你是否拥有一个包含 Microsoft.Storage/storageAccounts/listkeys/action 的角色。 如果你被分配了包含此操作的角色,则门户将使用帐户密钥来访问 blob 数据。 如果未分配有包含此操作的角色,则门户会尝试使用你的 Microsoft Entra 帐户访问数据。

重要

在使用 Azure 资源管理器 ReadOnly 锁锁定了某个存储帐户时,不允许为该存储帐户执行列出密钥操作。 “列出密钥”是 POST 操作,并且在为该帐户配置了 ReadOnly 锁时,所有的 POST 操作都会被阻止 。 因此,当帐户被 ReadOnly 锁锁定时,用户必须使用 Microsoft Entra 凭据访问门户中的 blob 数据。 要了解如何使用 Microsoft Entra ID 访问门户中的 blob 数据,请参阅使用 Microsoft Entra 帐户

注意

经典订阅管理员角色“服务管理员”和“共同管理员”具有 Azure 资源管理器所有者角色的等效权限。 “所有者”角色包含所有操作,其中包括 Microsoft.Storage/storageAccounts/listkeys/action,因此,拥有其中一种管理角色的用户也可以使用帐户密钥访问 Blob 数据。 有关详细信息,请参阅 Azure 角色、Azure AD 角色和经典订阅管理员角色

使用 Microsoft Entra 帐户

要使用 Microsoft Entra 帐户从 Azure 门户访问 blob 数据,必须满足以下两个条件:

  • 你分配有一个可提供 blob 数据访问权限的内置角色或自定义角色。
  • 你分配有 Azure 资源管理器读取者角色,该角色的权限范围至少为存储帐户级别或更高级别。 “读取者”角色授予限制性最高的权限,但也接受可授予存储帐户管理资源访问权限的其他 Azure 资源管理器角色。

Azure 资源管理器“读取者”角色允许用户查看存储帐户资源,但不允许修改这些资源。 该角色不提供对 Azure 存储中的数据的读取权限,而只提供对帐户管理资源的读取权限。 “读者”角色是必需的,以便用户可以导航到 Azure 门户中的 blob 容器。

有关支持访问 blob 数据的内置角色的信息,请参阅使用 Microsoft Entra ID 授权访问 blob

自定义角色能够支持内置角色所提供的相同权限的不同组合。 若要详细了解如何创建 Azure 自定义角色,请参阅 Azure 自定义角色了解 Azure 资源的角色定义

若要在门户中查看 blob 数据,请导航到存储帐户的“概述”,然后选择“Blob”对应的链接。 或者,可以在菜单中导航到“容器”部分。

显示如何在 Azure 门户中导航到 Blob 数据的屏幕截图

确定当前的身份验证方法

导航到容器时,Azure 门户会指示当前是使用帐户访问密钥还是使用 Microsoft Entra 帐户进行身份验证。

使用帐户访问密钥进行身份验证

如果使用帐户访问密钥进行身份验证,则会在门户中看到“访问密钥”已指定为身份验证方法:

显示用户当前正在使用帐户密钥访问容器的屏幕截图

若要改用 Microsoft Entra 帐户,请选择图中突出显示的链接。 如果你通过分配给你的 Azure 角色获得了相应的权限,则可以继续访问。 但是,如果你缺少相应的权限,则会看到如下所示的错误消息:

Microsoft Entra 帐户不支持访问时显示的错误

请注意,如果Microsoft Entra 帐户缺少 blob 查看权限,列表中不会显示任何队列。 选择“切换为访问密钥”链接,以再次使用访问密钥进行身份验证

使用 Microsoft Entra 帐户进行身份验证

如果使用 Microsoft Entra 帐户进行身份验证,则会在门户中看到“Microsoft Entra 用户帐户”已指定为身份验证方法

显示用户当前正在使用 Microsoft Entra 帐户访问容器的屏幕截图

若要改用帐户访问密钥,请选择图中突出显示的链接。 如果你有权访问帐户密钥,则可以继续访问。 但是,如果你缺少帐户密钥的访问权限,则会看到如下所示的错误消息:

无权访问帐户密钥时显示的错误

请注意,如果你无权访问帐户密钥,则列表中不会显示任何 blob。 选择“切换到 Microsoft Entra 用户帐户”链接,以再次使用 Microsoft Entra 帐户进行身份验证

指定如何授权 blob 上传操作

从 Azure 门户上传 blob 时,可以指定是使用帐户访问密钥还是使用 Microsoft Entra 凭据对该操作进行身份验证和授权。 门户默认使用当前身份验证方法,如确定当前身份验证方法中所示。

要指定如何授权 blob 上传操作,请按照以下步骤操作:

  1. 在 Azure 门户中,导航到要在其中上传 blob 的容器。

  2. 选择“上传”按钮。

  3. 展开“高级”部分,显示 blob 的高级属性。

  4. 身份验证类型字段中,指示是使用 Microsoft Entra 帐户还是帐户访问密钥授权上传操作,如下图所示:

    显示如何在上传 blob 时更改授权方法的屏幕截图

后续步骤