雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

Azure デジタルツインのSDKが実行できない場合の対処方法

これはなに?

最近デジタルツインを触る機会があり、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 データ所有者" を付与する。
権限編集したところ無事にデータアップロードできるようになりました。