Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
138 lines (87 sloc) 9.41 KB
title description services documentationcenter author manager ms.assetid ms.service ms.devlang ms.topic ms.tgt_pltfrm ms.workload origin.date ms.date ms.author ms.reviewer ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
什么是 Azure 资源的基于角色的访问控制 (RBAC)? | Microsoft Docs
获取 Azure 资源的基于角色的访问控制 (RBAC) 的概述。 使用角色分配可以控制对 Azure 资源的访问权限。
active-directory
rolyon
mtillman
8f8aadeb-45c9-4d0e-af87-f1f79373e039
role-based-access-control
na
overview
na
identity
09/11/2019
09/24/2019
v-junlch
bagovind
c2c5f63d98531cd23dcb741dfaf527e0e44b77e7
73a8bff422741faeb19093467e0a2a608cb896e1
HT
zh-CN
09/29/2019
71673559

什么是 Azure 资源的基于角色的访问控制 (RBAC)?

对于任何使用云的组织而言,云资源的访问权限管理都是一项重要功能。 基于角色的访问控制 (RBAC) 可帮助你管理谁有权访问 Azure 资源、他们可以对这些资源执行哪些操作以及他们有权访问哪些区域。

RBAC 是在 Azure 资源管理器基础上构建的授权系统,针对 Azure 资源提供精细的访问权限管理。

RBAC 的作用是什么?

下面是 RBAC 的作用的一些示例:

  • 让一个用户管理订阅中的虚拟机,另一个用户管理虚拟网络
  • 让 DBA 组管理订阅中的 SQL 数据库
  • 让某个用户管理资源组中的所有资源,例如虚拟机、网站和子网
  • 允许某个应用程序访问资源组中的所有资源

使用 RBAC 的最佳做法

使用 RBAC,可以在团队中实现职责分离,仅向用户授予执行作业所需的访问权限。 无需向每个人授予 Azure 订阅或资源的无限制权限,可以仅允许在特定的范围执行某些操作。

规划访问控制策略时,最佳做法是授予用户完成工作所需的最低权限。 下图显示了与 RBAC 使用有关的建议模式。

RBAC 和最小特权

RBAC 的工作原理

使用 RBAC 控制资源访问权限的方式是创建角色分配。 这是一个需要理解的重要概念 - 它涉及到如何强制实施权限。 角色分配包含三个要素:安全主体、角色订阅和范围。

安全主体

安全主体是一个对象,表示请求访问 Azure 资源的用户、组、服务主体或托管标识。

角色分配的安全主体

  • 用户 - 在 Azure Active Directory 中具有配置文件的人员。
  • 组 - 在 Azure Active Directory 中创建的一组用户。 将某个角色分配到某个组时,该组中的所有用户都拥有该角色。
  • 服务主体 - 应用程序或服务用来访问特定 Azure 资源的安全标识。 可将服务主体视为应用程序的用户标识(用户名和密码或证书)。
  • 托管标识 - Azure Active Directory 中由 Azure 自动托管的标识。 在开发云应用程序时,通常使用托管标识来管理用于向 Azure 服务进行身份验证的凭据。

角色定义

角色定义是权限的集合。 它有时简称为“角色” 。 角色定义列出可以执行的操作,例如读取、写入和删除。 角色可以是高级别的(例如所有者),也可以是特定的(例如虚拟机读取者)。

角色分配的角色定义

Azure 包含多个可用的内置角色。 下面列出了四个基本的内置角色。 前三个角色适用于所有资源类型。

  • 所有者 - 拥有对所有资源的完全访问权限,包括将访问权限委派给其他用户的权限。
  • 参与者 - 可以创建和管理所有类型的 Azure 资源,但无法将访问权限授予其他用户。
  • 读取者 - 可以查看现有的 Azure 资源。
  • 用户访问管理员 - 可以管理用户对 Azure 资源的访问。

剩余的内置角色允许管理特定的 Azure 资源。 例如,虚拟机参与者角色允许用户创建和管理虚拟机。 如果内置角色不能满足组织的特定需求,则可以为 Azure 资源创建你自己的自定义角色

Azure 具有数据操作,通过这些操作可以授予对对象内数据的访问权限。 例如,如果某个用户对某个存储帐户拥有读取数据的访问权限,则该用户可以读取该存储帐户中的 Blob 或消息。 有关详细信息,请参阅了解 Azure 资源的角色定义

作用域

范围是访问权限适用于的资源集。 分配角色时,可以通过定义范围来进一步限制允许的操作。 如果你想要将某人分配为网站参与者,但只针对一个资源组执行此分配,则使用范围就很有帮助。

在 Azure 中,可在多个级别指定范围:管理组、订阅、资源组或资源。 范围采用父子关系结构。

角色分配的范围

在父范围授予访问权限时,这些权限会继承到子范围。 例如:

  • 如果将所有者角色分配给管理组范围的用户,则该用户可以在管理组中管理所有订阅中的一切内容。
  • 如果在订阅范围向某个组分配了读取者角色,则该组的成员可以查看订阅中的每个资源组和资源。
  • 如果在资源组范围向某个应用程序分配了参与者角色,则该应用程序可以管理该资源组中所有类型的资源,但不能管理订阅中的其他资源组资源。

角色分配

角色分配是出于授予访问权限的目的,将角色定义附加到特定范围内的用户、组、服务主体或托管标识的过程。 通过创建角色分配来授予访问权限,通过删除角色分配来撤销访问权限。

下图显示了角色分配的示例。 在此示例中,为“营销”组分配了医药销售资源组的参与者角色。 这意味着,“营销”组中的用户可以在医药销售资源组中创建或管理任何 Azure 资源。 “营销”用户无权访问医药销售资源组外部的资源,除非他们属于另一个角色分配。

用于控制访问权限的角色分配

可以使用 Azure 门户、Azure CLI、Azure PowerShell、Azure SDK 或 REST API 创建角色分配。 每个订阅中最多可以有 2000 个角色分配,每个管理组中最多可以有 500 个角色分配。 若要创建和删除角色分配,必须拥有 Microsoft.Authorization/roleAssignments/* 权限。 此权限是通过所有者用户访问管理员角色授予的。

多角色分配

如果有多个重叠的角色分配,将会发生什么情况? RBAC 是一个加法模型,因此,生效的权限是角色分配相加。 请考虑以下示例,其中在订阅范围内向用户授予了“参与者”角色,并且授予了对资源组的“读者”角色。 “参与者”权限与“读者”权限相加实际上是资源组的“参与者”角色。 因此,在这种情况下,“读者”角色分配没有任何影响。

多角色分配

RBAC 如何确定用户是否有权访问资源

以下是 RBAC 用于确定你是否可以访问管理平面上的资源的高级步骤。 如果正在尝试对访问问题进行故障排除,这有助于了解问题。

  1. 用户(或服务主体)获取 Azure 资源管理器的令牌。

    令牌包含用户的组成员身份(包括可传递的组成员身份)。

  2. 用户使用附加的令牌对 Azure 资源管理器发出 REST API 调用。

  3. Azure 资源管理器检索适用于对其执行操作的资源的所有角色分配。

  4. Azure 资源管理器缩小适用于此用户或其组的角色分配范围,并确定用户针对此资源拥有的角色。

  5. Azure 资源管理器确定 API 调用中的操作是否包含在用户针对此资源拥有的角色中。

  6. 如果用户在请求的范围内没有具有该操作的角色,则不授予访问权限。 否则,Azure 资源管理器会检查是否适用拒绝分配。

  7. 如果拒绝分配适用,则阻止访问。 否则授予访问权限。

后续步骤

You can’t perform that action at this time.