apache Gremlin 数据平面安全参考Azure Cosmos DB

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

Warning

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

内置操作

可以在角色定义中单独设置以下数据操作。

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

数据作通配符

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

数据作通配符 Description
Microsoft.DocumentDB/databaseAccounts/gremlin/* 对表执行所有操作。
Microsoft.DocumentDB/databaseAccounts/gremlin/containers/* 对容器执行所有操作。
Microsoft.DocumentDB/databaseAccounts/gremlin/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帐户层次结构(包括帐户、数据库或容器)的任何级别分配操作。 允许的实际元数据请求取决于范围:

  • 帐户:
    • 列出帐户下的数据库。
    • 允许帐户下每个数据库在数据库范围内执行的操作。
  • 小鬼:
    • 读取表元数据。
    • 列出表下的容器。
    • 允许表下每个容器在容器范围内执行的操作。
  • 容器:
    • 读取容器元数据。
    • 列出表下的物理分区。
    • 解析每个物理分区的地址。

Important

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

内置角色

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

Cosmos DB 内置数据读取器

ID:00000000-0000-0000-0000-000000000003

包含的操作:

  • Microsoft.DocumentDB/databaseAccounts/readMetadata
  • Microsoft.DocumentDB/databaseAccounts/throughputSettings/read
  • Microsoft.DocumentDB/databaseAccounts/gremlin/containers/entities/read
  • Microsoft.DocumentDB/databaseAccounts/gremlin/containers/ExecuteQuery
  • Microsoft.DocumentDB/databaseAccounts/gremlin/containers/ReadChangeFeed

Cosmos DB 内置数据贡献者

ID:00000000-0000-0000-0000-000000000004

包含的操作:

  • Microsoft.DocumentDB/databaseAccounts/readMetadata
  • Microsoft.DocumentDB/databaseAccounts/throughputSettings/read
  • Microsoft.DocumentDB/databaseAccounts/throughputSettings/write
  • Microsoft.DocumentDB/databaseAccounts/gremlin/*
  • Microsoft.DocumentDB/databaseAccounts/gremlin/containers/*
  • Microsoft.DocumentDB/databaseAccounts/gremlin/containers/entities/*