# Azure Role-Based Access Control (RBAC) 概念和定义

**URL:** <https://www.isharkfly.com/t/azure-role-based-access-control-rbac/17797>\
**Category:** 云计算\
**Tags:** azure\
**Created:** [October 7, 2025, 11:49am UTC](https://www.isharkfly.com/t/azure-role-based-access-control-rbac/17797 "2025-10-07T11:49:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [October 7, 2025, 11:49am UTC](https://www.isharkfly.com/t/azure-role-based-access-control-rbac/17797/1 "2025-10-07T11:49:58Z")

</div>

Azure Role-Based Access Control (RBAC)，即 **Azure 基于角色的访问控制** ，是 Azure 提供的一种授权系统，它允许你对 Azure 资源进行精细的权限管理。简单来说，它定义了 **谁（安全主体）可以对什么（作用域）执行哪些操作（角色定义）** 。

理解 RBAC 的三个核心要素至关重要：

1. **安全主体 (Who)**

2. **角色定义 (What can you do)**

3. **作用域 (Where)**

**RBAC 的工作原理：**

当你尝试执行某个操作时，Azure 会检查你是否拥有足够的权限：

1. **身份验证：** 首先，Azure 会验证你的身份（通过 Azure AD）。
2. **授权：**
  - Azure 会查找你在该操作所针对资源的所有父级作用域（从资源本身到管理组）上拥有的所有角色分配。
  - 它会评估这些角色定义中定义的 `Actions` 和 `NotActions`。
  - 如果至少有一个角色授予了执行该操作的权限，并且没有其他角色明确拒绝该操作，那么你就被授权执行该操作。

**核心优势：**

- **精细权限控制：** 可以精确到单个资源，只授予用户完成其工作所需的最小权限（最小特权原则）。
- **集中管理：** 统一在 Azure AD 中管理身份和访问权限。
- **提高安全性：** 减少了因过度授权而带来的安全风险。
- **简化合规性：** 帮助组织满足合规性要求，例如 SOX、HIPAA 等。
- **易于审计：** 可以轻松查看谁在何时对哪些资源拥有哪些权限。

**示例：**

- **场景 1：** 你希望开发人员只能在特定的资源组 `DevRG` 中创建和管理虚拟机，而不能修改其他资源。

- **场景 2：** 你希望财务部门的分析师能够查看所有订阅的成本信息，但不能修改任何资源。

- **场景 3：** 一个自动化脚本需要将文件上传到某个存储账户的特定容器。

**RBAC 与 Azure AD 角色 (Azure AD roles) 的区别：**

需要注意的是，Azure RBAC 主要用于控制对 Azure **资源** （如虚拟机、存储账户、数据库等）的访问。

Azure AD 还有它自己的角色系统（例如 “全局管理员”、“用户管理员” 等），这些角色用于控制对 **Azure AD 本身** （如用户管理、应用程序注册、域管理）的权限。

虽然两者都涉及“角色”，但它们管理的目标不同。不过，Azure RBAC 的权限分配通常依赖于 Azure AD 中的安全主体。

总之，Azure RBAC 是管理云资源访问权限的基石，它通过精细的角色和作用域定义，确保只有被授权的用户和应用程序才能执行其所需的特定操作，从而构建一个安全、合规的云环境。
