练习 - 创建 Azure 自定义角色
在本单元中,你将创建一个“虚拟机操作员”自定义角色,并在 Azure 中将它分配给自己。
本练习为选做练习。 要完成本练习,你需要访问一个 Azure 订阅,其中你自己的帐户拥有“用户访问管理员”或“所有者”角色。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户。
创建角色
在 Azure 中为新员工创建自定义角色。
使用拥有“用户访问管理员”或“所有者”角色的帐户登录到 Azure 门户。
从右上方菜单栏中选择“Cloud Shell”。
选择“Bash”。
运行以下命令以获取用于自定义角色定义的订阅 ID。 复制该订阅 ID。
az account list --output json | jq '.[] | .id, .name'
在 Cloud Shell 中键入“code”。
将以下角色定义粘贴到编辑器中。 这是我们在前面的单元中标识的角色定义。
{ "Name": "Virtual Machine Operator", "IsCustom": true, "Description": "Can monitor and restart virtual machines.", "Actions": [ "Microsoft.Storage/*/read", "Microsoft.Network/*/read", "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Authorization/*/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Insights/alertRules/*", "Microsoft.Support/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/subscriptionId" ] }
在
AssignableScopes
部分,将“subscriptionId”替换为在上一步中获得的值。从 Cloud Shell 窗格右上角的三点菜单中,选择“保存”(或在 Windows 中按“CTRL + S”,在 macOS 中按“CMD + S”)。
输入“vm-operator-role-new.json”作为文件名,然后保存。
从 Cloud Shell 窗格右上角的三点菜单中,选择“关闭编辑器”(或在 Windows 中按“CTRL + Q”,在 macOS 中按“CMD + Q”)。
在 Cloud Shell 中运行以下命令以创建自定义角色:
az role definition create --role-definition vm-operator-role.json
分配角色
创建自定义角色时,可以将其分配给用户或组。 就我们的应用场景而言,为了简单起见,请将自定义角色分配给自己。
运行以下命令获取用户主体名称。 将“显示名称”替换为在 Azure 门户右上方的配置文件卡上显示的名称。 显示名称可能是名字和姓氏。
USER=$(az ad user list --display-name "your display name" --query [0].userPrincipalName --output tsv) echo $USER
运行以下命令,为自己分配自定义角色,将“你的订阅 ID”替换为之前复制的订阅 ID:
az role assignment create --assignee $USER --role "Virtual Machine Operator" --scope /subscriptions/"your subscription id"
关闭 Cloud Shell。