我们的销售团队将使用Azure VM进行销售演示。我希望能够让某些人能够随意启动/停止自己的VM。我已经看到能够在管理门户中添加人员作为管理员,但这似乎可以让他们访问我们的整个订阅。我希望能够在不让每个人都创建自己的订阅的情况下管理它。
示例场景:
人员A能够启动/停止人员A的专用虚拟机。
B人能够启动/停止Person B的专用VM。 等
答案 0 :(得分:9)
为了允许用户启动和停止虚拟机,您需要使用正确的权限创建自定义role。
在这个答案中,我将列出要使用azure command line interface
获得此结果的步骤。您可以使用Power Shell
或Azure Rest Api
执行相同操作(在link和Power Shell
处找到有关Azure Rest Api
使用的命令的详细信息。在此link)。
newRole.json
):
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Can deallocate, start and restart virtual machines.",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/deallocate/action"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/11111111-1111-1111-1111-111111111111"
]
}
JSON文件的每个字段的简短说明:
Name
:新角色的名称。这是将在天蓝色门户网站Is Custom
:指定它是用户定义的角色Description
:角色的简短说明,也在天蓝色门户网站上显示Actions
:与此角色关联的用户可以执行的操作列表。每条线分别允许用户:
No Actions
:与此角色关联的用户无法执行的操作列表。在这种情况下,列表为空,通常它必须是前一个字段的子集。 AssignableScopes
:必须添加角色的订阅集。每个代码都以/subscription/
字符串为前缀。您可以通过访问订阅菜单(由此图标标识)
并复制SUBSCRIPTION ID
列
azure cli
执行命令az login
登录您的azure帐户。有关如何安装azure cli并分别执行登录过程的更多信息here和here。az role definition create --role-definition newRole.json
。选择机器后,选择Access control (Iam)
从新刀片中选择Add
Role
:在我们的案例Virtual Machine Operator
Assign access to
:Azure AD user, group, or application
。 Select
:与需要启动/重新启动/停止VM的帐户关联的电子邮件在用户访问门户网站的此操作之后,她将在虚拟机列表中看到所选的VM。如果她选择虚拟机,她将能够启动/重启/停止它。
答案 1 :(得分:1)
目前这是不可能的。虽然通过一些编程可以实现。您在Azure门户上看到的内容可以通过Azure Service Management API
实现。您可以做的是编写一个使用此API的应用程序,然后您可以定义所有规则。
如果您认为您的销售人员不会陷入困境,您可以做的另一件事是使用Azure PowerShell Cmdlets
创建一些自定义PowerShell脚本,他们只需执行这些脚本即可启动/停止VM。
答案 2 :(得分:0)
我的建议是构建自己的façade,利用Azure Management API为您执行这些任务。这允许您围绕访问/授权设置自己的控件,并使其跨越多个订阅(如果这证明是必要的话)。此外观可能会托管在免费的Azure网站中。
答案 3 :(得分:0)
在portal.azure.com中打开您的VM
导航到Access control (IAM)
→Role Assignments
,然后单击“添加角色分配”。
选择标准角色虚拟机贡献者
默认情况下分配访问权限(Azure AD用户,组...),
在选择字段中输入新的受限用户的电子邮件,然后选择来宾。
保存。
答案 4 :(得分:0)
我创建了一个自定义角色来允许这样做。我已经测试过了,它有效。 您必须从“虚拟机用户登录”角色开始,然后添加其他权限。这当然也给予用户日志权限,但我假设如果您允许他们启动和停止 VM,那么您也希望他们能够登录。
通过图形用户界面:
1. Add Custom Role
2. Select "Clone a role" and role to close is "Virtual Machine User Login"
3. Click Next
4. Select add permissions
5. Scroll down to "Microsoft.Compute.VirtualMachines" and tick
Microsoft.Compute/virtualMachines/start/action"
"Microsoft.Compute/virtualMachines/powerOff/action"
"Microsoft.Compute/virtualMachines/deallocate/action"
6. Click Next, select subscription, Next, Next then "Create".
7. List item
{ "properties": { "roleName": "VM_Operator_test", "description": "", "assignableScopes": [ "/subscriptions/exampesubscription/EXAMPLE_RG" ], "permissions": [ { "actions": [ "Microsoft.Network/publicIPAddresses/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/loadBalancers/read", "Microsoft.Network/networkInterfaces/read", "Microsoft.Compute/virtualMachines/*/read", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/powerOff/action", "Microsoft.Compute/virtualMachines/deallocate/action" ], "notActions": [], "dataActions": [ "Microsoft.Compute/virtualMachines/login/action" ], "notDataActions": [] } ] }}