你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为了限制对 Azure 资源的访问,可以使用服务主体来管理角色分配。 访问 Azure 资源时,每个角色都提供用户允许的不同权限。 本教程中的此步骤介绍如何创建和删除服务主体角色。
Azure CLI 提供以下命令来管理角色分配:
- az role assignment list (显示角色分配列表)
- az 角色分配 创建
- az role assignment delete (删除角色分配)
创建或删除角色分配
参与者角色具有读取和写入 Azure 帐户的完整权限。 读取者 角色具有更严格的只读访问权限。 始终使用最低特权原则。 有关 Azure RBAC 中可用角色的完整列表,请参阅 Azure 内置角色。
添加角色 不会 限制以前分配的权限。 此示例添加 “读者 ”角色并删除 “参与者” 角色:
az role assignment create --assignee myServicePrincipalID \
--role Reader \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
az role assignment delete --assignee myServicePrincipalID \
--role Contributor \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
输出控制台:
{
"condition": null,
"conditionVersion": null,
"createdBy": null,
"createdOn": "yyyy-mm-ddT00:00:00.000000+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000",
"principalType": "ServicePrincipal",
"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroupName",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedOn": "yyyy-mm-ddT00:00:00.000000+00:00"
}
如何获取范围参数的值
你可能有一个问题是“如何知道 --scope
参数值?”答案是查找和复制服务主体需要访问的 Azure 资源 的资源 ID 。 此信息通常在 Azure 门户的每个资源的 “属性 ”或 “终结点 ”页中找到。 下面是常见--scope
示例,但对于实际格式和数值,请依赖您的Resource ID。
范围 | 示例: |
---|---|
订阅 | /subscriptions/mySubscriptionID |
资源组 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName |
虚拟机 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname |
存储帐户文件服务 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default |
数据工厂 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName |
有关更多范围示例,请参阅 了解 Azure RBAC 的范围。
验证更改
可以通过列出分配的角色来验证更改:
# list all role assignments for the current subscription
az role assignment list --output table
# list role assignments for a user
az role assignment list --assignee myUserName@contoso.com
# list role assignments for a subscription
az role assignment list --subscription mySubscriptionID
还可以转到 Azure 门户 ,并从访问控制(IAM)菜单手动将角色分配给服务主体。 有关列出角色分配的更多示例,请参阅 使用 Azure CLI 列出 Azure 角色分配。
后续步骤
了解如何管理服务主体角色后,请继续执行下一步,了解如何使用服务主体创建资源。