分配用于访问表数据的 Azure 角色

Microsoft Entra ID 通过 Azure 基于角色的访问控制 (Azure RBAC)授权访问受保护的资源。 Azure 存储定义了一组 Azure 内置角色,它们包含用于访问 Azure 存储中的表数据的通用权限集。

将 Azure 角色分配到 Microsoft Entra 安全主体后,Azure 会向该安全主体授予对这些资源的访问权限。 Microsoft Entra 安全主体可以是用户、组、应用程序服务主体,也可以是 Azure 资源的托管标识

若要详细了解如何使用 Microsoft Entra ID 来授予对表数据的访问权限,请参阅使用 Microsoft Entra ID 授予对表的访问权限

分配 Azure 角色

可以使用 PowerShell、Azure CLI 或 Azure 资源管理器模板为数据访问分配角色。

重要

Azure 门户目前不支持分配范围限定为表的 Azure RBAC 角色。 要分配表范围的角色,请使用 PowerShell、Azure CLI 或 Azure 资源管理器。

可以使用 Azure 门户分配一个角色,向 Azure 资源管理器资源(例如存储帐户、资源组或订阅)授予对表数据的访问权限。

要将 Azure 角色分配给安全主体,请调用 New-AzRoleAssignment 命令。 命令的格式因分配范围而异。 要运行该命令,必须在相应的范围或更高的范围内拥有已分配 Microsoft.Authorization/roleAssignments/write 权限的角色。

若要分配表范围的角色,请为 --scope 参数指定一个包含表范围的字符串。 表的范围采用以下格式:

/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/tableServices/default/tables/<table-name>

以下示例为用户分配“存储表数据参与者”角色(其范围为表)。 请务必将括号中的示例值和占位符值替换为你自己的值:

New-AzRoleAssignment -SignInName <email> `
    -RoleDefinitionName "Storage Table Data Contributor" `
    -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/tableServices/default/tables/<table>"

有关在订阅、资源组或存储帐户范围内使用 PowerShell 分配角色的信息,请参阅使用 Azure PowerShell 分配 Azure 角色

请记住以下有关 Azure 存储中 Azure 角色分配的要点:

  • 创建 Azure 存储帐户时,系统不会自动向你分配通过 Microsoft Entra ID 访问数据的权限。 你必须为自己显式分配一个用于 Azure 存储的 Azure 角色。 可以在订阅、资源组、存储帐户或表的级别分配该角色。
  • 分配角色或删除角色分配时,更改最多可能需要 10 分钟才能生效。
  • 可以在管理组范围内分配具有数据操作的内置角色。 但是,在极少数情况下,数据操作权限对某些资源类型有效之前,可能会有很长的延迟(长达 12 小时)。 最终将应用权限。 对于具有数据操作的内置角色,在需要及时激活或吊销权限的情况下,不建议在管理组范围内添加或删除角色分配,例如 Microsoft Entra Privileged Identity Management (PIM))。
  • 如果使用 Azure 资源管理器只读锁锁定存储帐户,则该锁会阻止其范围限定为存储帐户或表的 Azure 角色的分配。

后续步骤