使用 RBAC(基于角色的访问控制)在 Azure 中实施最低访问策略
10/08/2024
本文旨在指导安全分析师、IT 管理员和系统工程师使用基于角色的访问控制 (RBAC) 在 Azure 中实施和管理最低访问策略。 Azure RBAC 是一种授权系统,可让你管理谁有权访问 Azure 资源、他们可以使用这些资源执行哪些操作以及他们有权访问哪些区域。应用最小特权原则对于减少攻击面和减轻任何云环境中的安全风险至关重要[1]。
简介
在像 Azure 这样的动态云环境中,资源不断创建、修改和删除,确保用户和服务仅拥有执行任务所需的权限是一项持续的挑战。 Azure RBAC 是 Azure 的本机工具,用于实施最小权限原则,使组织能够定义细粒度权限并有效控制访问 [2]。
本实用指南将涵盖 Azure RBAC 的基本概念,包括角色、范围和角色分配,以及创建和分配角色、管理分配和验证权限的分步说明。
为什么 Azure RBAC 和最小权限原则至关重要?
- 减少攻击面:限制受损帐户的潜在影响。
- 监管合规性:帮助满足审核和合规性要求(LGPD、GDPR、HIPAA)。
- 增强治理:提供清晰的模型来管理和审核权限。
- 意外错误预防:减少关键资源意外损坏的机会。
先决条件
- 有效的 Azure 订阅。
- 管理访问权限:在所需范围内具有“所有者”或“用户访问管理员”角色 [3]。
一步一步:实施 Azure RBAC
1.了解 Azure RBAC 组件
- 安全实体:谁接收访问权限(用户、组等)。
- 角色定义:可以做什么(权限的集合)。例如:“读者”、“协作者”。
- 范围:访问权限适用的范围(订阅、资源组等)。
角色分配是这三个元素的组合。
2. 分配内部角色
- 在 Azure 门户中,导航到所需的资源或范围(例如:资源组)。
- 选择访问控制 (IAM)。
- 单击 + 添加 > 添加角色分配。
- 在“角色”选项卡中,选择所需的角色(例如:“读者”)。
- 在“成员”选项卡中,选择用户、组或服务主体。
- 单击“审核+分配”完成。
3. 创建自定义函数
当内置函数不够用时,创建自定义函数。
- 在订阅的访问控制 (IAM) 中,单击 + 添加 > 添加自定义角色。
- 为角色命名(例如“Restricted VM Operator”)。
- 在“权限”下,添加所需的特定操作。 VM 操作员示例:
Microsoft.Compute/virtualMachines/start/actionMicrosoft.Compute/virtualMachines/restart/actionMicrosoft.Compute/virtualMachines/read
- 定义“可分配范围”(可以使用该函数的范围)。
- 单击“查看 + 创建”,然后单击“创建”。
创建后,按照与内置角色相同的方式分配此自定义角色。
4. 管理和审核作业
- 在 访问控制 (IAM) 屏幕上,“角色分配”选项卡列出了该范围的所有权限。
- 定期查看此列表。使用“删除”按钮撤销不再需要的访问权限。
最佳实践
- 使用 Azure AD 组:将角色分配给组,而不是单个用户。管理组成员资格比管理数十个 RBAC 分配更简单。
- 可能的最小范围:如果用户只需要访问一个资源,请在该资源的范围内分配角色,而不是资源组或订阅。
- 使用 Azure AD 特权身份管理 (PIM):对于高特权角色(“所有者”、“全局管理员”),使用 PIM 启用即时 (JIT) 访问,这会授予每个临时任务并需要理由。
常见故障排除
- 用户无法访问资源:检查所有级别(资源、资源组、订阅)的角色分配。权限是继承的。另请检查是否存在 拒绝分配 阻止访问。
- 权限冲突:Azure RBAC 遵循附加模型。如果用户在资源组上具有“读取者”角色,在其中的虚拟机上具有“贡献者”角色,则权限会添加到一起。但是,拒绝分配始终优先。如果拒绝分配阻止某个操作,则即使角色分配允许访问也将被拒绝 [4]。
- 新授予的访问权限不起作用:权限传播可能会延迟几分钟。要求用户注销并返回门户。
结论
通过 Azure RBAC 严格实施最小权限原则是云中最有效的安全实践之一。通过利用内置角色、在需要时创建精细的自定义角色以及定期审核访问权限,组织可以显着减少攻击面、限制潜在违规的影响并确保遵守监管标准。 Azure AD PIM 等工具补充了 RBAC,为最关键的访问添加了控制和审核层。
参考文献
[1] 微软。 (2023)。 什么是 Azure 基于角色的访问控制 (Azure RBAC)? [2] 微软。 (2023)。 Azure RBAC 的最佳实践。 [3] 微软。 (2023)。 Azure 内置函数。 [4] 微软。 (2023)。 了解 Azure 拒绝分配。