つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

リソースグループへのRBACを設定するAzure CLI

やりたいこと

  1. Azure AD にユーザーを招待する
  2. リソースグループを作成する
  3. リソースグループに招待したユーザーのRBACを設定する

この流れの作業を行う機会が少なくないので、ポータルではなく Azure CLI でできるようにしておきたい。

1. Azure AD にユーザーを招待する

本来なら Azure CLI ではなく Microsoft Graph API を使用するが、Azure CLI にも az rest という便利なコマンドがある。
az restMicrosoft Graph API の認証に必要なアクセストークンが取得できるため、結果的に Azure CLI で操作ができるようになる。

docs.microsoft.com

例:自身のユーザー情報を取得する

$ az rest \
>   --method get \
>   --url https://graph.microsoft.com/v1.0/me/
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  "businessPhones": [],
  "displayName": "松村優大",
  "givenName": "優大",
  "id": "...",
  "jobTitle": null,
  "mail": null,
  "mobilePhone": null,
  "officeLocation": null,
  "preferredLanguage": null,
  "surname": "松村",
  "userPrincipalName": "..."
}

※一部の値はダミー

Azure AD にユーザーを招待する

az rest \
  --method post \
  --url "https://graph.microsoft.com/v1.0/invitations" \
  --body "{\"invitedUserEmailAddress\": \"email@example.com\", \"inviteRedirectUrl\": \"https://myapp.contoso.com\", \"sendInvitationMessage\": true}"

invitedUserEmailAddress に招待先のメールアドレスを指定する。
sendInvitationMessagetrue を指定することで招待メールが送付される。

docs.microsoft.com

2. リソースグループを作成する

まぁ、これは定番ですかね。

az group create --name rg-rbac-control

docs.microsoft.com

3. リソースグループに招待したユーザーのRBACを設定する

普段この作業は Azure ポータルで行うので、改めてコマンドを把握しておきたい。
例えばリソースグループの共同作成者ロールを付与したいときは次のようになる。

USER_ID=RBACを設定したいユーザーID

az role assignment create \
  --assignee $USER_ID \
  --role "Contributor" \
  --resource-group rg-rbac-control

docs.microsoft.com