状況
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.正答
- Contributor では VM を起動できないので、Owner を依頼する
- サブスクリプション全体の Contributor を依頼する
- 操作の対象が rg-prod の VM になっているので、対象を確かめ直す
- NSG でポート 22 と 3389 を開けてから再実行する
解説
AuthorizationFailed のエラー本文には、誰が(client)、何を(action)、どこに対して(scope)実行しようとしたかが書かれている。ロールは rg-dev に付いているのに、scope は rg-prod の vm-web01 で、検証用ではなく本番の VM を操作しようとしていた可能性が高い。コマンドのリソースグループ名や、ポータルで開いている画面を確かめ直すのが先。Contributor には VM の起動が含まれるので、Owner は不要。サブスクリプション全体の権限をもらえば本番の VM まで操作できてしまい、取り違えの事故を防げなくなる。NSG は通信の制御で、Azure の管理操作の認可とは関係しない。
この問題を含む Azure のテストを制限時間つきで解く
Azureクイズへ