Azure4 択難易度 応用

状況

rg-dev に Contributor を付けてもらい、サインインし直してから検証用の VM を起動しようとしたところ、次のエラーが出た。

エラーから考えて、最も適切な対応は?

(AuthorizationFailed) The client 'shinsotsu@example.com' with object id '0f1c...'does not have authorization to perform action 'Microsoft.Compute/virtualMachines/start/action'over scope '/subscriptions/.../resourceGroups/rg-prod/providers/Microsoft.Compute/virtualMachines/vm-web01' or the scope is invalid.

正答

  1. Contributor では VM を起動できないので、Owner を依頼する
  2. サブスクリプション全体の Contributor を依頼する
  3. 操作の対象が rg-prod の VM になっているので、対象を確かめ直す
  4. NSG でポート 22 と 3389 を開けてから再実行する

解説

AuthorizationFailed のエラー本文には、誰が(client)、何を(action)、どこに対して(scope)実行しようとしたかが書かれている。ロールは rg-dev に付いているのに、scope は rg-prod の vm-web01 で、検証用ではなく本番の VM を操作しようとしていた可能性が高い。コマンドのリソースグループ名や、ポータルで開いている画面を確かめ直すのが先。Contributor には VM の起動が含まれるので、Owner は不要。サブスクリプション全体の権限をもらえば本番の VM まで操作できてしまい、取り違えの事故を防げなくなる。NSG は通信の制御で、Azure の管理操作の認可とは関係しない。

参考: learn.microsoft.com

rbacauthorization-failedscopedanger

この問題を含む Azure のテストを制限時間つきで解く

Azureクイズへ