LoginSignup
4
3

More than 3 years have passed since last update.

Azureのrole assignmentで `~ does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' ~` が出たとき

Last updated at Posted at 2019-03-14

前置き

AzureのRBACをちゃんと理解していれば調べるまでもないことで,Microsoftのドキュメントをちゃんと読んでいれば理解できることではあるのだが,同じことを過去に一度調べた記憶があるので,自分用に記録を残しておくことにする.

経緯

AKSでInternal Load Balancerを使おうと,ここを参考にkubectl applyしたのだが,EXTERNAL-IP<pending>のままである.

考えてみれば当然で,LBの配備先にAKSの管理下に無いサブネットを指定しているのだから,クラスタのサービスプリンシパルに対象サブネットを操作する権限が必要である.

前述のマニュアルにもバッチリと「Network Contributorロールをクラスタのサービスプリンシパルを当てる必要があるよ」と書かれている.ドキュメントはちゃんと読もう.

問題

さて,意気揚々と実行してみると次のようなエラーが出た.

$ az role assignment create --assignee ********-****-****-****-************ --role "Network Contributor" --scope /subscriptions/********-****-****-****-************/resourceGroups/RG_SAMPLE/providers/Microsoft.Network/virtualNetworks/sample
ERROR: The client 'firstname.sirname@domain.local' with object id '********-****-****-****-************' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/********-****-****-****-************/resourceGroups/RG_SAMPLE/providers/Microsoft.Network/virtualNetworks/sample/providers/Microsoft.Authorization/roleAssignments/********-****-****-****-************'.

どうやらお前のアカウント(client)はロールを書き込む権限が無い.と怒られているようだ.

しかし,このアカウントはサブスクリプション上でContributorロールが割り当てられており,展開済みのリソースは全てこのアカウントから展開している.

何の権限が必要なのだろうか.

解決

RBACのアクセス権付与,つまりMicrosoft.Authorization/roleAssignments/writeへのアクセス権限は,組み込みのロールのうち

  • Owner
  • User Access Administrator

この2つのロールしか持っていないと公式ドキュメントに書いてある.

つまり,Contributorではアクセスできない.

わかってしまえば単純な話で,az role assignment createを実行するユーザにUser Access Administratorロールを割り当て,az logoutaz loginを実行後1,再度az role assignment createを試すとうまくいった.


  1. ログイン・ログアウトが必要だったのかはわからない.時間が経てば問題なかった可能性はあるが,私の環境では User Access Administrator ロールの割当直後 az role assignment create が同じエラーで失敗していたので,再ログインすればcredentialが更新されるんじゃないか?とやってみたらうまくいった 

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3