LoginSignup
1
0

cosmos DB: RBAC permissons が無い、と言われた時の対処。コントロールプレーン vs データプレーン

Last updated at Posted at 2024-03-07

背景

Cosmos DB をアプリから操作する際に出たエラーの対処の記録
エラー自体はこんな感じ。

principal [principal id] does not have required RBAC permissions to perform action [Microsoft.DocumentDB/databaseAccounts/readMetadata] on
resource [/]. Learn more: https://aka.ms/cosmos-native-rbac.

単なる RBAC 化と思い、 Azure Portal でサクッと解決するかと思ったが、ちょっと違ったって話。

コントロールプレーンではなく、データプレーンでの RBAC を行う必要があった。

結論

cosmosdb 用の Role をアサインする。

  • Read

az cosmosdb sql role assignment create -a <cosmosdbName> -g <resourceGroupName> -s "/" -p <principalId> -d 00000000-0000-0000-0000-000000000001

  • Read/Write

az cosmosdb sql role assignment create -a <cosmosdbName> -g <resourceGroupName> -s "/" -p <principalId> -d 00000000-0000-0000-0000-000000000002

カスタムロールも作成して適用可能。

詳細

image.png

Resource から IAM で設定できるRBAC とは違って、Cosmos DB に対しての Role があるそうな。

現状は以下の理解

  • 管理プレーン(コントロールプレーン)
    • ARM によって制御されるリソース管理の仕組み
  • データプレーン
    • 各リソースにおける機能管理の仕組み

詳細は以下で。

で、cosmos DB については、以下

Blog での言及が以下

あとがき

RBAC をなんとなく理解したと思ってたら、control plane and data plane という未知なる扉が :sweat:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0