Azure RBAC 基于角色的访问控制

Azure RBAC

https://docs.microsoft.com/zh-cn/azure/role-based-access-control/overview

https://docs.microsoft.com/zh-cn/azure/role-based-access-control/conditions-overview

https://docs.microsoft.com/zh-cn/azure/role-based-access-control/rbac-and-directory-admin-roles

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

Azure RBAC 有什么用途?

下面是 Azure RBAC 的用途的一些示例:

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

Azure RBAC 的工作原理

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

安全主体

安全主体是一个对象,表示请求访问 Azure 资源的用户、组、服务主体或托管标识。 可以将角色分配给其中任何一个安全主体。

示意图显示了角色分配的安全主体类型。

角色定义

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

示意图显示了角色分配的角色定义示例

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

范围

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

在 Azure 中,可在四个级别指定范围:管理组、订阅、资源组或资源。 范围采用父子关系结构。 可以在其中任何一个范围级别分配角色。

示意图显示了角色分配的范围级别。

有关范围的详细信息,请参阅了解范围

角色分配

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

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

示意图显示了安全主体、角色定义和范围如何创建角色分配。

可使用 Azure 门户、Azure CLI、Azure PowerShell、Azure SDK 或 REST API 分配角色。

有关详细信息,请参阅分配 Azure 角色的步骤

角色分配对组来说是可传递的,这意味着如果某用户是某个组的成员,而该组属于具有角色分配的另一个组,那么该用户将具有该角色分配中的权限。

示意图显示了组的角色分配是如何传递的。

多角色分配

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

示意图显示了多个角色分配如何重叠。

拒绝分配

以前,Azure RBAC 是一种只能执行允许操作的模型,没有拒绝功能,但 Azure RBAC 现在以有限方式支持拒绝分配。 拒绝分配类似于角色分配,可将一组拒绝操作附加到特定范围内的用户、组、服务主体或托管标识,以便拒绝访问。 角色分配定义了一组允许的操作,而拒绝分配定义了一组不允许的操作。 换而言之,即使角色分配授予用户访问权限,拒绝分配也会阻止用户执行指定的操作。 拒绝分配优先于角色分配。

有关详细信息,请参阅了解 Azure 拒绝分配

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

下面是 Azure RBAC 用于确定你是否可访问资源的概要步骤。 这些步骤适用于与 Azure RBAC 集成的 Azure 资源管理器或数据平面服务。 如果正在尝试对访问问题进行故障排除,这有助于了解问题。

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

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

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

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

  4. 如果拒绝分配适用,则阻止访问。 否则,评估将继续进行。

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

  6. Azure 资源管理器确定 API 调用中的操作是否包含在用户针对此资源拥有的角色中。 如果角色包含的 Actions 具有通配符 (*),则通过从允许的 Actions 中减去 NotActions 来计算有效权限。 同样,对任何数据操作执行相同的减法运算。

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. 如果用户在请求的范围内没有包含该操作的角色,则不允许访问。 否则,将评估任何条件。

  8. 如果角色分配包含条件,则对这些条件进行评估。 否则将允许访问。

  9. 如果满足条件,则允许访问。 否则将不允许访问。

下图是评估逻辑的摘要。

评估逻辑流程图,用于确定对资源的访问权限。

经典订阅管理员角色、Azure 角色和 Azure AD 角色

  • 经典订阅管理员角色
  • Azure 角色
  • Azure Active Directory (Azure AD) 角色

角色之间的相互关系

若要更好地理解 Azure 中的角色,最好是先了解一些历史信息。 Azure 最初发布时,对资源的访问权限只是通过以下三种管理员角色进行管理:帐户管理员、服务管理员和共同管理员。 后来添加了 Azure 基于角色的访问控制 (Azure RBAC)。 Azure RBAC 是一个较新的授权系统,它针对 Azure 资源提供精细的访问管理。 Azure RBAC 包括许多内置角色,可在不同的范围进行分配,并允许你创建自己的自定义角色。 若要管理 Azure AD 中的资源(例如用户、组和域),可以使用多种 Azure AD 角色。

