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

2023-12-22

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

我尝试给他们“读者”角色,这让他们知道存在 CosmosDB,并且他们可以看到一些元数据。但他们无法访问其中的数据

我为他们分配了“Cosmos DB 帐户阅读器”,这取得了更好的结果。

但在我看来,“读者”角色应该取代“Cosmos DB 帐户读者”角色。或者我在这里走错了路?我相信“读者”角色授予*所有读取访问权限。

EDIT:
使用内置的“数据资源管理器”似乎没有问题门户网站azure.com.

真正的问题在于使用cosmos.azure.com,并使用 Active Directory 登录,并没有让用户看到任何具有“Cosmos DB 帐户读取者”角色的内容。可能需要用户具有写入权限。


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

由此link https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#cosmos-db-account-reader-role,这是定义Cosmos DB Account Reader role:

{
  "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操作可以获取只读访问密钥,从而读取数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