用于表数据平面的 Azure Cosmos DB 安全参考

Azure Cosmos DB for Table 在其本机基于角色的访问控制实现中公开一组唯一的数据作和角色。 本文包含这些作和角色的列表,其中介绍了为每个资源授予哪些权限。

警告

Azure Cosmos DB for Table 的本机基于角色的访问控制不支持该 notDataActions 属性。 自动排除未被指定为允许的任何操作。

内置操作

下面是可在角色定义中单独设置的数据作的列表。

Description
Microsoft.DocumentDB/databaseAccounts/readMetadata 读取一些帐户元数据
Microsoft.DocumentDB/databaseAccounts/tables/containers/executeQuery 针对表执行查询
Microsoft.DocumentDB/databaseAccounts/tables/containers/executeStoredProcedure 执行表事务(过程)
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/create 创建新实体(项)
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/read 点使用行键和分区键读取单个实体(项)
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/replace 完全替换现有实体(项)
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/upsert 如果实体不存在,则创建实体(项),或者替换实体(如果已存在)
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/delete 删除实体(项)
Microsoft.DocumentDB/databaseAccounts/throughputSettings/read 读取当前吞吐量
Microsoft.DocumentDB/databaseAccounts/throughputSettings/write 修改当前吞吐量
Microsoft.DocumentDB/databaseAccounts/tables/write 创建或更新表
Microsoft.DocumentDB/databaseAccounts/tables/delete 删除表
Microsoft.DocumentDB/databaseAccounts/tables/containers/write 创建或更新容器
Microsoft.DocumentDB/databaseAccounts/tables/containers/delete 删除容器
Microsoft.DocumentDB/databaseAccounts/tables/containers/readChangeFeed 从容器的更改源中读取
Microsoft.DocumentDB/databaseAccounts/tables/containers/manageConflicts 管理多写入区域帐户的冲突(列出和删除冲突源中的项)

数据作通配符

作级别*tablescontainers支持通配符 (entities) 运算符。 使用通配符授予对特定资源类型的广泛访问权限。

Description
Microsoft.DocumentDB/databaseAccounts/tables/* 对表执行所有作
Microsoft.DocumentDB/databaseAccounts/tables/containers/* 对容器执行所有作
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/* 对实体执行所有作(项)
Microsoft.DocumentDB/databaseAccounts/throughputSettings/* 执行与吞吐量相关的所有作

作所需的元数据

Azure Cosmos DB 软件开发工具包(SDK)在初始化期间发出只读元数据请求,并提供特定数据请求。 这些请求提取各种配置详细信息,例如:

  • 帐户的多区域配置,其中包括帐户可用的 Azure 区域
  • 容器的分区键或其索引策略
  • 创建容器及其地址的物理分区列表
  • 它们不会提取存储在帐户中的任何数据

为了确保权限模型的最佳透明度,数据作显式涵盖 Microsoft.DocumentDB/databaseAccounts/readMetadata 这些元数据请求。 在每次通过某个 Azure Cosmos DB SDK 访问 Azure Cosmos DB 帐户时,都必须允许此作。

可以在 Azure Cosmos DB 帐户的层次结构(包括帐户、数据库或容器)的任何级别分配该作。 允许的实际元数据请求取决于范围:

  • 帐户
    • 列出帐户下的数据库
    • 对于帐户下的每个数据库,数据库范围内的允许作
    • 读取表元数据
    • 列出表下的容器
    • 对于表下的每个容器,容器范围内的允许作
  • 容器
    • 读取容器元数据
    • 列出表下的物理分区
    • 解析每个物理分区的地址

重要

无法使用数据作管理吞吐量 Microsoft.DocumentDB/databaseAccounts/readMetadata

内置角色

用于表的 Azure Cosmos DB 定义特定于数据平面的角色定义。 这些角色不同于 Azure 基于角色的访问控制角色定义。

Cosmos DB 内置数据读取者

ID00000000-0000-0000-0000-000000000001

  • 包含的操作
    • Microsoft.DocumentDB/databaseAccounts/readMetadata
    • Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/read

Cosmos DB 内置数据参与者

ID00000000-0000-0000-0000-000000000002

  • 包含的操作
    • Microsoft.DocumentDB/databaseAccounts/readMetadata
    • Microsoft.DocumentDB/databaseAccounts/tables/*
    • Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/*