分配用于访问表数据的 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 角色的分配。