下图从较高的层面显示了经典订阅管理员角色、Azure 角色与 Azure AD 角色之间的相互关系。

Azure 中的不同角色

经典订阅管理员角色

帐户管理员、服务管理员和共同管理员是 Azure 中的三种经典订阅管理员角色经典订阅管理员对 Azure 订阅拥有完全访问权限。 他们可以使用 Azure 门户、Azure 资源管理器 API 和经典部署模型 API 来管理资源。 用于注册 Azure 的帐户会自动同时设置为帐户管理员和服务管理员。其次,可以添加其他共同管理员。 服务管理员和共同管理员拥有在订阅范围内分配有“所有者”角色(一个 Azure 角色)的用户的等效访问权限。 下表描述了这三种经典订阅管理角色之间的差别。

经典订阅管理员限制权限说明
帐户管理员每个 Azure 帐户有 1 个可以访问 Azure 门户并管理计费管理帐户中所有订阅的计费创建新订阅取消订阅更改订阅的计费更改服务管理员除非具有服务管理员或订阅所有者角色,否则无法取消订阅在概念上是订阅的计费所有者。
服务管理员每个 Azure 订阅有 1 个Azure 门户中管理服务取消订阅将用户分配到共同管理员角色默认情况下,新订阅的帐户管理员也是服务管理员。 服务管理员拥有在订阅范围内分配有“所有者”角色的用户的等效访问权限。 服务管理员具有 Azure 门户的完全访问权限。
共同管理员每个订阅有 200 个与服务管理员的访问特权相同,但无法更改订阅与 Azure 目录之间的关联。将用户分配到共同管理员角色,但无法更改服务管理员共同管理员拥有在订阅范围内分配有“所有者”角色的用户的等效访问权限。

在 Azure 门户中,可以使用“经典管理员”选项卡管理共同管理员或查看服务管理员。

Azure 门户中的 Azure 经典订阅管理员

在 Azure 门户中,可以在订阅的属性边栏选项卡上,查看或更改服务管理员,或是查看帐户管理员。

Azure 门户中的帐户管理员和服务管理员

有关详细信息,请参阅 Azure 经典订阅管理员

Azure 帐户和 Azure 订阅

Azure 帐户代表计费关系。 一个 Azure 帐户代表一个用户标识、一个或多个 Azure 订阅和一组关联的 Azure 资源。 创建帐户的人员是该帐户中创建的所有订阅的帐户管理员。 此人也是订阅的默认服务管理员。

Azure 订阅可帮助你组织 Azure 资源的访问权限。 它们还可帮助控制如何根据资源使用量生成报告、计费及付费。 每个订阅可以采用不同的计费和付款设置,因此,根据办公室、部门、项目等因素,可以采用不同的订阅和不同的计划。 每个服务属于一个订阅,执行编程操作时可能需要订阅 ID。

每个订阅都与一个 Azure AD 目录相关联。 若要查找与订阅关联的目录,请在 Azure 门户中打开“订阅”,然后选择一个订阅以查看目录。

帐户和订阅在 Azure 门户中进行管理。

Azure 角色

Azure RBAC 是基于 Azure 资源管理器构建的授权系统,它针对 Azure 资源(例如计算和存储)提供精细的访问权限管理。 Azure RBAC 包括 70 多个内置角色。 有四个基本的 Azure 角色。 前三个角色适用于所有资源类型:

Azure 角色权限说明
所有者对所有资源的完全访问权限将访问权限委托给其他人服务管理员和共同管理员在订阅范围内分配有“所有者”角色 适用于所有资源类型。
参与者创建和管理所有类型的 Azure 资源在 Azure Active Directory 中创建一个新租户无法将访问权限授予其他人适用于所有资源类型。
读取者查看 Azure 资源适用于所有资源类型。
用户访问管理员管理用户对 Azure 资源的访问

