你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

管理服务主体角色

为了限制对 Azure 资源的访问,可以使用服务主体来管理角色分配。 访问 Azure 资源时,每个角色都提供用户允许的不同权限。 本教程中的此步骤介绍如何创建和删除服务主体角色。

Azure CLI 提供以下命令来管理角色分配:

创建或删除角色分配

参与者角色具有读取和写入 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 角色分配

后续步骤

了解如何管理服务主体角色后,请继续执行下一步,了解如何使用服务主体创建资源。