gpt4 book ai didi

azure - 无法为 cosmos db 分配 Azure 角色

转载 作者:行者123 更新时间:2023-12-02 07:34:49 25 4
gpt4 key购买 nike

我正在尝试为身份分配一个角色来读取/写入cosmos db。我运行这个命令:

az role assignment create \
--assignee <sp_object_id> \
--role "00000000-0000-0000-0000-000000000002" \
--scope "/subscriptions/<subscriptionId>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<cosmos-db-name>"

这是我得到的错误:

The specified role definition with ID '00000000000000000000000000000002' does not exist.

我尝试了角色名称,但没有成功。我已经尝试过 GUI,但是这个角色在任何地方都看不到。

如何分配此角色?

最佳答案

Azure Cosmosdb 上的 RBAC 的构建方式与 Azure RBAC 类似,其中对数据操作进行更精细的控制,而不是 Azure 资源管理。 permission model描述的很详细。

在使用 SDK 与数据平面交互(例如写入数据或读取数据)的实现过程中,应为应用程序提供细粒度的数据级别权限。 无法从门户授予数据平面级别权限。

以下命令提供对数据库中“container1”的“数据贡献者”权限,但仅对同一数据库中的“container2”提供“数据读取者”权限

az cosmosdb sql role assignment create --account-name ${{ variables.cosmosdbAccountName }} --resource-group ${{ variables.resourceGroupName }} --role-definition-name "Cosmos DB Built-in Data Contributor" --scope "/dbs/${{ variables.cosmosdbAccountDatabaseName }}/colls/${{ variables.cosmosdbContainerOneName }}" --principal-id $(umiObjectId)

az cosmosdb sql role assignment create --account-name ${{ variables.cosmosdbAccountName }} --resource-group ${{ variables.resourceGroupName }} --role-definition-name "Cosmos DB Built-in Data Reader" --scope "/dbs/${{ variables.cosmosdbAccountDatabaseName }}/colls/${{ variables.cosmosdbContainerTwoName }}" --principal-id $(umiObjectId)

上面的示例仅显示内置CosmosDB 数据平面 RBAC 的使用,最好在每个容器内使用自定义角色进行更细粒度的访问。

NOTE: Azure CosmosDB data containers are not Azure Resources, meaning cannot be created by Azure Resource Model (ARM). So this permission model fulfills the authorization need with many security benefits

关于azure - 无法为 cosmos db 分配 Azure 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69161904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com