これはなに?
最近デジタルツインを触る機会があり、SDKの実行で権限エラーとなり詰まったので、簡単な内容ですが、その時の対応方法を残しておきます。
現象
SDKを利用してAzure デジタルツインにデータをアップロードしたところ、403 (Forbidden)が返されてデータがアップロードできない。SDKの実行にはサービスプリンシパルを利用しており、検証環境なのでサブスクリプションレベルで "共同作成者" をつけていました。
原因
サービスプリンシパルへの権限設定が不足していた。
以下のURLを確認したところ、"Azure Digital Twins データ所有者" の権限も必要だった。
失敗したサービス要求のトラブルシューティング: エラー 403 (禁止) - Azure Digital Twins | Microsoft Docs
多くの場合、このエラーは、サービスに対して Azure ロールベースのアクセス制御 (Azure RBAC) のアクセス許可が正しく設定されていないことを示しています。 Azure Digital Twins インスタンスの多くのアクションを行うには、管理しようとしているインスタンスに対して、"Azure Digital Twins データ所有者" ロールを保持している必要があります。
対処方法
原因のところに書いてしまっていますが、サービスプリンシパルに、"Azure Digital Twins データ所有者" を付与する。
権限編集したところ無事にデータアップロードできるようになりました。