ごった煮

色々な事を書いてます

Azure Pipeline 等から Bicep をデプロイする際にロール付与を行う場合の権限設定について

Bicep や ARM テンプレートでインフラをデプロイする際、ロール付与まで行いたい場合があると思います。

こういった場面で何度かハマった(設定を忘れていただけ)ので、備忘録として残します。

どんな場面を想定しているのか

App Service から Managed Identity を経由して App Configuration に接続したい場合等

どんな Bicep を書くのか

ミニマムな Bicep は、次のような感じになると思います。

このコードの 22行目以降がロール付与の記述です。

ローカルで自分が Owner のサブスクリプションにデプロイする場合などは、特に問題なく動くはずです。

エラーになるパターン

Azure Pipeline や、GitHub Actions 等、Service Principal を使用してデプロイする場合、各サービスの指示に従って Service Principal を生成するはずです。

この場合に生成される Service Principal は、ロール管理の権限が最初から割り当てられていない場合が多いので、その Service Principal を利用したデプロイでは、ロール付与でエラーになるはずです。

解決策

Service Principal に適切な権限を付与します。

2023年02月現在でしたら、Role Based Access Control Administrator を付与するのが良いかと思います。

簡単なステップとしては、次の通りです。

  1. ポータルからサブスクリプションの IAM へ移動
  2. Add > Add role assignment へ移動
  3. Role Based Access Control Administrator を選択
  4. 付与したい Service Principal を選択
  5. ロールを付与

付与が完了すれば、エラーにならずに実行できるはずです。

まとめ

Managed Identity 等、色々設定が必要なものは、Bicep でサクッと作れるようにすると、いざという時便利なので、ぜひ活用してみましょう。