Azure Cosmos DB 使用基于角色的访问控制读取数据

Azure Cosmos DB read data using role based access control

我在 Azure 中有一个 CosmosDB,我想授予用户读取各种集合中数据的权限。

我试着给他们 'Reader' 角色,这让他们知道存在一个 CosmosDB,并且他们可以看到一些元数据。但他们无法访问

内的数据

我给他们分配了 'Cosmos DB Account Reader' 结果更好。

但在我看来 'Reader' 角色应该取代 'Cosmos DB Account Reader' 角色。还是我在这里走错了路?我相信 'Reader'-role 赋予了*所有读取权限。

编辑:
portal.azure.com.

上使用内置 'Data Explorer' 似乎没有问题

真正的问题在于使用 cosmos.azure.com,并且使用 ActiveDirectory 登录 inn,没有让用户看到任何具有 'Cosmos DB Account Reader' 角色的内容。可能需要用户具有写入权限。

为了从 Cosmos DB 帐户中读取数据,用户应该处于允许获取访问密钥的角色中。 Reader 角色没有此功能。然而 Cosmos DB Account Reader 角色能够获取 read-only access keys,此角色中的用户可以使用它来读取数据(但不能对该数据进行任何更改)。

由此link,这里是Cosmos DB Account Reader角色的定义:

{
  "assignableScopes": [
    "/"
  ],
  "description": "Can read Azure Cosmos DB Accounts data",
  "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8",
  "name": "fbdf93bf-df7d-467e-a4d2-9458aa1360c8",
  "permissions": [
    {
      "actions": [
        "Microsoft.Authorization/*/read",
        "Microsoft.DocumentDB/*/read",
        "Microsoft.DocumentDB/databaseAccounts/readonlykeys/action",
        "Microsoft.Insights/MetricDefinitions/read",
        "Microsoft.Insights/Metrics/read",
        "Microsoft.Resources/subscriptions/resourceGroups/read",
        "Microsoft.Support/*"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "Cosmos DB Account Reader Role",
  "roleType": "BuiltInRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}

Microsoft.DocumentDB/databaseAccounts/readonlykeys/action 操作可以获取只读访问密钥,从而读取数据。