ある企業が Azure カスタムロールを作成している。次の要件を満たすカスタムロール定義の要素として正しいものを 2 つ選択してください。要件:仮想マシンの起動・停止は許可するが、仮想マシンの作成・削除は禁止する。また、ストレージアカウントの読み取りも許可する。
- A. Actions に "Microsoft.Compute/virtualMachines/start/action" と "Microsoft.Compute/virtualMachines/deallocate/action" を追加する
- B. Actions に "Microsoft.Compute/virtualMachines/*" を追加し、NotActions に "Microsoft.Compute/virtualMachines/write" と "Microsoft.Compute/virtualMachines/delete" を追加する
- C. Actions に "Microsoft.Storage/storageAccounts/read" を追加する
- D. AssignableScopes に "/subscriptions/*" というワイルドカードを使ってすべてのサブスクリプションを指定する
- E. Actions に "Microsoft.Compute/*" を追加して Compute の全操作を許可する
解答と解説を見る
正解: B, C
カスタムロールの Actions には許可するアクションを列挙するか、ワイルドカード(*)で一括許可してから NotActions で除外する方法がある。選択肢Bは「Compute/virtualMachines/*」で全 VM 操作を許可しつつ NotActions で write(作成・更新)と delete を除外するため、起動・停止は許可・作成削除は禁止という要件を満たす。選択肢Cはストレージ読み取りの許可を正確に表現している。よって BとC の組み合わせが要件をすべて満たす。選択肢Aは要件を完全には満たさない。Aが列挙しているのは start と deallocate(割り当て解除)の 2 アクションだけで、コンピューティング課金を継続したまま VM を停止する powerOff/action が含まれていないため「停止を許可する」要件を取りこぼす。さらに A 単体ではストレージアカウントの読み取りも許可されないため、列挙したアクションだけでは要件を満たせない。選択肢DのAssignableScopes は具体的なサブスクリプション ID またはルート(/)を指定する必要があり、ワイルドカード "*" は無効。選択肢Eの Compute 全操作許可は要件の「作成禁止」に反する。