剩余的内置角色允许管理特定的 Azure 资源。 例如,虚拟机参与者角色允许用户创建和管理虚拟机。 有关所有内置角色的列表,请参阅 Azure 内置角色

只有 Azure 门户和 Azure 资源管理器 API 支持 Azure RBAC。 分配有 Azure 角色的用户、组和应用程序无法使用 Azure 经典部署模型 API

在 Azure 门户中,使用 Azure RBAC 的角色分配显示在“访问控制(标识和访问管理)”边栏选项卡上。 在整个门户中都可以找到此边栏选项卡,例如,在管理组、订阅、资源组和各种资源所在的部分。

Azure 门户中的“访问控制(IAM)”边栏选项卡

单击“角色”选项卡时,会看到内置角色和自定义角色的列表。

Azure 门户中的内置角色

有关详细信息,请参阅使用 Azure 门户分配 Azure 角色

Azure AD 角色

Azure AD 角色用于管理目录中的 Azure AD 资源,例如,创建或编辑用户、将管理角色分配给其他人、重置用户密码、管理用户许可证以及管理域。 下表描述了几个更重要的 Azure AD 角色。

Azure AD 角色权限说明
全局管理员管理对 Azure Active Directory 中所有管理功能的访问,以及与 Azure Active Directory 联合的服务将管理员角色分配给其他人重置任何用户和其他所有管理员的密码注册 Azure Active Directory 租户的人员将成为全局管理员。
用户管理员创建和管理用户与组的所有方面管理支持票证监视服务运行状况更改用户、支持管理员和其他用户帐户管理员的密码
计费管理员购买产品管理订阅管理支持票证监视服务运行状况

在 Azure 门户中的“角色和管理员”边栏选项卡上,可以看到 Azure AD 角色的列表。 有关所有 Azure AD 角色的列表,请参阅 Azure Active Directory 中的管理员角色权限

Azure 门户中的 Azure AD 角色

Azure 角色与 Azure AD 角色之间的差别

从较高层面讲,Azure 角色控制 Azure 资源的管理权限,而 Azure AD 角色控制 Azure Active Directory 资源的管理权限。 下表比较了两者之间的一些差别。

Azure 角色Azure AD 角色
管理对 Azure 资源的访问管理对 Azure Active Directory 资源的访问
支持自定义角色支持自定义角色
可在多个级别(管理组、订阅、资源组、资源)指定范围范围可以在租户级别(组织范围)、管理单元或单个对象(例如,特定应用程序)上指定
可在 Azure 门户、Azure CLI、Azure PowerShell、Azure 资源管理器模板、REST API 中访问角色信息可在 Azure 管理门户、Microsoft 365 管理中心、Microsoft Graph、AzureAD PowerShell 中访问角色信息

Azure 角色与 Azure AD 角色是否重叠?

默认情况下,Azure 角色与 Azure AD 角色不会跨越 Azure 与 Azure AD。 但是,如果全局管理员通过在 Azure 门户中选择“Azure 资源的访问管理”开关,提升了自己的访问权限,则会针对特定租户的所有订阅为全局管理员授予用户访问管理员角色(Azure 角色)。 “用户访问管理员”角色允许用户向其他用户授予对 Azure 资源的访问权限。 此开关可帮助重新获取订阅的访问权限。 有关详细信息,请参阅提升访问权限以管理所有 Azure 订阅和管理组

有多个 Azure AD 角色(例如全局管理员和用户管理员角色)可跨越 Azure AD 和 Microsoft 365。 例如,如果你是全局管理员角色的成员,则会获得 Azure AD 和 Microsoft 365 中的全局管理员功能,例如,对 Microsoft Exchange 和 Microsoft SharePoint 进行更改。 但是,在默认情况下,全局管理员无权访问 Azure 资源。

Azure RBAC 与 Azure AD 角色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值