Azure サブスクリプションへのロール割り当てを Azure CLI で実行してみたいと思います。本ブログでは、サブスクリプションに対して特定の Azure AD グループに共同作成者ロールを付与します。
Azure CLI でサブスクリプションにロール割り当て
Azure CLI に使用してサブスクリプションにロールを割り当てる手順は次のドキュメントに記載があります。本ドキュメントに沿って設定してみます。
Azure CLI を使用して Azure ロールを割り当てる - Azure RBAC | Microsoft Learn
az role assignment
コマンドでサブスクリプションにロールを割り当てることができます。
az role assignment | Microsoft Learn
サブスクリプションに対して、グループに共同作成者ロールを割り当てる実行コマンド例です。
az role assignment create --assignee "d6916475-7391-4495-840a-e93daexample" \
--role "b24988ac-6180-42a0-ab88-20f7382dd24c" \
--subscription "eab80a4f-1fd9-464d-b71c-d3cd6example"
実行結果例です。
$ az role assignment create --assignee "d6916475-7391-4495-840a-e93daexample" \
--role "b24988ac-6180-42a0-ab88-20f7382dd24c" \
--subscription "eab80a4f-1fd9-464d-b71c-d3cd6example"
--scope argument will become required for creating a role assignment in the breaking change release of the fall of 2023. Please explicitly specify --scope.
{
"condition": null,
"conditionVersion": null,
"createdBy": null,
"createdOn": "2023-06-20T14:45:26.112804+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example/providers/Microsoft.Authorization/roleAssignments/82f12c4a-78c9-45f3-b42a-25f88ef7cb65",
"name": "82f12c4a-78c9-45f3-b42a-25f88ef7cb65",
"principalId": "d6916475-7391-4495-840a-e93daexample",
"principalType": "Group",
"roleDefinitionId": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
"scope": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "57cd7118-f92c-4964-9dfb-9061cexample",
"updatedOn": "2023-06-20T14:45:28.448014+00:00"
}
割り当て結果を確認してみたいと思います。
Azure CLI でサブスクリプションに割り当てられているロールを確認する方法は次のドキュメントに記載があります。
Azure CLI を使用して Azure ロールの割り当てを一覧表示する - Azure RBAC | Microsoft Learn
実行コマンド例です。
az role assignment list --subscription "eab80a4f-1fd9-464d-b71c-d3cd6example"
実行結果例です。
$ az role assignment list --subscription "eab80a4f-1fd9-464d-b71c-d3cd6example"
[
{
"condition": null,
"conditionVersion": null,
"createdBy": "57cd7118-f92c-4964-9dfb-9061cexample",
"createdOn": "2023-06-20T14:45:28.448014+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example/providers/Microsoft.Authorization/roleAssignments/82f12c4a-78c9-45f3-b42a-25f88ef7cb65",
"name": "82f12c4a-78c9-45f3-b42a-25f88ef7cb65",
"principalId": "d6916475-7391-4495-840a-e93daexample",
"principalName": "example-group",
"principalType": "Group",
"roleDefinitionId": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
"roleDefinitionName": "Contributor",
"scope": "/subscriptions/eab80a4f-1fd9-464d-b71c-d3cd6example",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "57cd7118-f92c-4964-9dfb-9061cexample",
"updatedOn": "2023-06-20T14:45:28.448014+00:00"
}
]
各種 ID の確認方法
az role assignment
コマンド実行のために必要な次の ID を Azure CLI で確認する方法を記載します。
- アクセスが必要なユーザーまたはグループの ID
- 割り当てるロールの ID
- サブスクリプションの ID
アクセスが必要なユーザーまたはグループの ID の確認
グループ ID を確認するコマンドです。
$ az ad group show --group example-group --query "id" --output tsv
d6916475-7391-4495-840a-e93daexample
もし ユーザー ID を確認したい場合は次のコマンドです。
$ az ad user show --id example-user@example.net --query "id" --output tsv
c6c3a2ac-3fb6-4fbe-bd06-39a99example
割り当てるロールの ID の確認
次のコマンドでロール一覧を確認できます。一覧だとロールの数が多いのでContributor
でフィルタした例を記載しています。14 行目が共同作成者(Contributor)ロールです。
$ az role definition list --query "[].{name:name, roleType:roleType, roleName:roleName}" --output tsv | grep Contributor
312a565d-c81f-4fd8-895a-4e21e48d571c BuiltInRole API Management Service Contributor
ae349356-3a1b-4a5e-921d-050484c6347e BuiltInRole Application Insights Component Contributor
4f8fab4f-1852-4a58-a46a-8eaf358af14a BuiltInRole Avere Contributor
5e467623-bb1f-42f4-a55d-6e525e11384b BuiltInRole Backup Contributor
5e3c6656-6cfa-4708-81fe-0de47ac73342 BuiltInRole BizTalk Contributor
426e0c7f-0c7e-4658-b36f-ff54d6c29b45 BuiltInRole CDN Endpoint Contributor
ec156ff8-a8d1-4d15-830c-5b80698ca432 BuiltInRole CDN Profile Contributor
b34d265f-36f7-4a0d-a4d4-e158ca92e90f BuiltInRole Classic Network Contributor
86e8f5dc-a6e9-4c67-9d15-de283e8eac25 BuiltInRole Classic Storage Account Contributor
9106cda0-8a86-4e81-b686-29a22c54effe BuiltInRole ClearDB MySQL DB Contributor
d73bb868-a0df-4d4d-bd69-98a00b01fccb BuiltInRole Classic Virtual Machine Contributor
25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68 BuiltInRole Cognitive Services Contributor
b24988ac-6180-42a0-ab88-20f7382dd24c BuiltInRole Contributor
434105ed-43f6-45c7-a02f-909b2ba83430 BuiltInRole Cost Management Contributor
add466c9-e687-43fc-8d98-dfcf8d720be5 BuiltInRole Data Box Contributor
673868aa-7521-48a0-acc6-0f60742d39f5 BuiltInRole Data Factory Contributor
5bd9cd88-fe45-4216-938b-f97437e15450 BuiltInRole DocumentDB Account Contributor
befefa01-2a29-4197-83a8-272ff33ce314 BuiltInRole DNS Zone Contributor
428e0ff0-5e57-4d9c-a221-2c70d0e0a443 BuiltInRole EventGrid EventSubscription Contributor
8d8d5a11-05d3-4bda-a417-a08778121c7c BuiltInRole HDInsight Domain Services Contributor
03a6d094-3444-4b3d-88af-7477090a9e5e BuiltInRole Intelligent Systems Account Contributor
f25e0fa2-a7c8-4377-a976-54943a77a395 BuiltInRole Key Vault Contributor
92aaf0da-9dab-42b6-94a3-d43ce8d16293 BuiltInRole Log Analytics Contributor
87a39d53-fc1b-424a-814c-f7e04687dc9e BuiltInRole Logic App Contributor
e40ec5ca-96e0-45a2-b4ff-59039f2c2b59 BuiltInRole Managed Identity Contributor
5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c BuiltInRole Management Group Contributor
4d97b98b-1d4f-4787-a291-c67834d212e7 BuiltInRole Network Contributor
5d28c62d-5b37-4476-8438-e587778df237 BuiltInRole New Relic APM Account Contributor
e0f68234-74aa-48ed-b826-c38b57376e17 BuiltInRole Redis Cache Contributor
36243c78-bf99-498c-9df9-86d9f8d28608 BuiltInRole Resource Policy Contributor
188a0f2f-5c9e-469b-ae67-2aa5ce574b94 BuiltInRole Scheduler Job Collections Contributor
7ca78c08-252a-4471-8644-bb5ff32d4ba0 BuiltInRole Search Service Contributor
8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827 BuiltInRole Spatial Anchors Account Contributor
6670b86e-a3f7-4917-ac9b-5d6ab1be4567 BuiltInRole Site Recovery Contributor
4939a1f6-9ae0-4e48-a1e0-f2cbe897382d BuiltInRole SQL Managed Instance Contributor
9b7fa17d-e63e-47b0-bb0a-15c516ac86ec BuiltInRole SQL DB Contributor
17d1049b-9a84-46fb-8f53-869881c3d3ab BuiltInRole Storage Account Contributor
6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437 BuiltInRole SQL Server Contributor
ba92f5b4-2d11-453d-a403-e96b0029c9fe BuiltInRole Storage Blob Data Contributor
974c5e8b-45b9-4653-ba55-5f855dd0fb88 BuiltInRole Storage Queue Data Contributor
cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e BuiltInRole Support Request Contributor
a4b10055-b0c7-44c2-b00f-c7b5b3550cf7 BuiltInRole Traffic Manager Contributor
9980e02c-c2be-4d73-94e8-173b1dc7cf3c BuiltInRole Virtual Machine Contributor
2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b BuiltInRole Web Plan Contributor
de139f84-1756-47ae-9be6-808fbbe84772 BuiltInRole Website Contributor
bbf86eb8-f7b4-4cce-96e4-18cddf81d86e BuiltInRole Attestation Contributor
0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb BuiltInRole Storage File Data SMB Share Contributor
b12aa53e-6015-4669-85d0-8515ebb3ae7f BuiltInRole Private DNS Zone Contributor
a7264617-510b-434b-a828-9731dc254ea7 BuiltInRole Storage File Data SMB Share Elevated Contributor
41077137-e803-4205-871c-5a86e6a753b4 BuiltInRole Blueprint Contributor
ab8e14d6-4a74-4a29-9ba8-549422addade BuiltInRole Microsoft Sentinel Contributor
8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761 BuiltInRole SignalR/Web PubSub Contributor
7f646f1b-fa08-80eb-a22b-edd6ce5c915c BuiltInRole Experimentation Contributor
641177b8-a67a-45b9-a033-47bc880bb21e BuiltInRole Managed Application Contributor Role
612c2aa1-cb24-443b-ac28-3ab7272de6f5 BuiltInRole Security Assessment Contributor
4a9ae827-6dc8-4573-8ac7-8239d42aa03f BuiltInRole Tag Contributor
a41e2c5b-bd99-4a07-88f4-9bf657a760b8 BuiltInRole Integration Service Environment Contributor
ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8 BuiltInRole Azure Kubernetes Service Contributor Role
5a1fc7df-4bf1-4951-a576-89034ee01acd BuiltInRole FHIR Data Contributor
8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204 BuiltInRole Azure Maps Data Contributor
c1ff6cc2-c111-46fe-8896-e0ef812ad9f3 BuiltInRole Cognitive Services Custom Vision Contributor
daa9e50b-21df-454c-94a6-a8050adab352 BuiltInRole Collaborative Data Contributor
5dffeca3-4936-4216-b2bc-10343a5abb25 BuiltInRole Schema Registry Contributor (Preview)
8508508a-4469-4e45-963b-2518ee0bb728 BuiltInRole AgFood Platform Service Contributor
e5e2a7ff-d759-4cd2-bb51-3152d37e2eb1 BuiltInRole Storage Account Backup Contributor
6188b7c9-7d01-4f99-a59f-c88b630326c0 BuiltInRole Experimentation Metric Contributor
ca6382a4-1721-4bcf-a114-ff0c70227b6b BuiltInRole Application Group Contributor
082f0a83-3be5-4ba1-904c-961cca79b387 BuiltInRole Desktop Virtualization Contributor
21efdde3-836f-432b-bf3d-3e8e734d4b2b BuiltInRole Desktop Virtualization Workspace Contributor
e307426c-f9b6-4e81-87de-d99efb3c32bc BuiltInRole Desktop Virtualization Host Pool Contributor
86240b0e-9422-4c43-887b-b61143f32ba8 BuiltInRole Desktop Virtualization Application Group Contributor
7efff54f-a5b4-42b5-a1c5-5411624893ce BuiltInRole Disk Snapshot Contributor
1e241071-0855-49ea-94dc-649edcd759de BuiltInRole EventGrid Contributor
0e75ca1e-0464-4b4d-8b93-68208a576181 BuiltInRole Cognitive Services Speech Contributor
494bdba2-168f-4f31-a0a1-191d2f7c028c BuiltInRole IoT Hub Twin Contributor
4ea46cd5-c1b2-4a8e-910b-273211f9ce47 BuiltInRole IoT Hub Registry Contributor
4fc6c259-987e-4a07-842e-c321cc9d413f BuiltInRole IoT Hub Data Contributor
8ebe5a00-799e-43f5-93ac-243d3dce84a7 BuiltInRole Search Index Data Contributor
0a9a7e1f-b9d0-4cc4-a60d-0319b160aaa3 BuiltInRole Storage Table Data Contributor
f353d9bd-d4a6-484e-a77a-8050b599b867 BuiltInRole Automation Contributor
85cb6faf-e071-4c9b-8136-154b5a04f717 BuiltInRole Kubernetes Extension Contributor
dfce44e4-17b7-4bd1-a6d1-04996ec95633 BuiltInRole Device Provisioning Service Data Contributor
f5880b48-c26d-48be-b172-7927bfa1c8f1 BuiltInRole Azure Spring Cloud Service Registry Contributor
a06f5c24-21a7-4e1a-aa2b-f19eb6684f5b BuiltInRole Azure Spring Cloud Config Server Contributor
6ae96244-5829-4925-a7d3-5975537d91dd BuiltInRole Azure VM Managed identities restore Contributor
dba33070-676a-4fb0-87fa-064dc56ff7fb BuiltInRole Azure Maps Contributor
b748a06d-6150-4f8a-aaa9-ce3940cd96cb BuiltInRole Azure Arc VMware VM Contributor
749a398d-560b-491b-bb21-08924219302e BuiltInRole Load Test Contributor
0c8b84dc-067c-4039-9615-fa1a4b77c726 BuiltInRole PlayFab Contributor
f69b8690-cc87-41d6-b77a-a4bc3c0a966f BuiltInRole Lab Services Contributor
5daaa2af-1fe8-407c-9122-bba179798270 BuiltInRole Lab Contributor
e8ddcd69-c73f-4f9f-9844-4100522f16ad BuiltInRole Workbook Contributor
749f88d5-cbae-40b8-bcfc-e573ddc772fa BuiltInRole Monitoring Contributor
b8b15564-4fa6-4a59-ab12-03e1d9594795 BuiltInRole Autonomous Development Platform Data Contributor (Preview)
f4c81013-99ee-4d62-a7ee-b3f1f648599a BuiltInRole Microsoft Sentinel Automation Contributor
088ab73d-1256-47ae-bea9-9de8e7131f31 BuiltInRole Guest Configuration Resource Contributor
eeaeda52-9324-47f6-8069-5d5bade478b2 BuiltInRole Domain Services Contributor
0f2ebee7-ffd4-4fc0-b3b7-664099fdad5d BuiltInRole DNS Resolver Contributor
6b77f0a0-0d89-41cc-acd1-579c22c17a67 BuiltInRole AgFood Platform Sensor Partner Contributor
cd08ab90-6b14-449c-ad9a-8f8e549482c6 BuiltInRole Scheduled Patching Contributor
e582369a-e17b-42a5-b10c-874c387c530b BuiltInRole Azure Arc ScVmm VM Contributor
a959dbd1-f747-45e3-8ba6-dd80f235f97c BuiltInRole Desktop Virtualization Virtual Machine Contributor
40c5ff49-9181-41f8-ae61-143b0e78555e BuiltInRole Desktop Virtualization Power On Off Contributor
489581de-a3bd-480d-9518-53dea7416b33 BuiltInRole Desktop Virtualization Power On Contributor
63bb64ad-9799-4770-b5c3-24ed299a07bf BuiltInRole Azure Kubernetes Fleet Manager Contributor Role
1c9b6475-caf0-4164-b5a1-2142a7116f4b BuiltInRole Template Spec Contributor
a001fd3d-188f-4b5d-821b-7da978bf7442 BuiltInRole Cognitive Services OpenAI Contributor
0ab34830-df19-4f8c-b84e-aa85b8afa6e8 BuiltInRole Azure Front Door Domain Contributor
3f2eb865-5811-4578-b90a-6fc6fa0df8e5 BuiltInRole Azure Front Door Secret Contributor
0c34c906-8d99-4cb7-8bb7-33f5b0a1a799 BuiltInRole API Management Workspace Contributor
69566ab7-960f-475b-8e7c-b3118f30c6bd BuiltInRole Storage File Data Privileged Contributor
1f135831-5bbe-4924-9016-264044c00788 BuiltInRole Windows365NetworkInterfaceContributor
8b9dfcab-4b77-4632-a6df-94bd07820648 BuiltInRole Azure Sphere Contributor
e9b8712a-cbcf-4ea7-b0f7-e71b803401e6 BuiltInRole SaaS Hub Contributor
7ac06ca7-21ca-47e3-a67b-cbd6e6223baf BuiltInRole Cognitive Search Serverless Data Contributor
サブスクリプションの ID の確認
サブスクリプションの ID は次のコマンドで確認できます。数が多い場合は、grep で絞っても良いと思います。
$ az account list --query "[].{name:name, id:id}" --output tsv
test-subscription eab80a4f-1fd9-464d-b71c-d3cd6example
ID 確認と割り当てを一度に実行したい場合の例
ID の確認とロール割り当てを続けて実施したい場合の例を紹介します。
例えば、サブスクリプションと割り当てるロールが決まっていて、グループが異なる割り当て作業が繰り返しある場合は、次の例のコマンドを一度にコピペして実行することもできます。groupName
の値を都度書き換えて実行する想定であり、割り当てるロールはContributor
としています。
groupName="example-group"
groupId=$(az ad group show --group ${groupName} --query "id" --output tsv)
az role assignment create --assignee ${groupId} \
--role "b24988ac-6180-42a0-ab88-20f7382dd24c" \
--subscription "eab80a4f-1fd9-464d-b71c-d3cd6example"
以上で、Azure CLI を使用したサブスクリプションへのロール割り当ての紹介は終わりです。
さいごに
サブスクリプションへのロール割り当てを Azure CLI で実施する機会がありましたので、ブログにしてみました。
このブログがどなたかのご参考になれば幸いです。