Azure のロールを、割り当て条件のせいで割り当てることができないトラブル

マネージドID の検証をしていて、そのID に閲覧者ロールを割り当てられないエラーが発生しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/d42dbe0d-c775-be51-ab37-eda73333543d.png)



## 結論
所有者ロールに条件が付いていて、新しく割り当てられるロールが「共同作成者」だけに制限されていた。
所有者ロールについている条件を変更できなかったので、ルートスコープでのアクセス権管理を有効にし、既存の所有者ロールを削除すると解決できた。
所有者権限を新しく付与するときには条件を選択することができたので、新しい所有者権限では閲覧者ロールを付与することができた。

解決方法の解説は、[root の管理権限](https://qiita.com/dessin/items/b24b46ffbafe16bd3a39#root-%E3%81%AE%E7%AE%A1%E7%90%86%E6%A8%A9%E9%99%90)　から読んでください。
## 環境・やったこと
私の検証環境では、自分のアカウントに「共同作成者」「所有者」の二つのロールがついています。
ロールの割り当て権限にも制限が付けられるようになっています。
例えばリソースグループのIAM の画面で、「マイアクセスの表示」で確認すると・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/df7855e2-dee8-ad7f-7761-430f4204df76.png)

所有者と、共同作成者ロールを持っていることがわかりますが・・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/45751191-4ada-31d9-ed27-4fd9282afb65.png)

画面右の「条件」の欄にビューという部分をクリックすると、権限を遂行するときの条件を設定することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/adc30930-20a3-69dc-f804-e2bcb363ecf4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/0f714af0-6f3a-b54e-048b-083baa25fab1.png)
ここを見ると、どうやら所有者の権限で割り当てられるロールが、共同作成者のみに制限されています。
いったん冒頭のマネージドID に、共同作成者ロールなら割り当てられるかどうかを試します。
ちなみに仮想マシンについてるマネージドID です。マネージドID のロールの割り当て画面からやります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/56a1852c-1759-229a-d5c9-f594a23e5c8d.png)

できましたね。上の通知です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/1efb26c7-7102-a071-7b66-4769eab062a5.png)

今度は、先ほどの画面の「ロールの追加」で、本来与えたかった「閲覧者」ロールを追加してから、マネージドID にロール割り当てを試します。
スコープはリソースグループにしたいので、リソースグループのIAM から操作します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/27adcd25-7d2e-1196-6676-0ffc75b46b74.png)

できると思ったらできませんでした。同じエラーでた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/dea5eaa1-e466-31e5-78eb-d8620953df1c.png)

また設定確認しに来たら、設定が変更されてなかった。やり直しても、共同作成者しかつかなくなってる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/6b215c21-b8aa-4214-cb8f-676e403a03e5.png)

「条件テンプレートのリセット」とか試してみましたが、閲覧者ロールの割り当てを可能にする設定を保存することができません。
ここで保存しても・・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/b8651fb8-3a7f-9764-92b0-00d63a4fc20a.png)

また戻ってきたら共同作成者に置き換わっている。なんだこりゃむっちゃもやもやする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/68e0193f-0e59-904e-ad8e-dc80f8855c26.png)

今度はリソースグループの画面のロール割り当てから行ってみると、職務ロールに何も出てこない。特権ロールの共同作成者のみが割り当てられる状況。堂々巡りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/b94638ea-834d-9f22-bdf8-ea07413d4843.png)

## root の管理権限
（2024年12月16日追記）
サブスクリプションのスコープで、割り当ての条件を編集しようとしたらエラーが出ました。リソースグループのスコープではエラーすら出ずに、保存できない状況だったのですが。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/dc9ebfe7-a3da-1c3b-34c9-bf51f4f593ba.png)
どうやら所有者にも格があって、条件の変更までできる権限ってのがあるようです。

[公式DOC](https://learn.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin?tabs=azure-portal)　に、「グローバル管理者もすべていじれるわけではないよ」と書いてます。そしてroot スコープの管理者権限の付与方法が書いてあるので、以下ではそれを試してみます。

Azure portal にグローバル管理者を持ってるユーザーでログインしてEntra ID でプロパティ を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/9def4e93-4401-d14b-9af6-8b1e8e473a03.png)
「このテナント内のすべての Azure サブスクリプションおよび管理グループへのアクセスを管理できます」をYes に変えて保存。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/460a7324-ec6a-fdfe-3b3a-d2337b08c3c3.png)

サブスクリプションスコープでのロール割り当て条件の変更を試してみますが、やっぱり駄目でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/eeb609b6-c457-3343-4064-d08734c84e12.png)

ちなみにサブスクリプションのIAM を確認すると、ルートスコープのユーザーアクセス管理者がついてました。（所有者が消えてるのは、後の作業で所有者を削除した時気づいたからです。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/f061ef6e-da48-2961-a496-53b7d82e564a.png)

## 所有者権限をいったん削除する
サブスクリプションスコープでの所有者権限を一度削除しました。
そうすると、目標だったマネージドID への閲覧者権限の付与に成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/91629ee2-4466-2a49-c063-e19eb395ee7a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/b8c5788a-2bbe-6478-0b5d-dcb45f48752e.png)

## 所有者権限を再度割り当てる
所有者権限を与える画面で、条件が選べるようになってました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/342ed62b-6788-85bb-71d7-e3713423f2c7.png)

この環境は自分用の検証環境であり、この画面に到達してる時点でどれを選んでも同じですね。とりあえず真ん中で付与しました。閲覧者も付けられるはずの条件です。
この権限で閲覧者ロールがマネージドID に付与できるか再トライします。

## ルート管理権限を外してから再トライ
ルート管理権限を外します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/ab4b1914-7818-ac45-013e-8b6fe05549ed.png)

この時点で、サブスクリプションのスコープに対して私が持っている権限は、さっき改めて付けた「所有者」と、元からあった「共同作成者」だけになっています。

マネージドID に付与した権限をいったんすべて外し、再トライします。

できました。一番上の通知が、マネージドID に閲覧者を付けたことに成功したことのお知らせです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/dfaeddc4-c1c2-dee4-6759-9e0878120ecb.png)

新しく作った所有者ロールの条件ですが、やはり普通の権限では変更することができないようです。先ほど設定したとおり、特定のロールが除外された条件テンプレートが適用されていて、「構成」をクリックした先でも変更を保存することができませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617557/3f4a62e6-e483-af1f-e26a-6562ad72f4d1.png)


条件が変更できなかったら、ルートの権限を一時的に与えて、新しくロールを付与して条件をいじりましょう。

お疲れさまでした。