我们的销售团队将使用Azure VM进行销售演示.我希望能够让某些人能够随意启动/停止自己的VM.我已经看到能够在管理门户中添加人员作为管理员,但这似乎让他们可以访问我们的整个订阅.我希望能够在不让每个人都创建自己的订阅的情况下管理这个.
示例场景:
人员A能够启动/停止人员A的专用虚拟机.
人员B能够启动/停止人员B的专用虚拟机.等等
rla*_*lar 12
为了允许用户启动和停止虚拟机,您需要使用正确的权限创建自定义角色.
在这个答案中,我将列出要使用的结果来获得此结果azure command line interface.您可以使用做同样Power Shell或Azure Rest Api(找到有关命令的详细信息要与使用Power Shell这个链接,并与Azure Rest Api在此链接).
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"
]
}
Run Code Online (Sandbox Code Playgroud)
JSON文件的每个字段的简短说明:
Name:新角色的名称.这是将在azure门户中显示的名称Is Custom:指定它是用户定义的角色Description:角色的简短描述,也在天蓝色门户中显示Actions:与此角色关联的用户可以执行的操作列表.每条线分别允许用户:
No Actions:与此角色关联的用户无法执行的操作列表.在这种情况下,列表为空,通常它必须是前一个字段的子集.AssignableScopes:必须添加角色的订阅集.每个代码都以/subscription/字符串为前缀.您可以通过访问订阅菜单(由此图标标识)找到订阅的代码
并复制SUBSCRIPTION ID列 下的值
azure cli执行命令登录您的azure帐户az login.有关如何安装azure cli以及分别在此处和此处执行登录过程的更多信息.az role definition create --role-definition newRole.json.选择机器后选择 Access control (Iam)
从新刀片选择 Add
Role:在我们的示例中,选择您刚刚创建的角色 Virtual Machine OperatorAssign access to:Azure AD user, group, or application.Select:与需要启动/重新启动/停止VM的帐户关联的电子邮件在此操作之后,当用户将访问门户时,她将在虚拟机列表中看到所选VM.如果她选择虚拟机,她将能够启动/重启/停止它.
小智 9
在 portal.azure.com 中打开您的 VM 导航到Access control (IAM)?Role Assignments并单击添加角色分配。
选择标准角色Virtual Machine Contributor,
默认分配访问权限(Azure AD 用户、组...),
在选择字段中输入新受限用户的电子邮件并选择访客。
节省。
我创建了一个自定义角色来允许这样做。我已经测试过并且有效。您必须从“虚拟机用户登录”角色开始,然后添加其他权限。当然,这也为用户提供了日志权限,但我假设如果您允许他们启动和停止虚拟机,那么您还希望他们能够登录。
通过图形用户界面:
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
Run Code Online (Sandbox Code Playgroud)
{ "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": [] } ] }}
目前这是不可能的。尽管可以通过一些编程来实现。您在 Azure Portal 上看到的内容都可以通过Azure Service Management API. 您可以做的是编写一个使用此 API 的应用程序,然后您可以定义所有规则。
如果您认为您的销售人员不会乱搞,您可以做的另一件事是创建一些自定义 PowerShell 脚本Azure PowerShell Cmdlets,他们只需执行这些脚本即可启动/停止虚拟机。
| 归档时间: |
|
| 查看次数: |
6158 次 |
| 最近记录: |