0Pricing
Azure Fundamentals · 课时

企业身份与访问设计

使用管理组、自定义角色和 Privileged Identity Management 设计大规模 RBAC 模型,为敏感操作强制执行即时访问。

企业身份与访问设计 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。

企业级身份

在企业 Azure 环境中,身份和访问管理必须扩展到数百个订阅、数千名用户和数十个团队,而且每个团队都有不同的资源访问需求。设计良好的身份模型既能防止权限过度分配(用户拥有过多访问权限),也能防止权限不足(用户无法完成工作)。其基础是 Microsoft Entra ID,并结合 Azure RBAC 以及 Privileged Identity Management (PIM) 等治理工具。

重新认识 RBAC 基础

Azure 基于角色的访问控制(RBAC)通过三个组成部分授予访问权限:

  • 安全主体——谁(用户、组、服务主体或托管身份)
  • 角色定义——做什么(允许执行的一组操作,例如“Contributor”)
  • 范围——在哪里(管理组、订阅、资源组或单个资源)

将这三个要素组合起来,就形成了角色分配。角色会沿层次结构继承——在管理组分配的角色适用于其下的所有订阅。

# Assign the Reader role at a management group level:
az role assignment create \
  --assignee 'user@company.com' \
  --role 'Reader' \
  --scope '/providers/Microsoft.Management/managementGroups/LandingZones'

内置角色与自定义角色

Azure 提供了 100 多个涵盖常见场景的内置角色(Owner、Contributor、Reader 以及特定服务的角色)。对于大多数企业使用场景,内置角色已经足够。不过,如果您需要的权限与任何内置角色都不匹配,例如需要一个可以读取 VMs 但不能删除 VMs 的角色,则可以遵循最小权限原则,创建具有所需精确权限的自定义角色。

# Create a custom role:
az role definition create --role-definition '{
  "Name": "VM Operator",
  "Description": "Can start and stop VMs but cannot create or delete them",
  "Actions": [
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/powerOff/action",
    "Microsoft.Compute/virtualMachines/read"
  ],
  "NotActions": [],
  "AssignableScopes": ["/subscriptions/<subscription-id>"]
}'

基于组的访问分配

请尽可能将角色分配给 Entra ID 组,而不是单个用户。将角色分配给组后,所有成员都会继承该角色。此后,添加或删除访问权限只需将用户添加到组或从组中移除,而不必在多个范围内修改角色分配。这会大幅减少管理开销,并确保执行相同职能的团队成员拥有一致的访问权限。

# Create a group and assign a role to the group:
az ad group create \
  --display-name 'ProductionContributors' \
  --mail-nickname 'prod-contributors'

az role assignment create \
  --assignee '<group-object-id>' \
  --role 'Contributor' \
  --scope '/subscriptions/prod-subscription-id'

特权身份管理(PIM)

特权身份管理(PIM)是 Entra ID 的一项服务,可为 Azure 资源和 Entra ID 角色提供即时(JIT)特权访问。用户不再永久拥有 Owner 或全局管理员访问权限,而是成为特权角色的符合条件者,并在需要提升权限时请求激活。激活可能需要 MFA、理由以及指定审批者的批准。

# Workflow with PIM:
# 1. Security team makes 'alice@company.com' eligible for 'Owner' on prod subscription
# 2. Alice requests activation via PIM portal or myaccess.microsoft.com
# 3. Alice provides justification: 'Emergency patching for CVE-2026-1234'
# 4. Manager approves the request (optional step)
# 5. Alice receives Owner access for 4 hours, then access expires automatically
# 6. All activation events are logged in Entra ID audit logs

PIM 在企业中的优势

PIM 可为企业环境提供多项安全优势:

  • 减少攻击面——不存在可能遭到入侵的永久管理员账户
  • 审计记录——每次激活都会记录时间戳、理由和审批者
  • 访问评审——PIM 支持定期评审,由管理者确认哪些用户应继续保留符合条件者资格
  • 限时访问——即使访问已获批准,也会自动过期,防止遗忘已提升的权限

设计 RBAC 模型

设计良好的企业 RBAC 模型通常包含以下层级:

  • 管理组级别——为治理团队提供广泛的查看者访问权限;分配策略
  • 订阅级别——为管理单个订阅的应用程序团队提供团队级 Contributor 访问权限
  • 资源组级别——特定于服务的角色(例如,仅需要 Blob 访问权限的应用程序可以使用 Storage Blob Contributor)
  • 资源级别——仅用于需要精细控制的特殊情况

Service Principal 和托管标识

应用程序和自动化流程不应使用用户帐户向 Azure 进行身份验证。应改用:

  • Service Principal —— Entra ID 中的应用注册,包含客户端 ID 以及客户端密钥或证书;用于 CI/CD 管道和本地自动化
  • 托管标识 —— 为 Azure 托管资源(VM、App Service、AKS)自动管理的凭据;无需管理或轮换机密

为 Service Principal 和托管标识分配所需的最低 RBAC 角色。

# Assign a role to a managed identity:
az role assignment create \
  --assignee-object-id '<managed-identity-object-id>' \
  --assignee-principal-type ServicePrincipal \
  --role 'Storage Blob Data Contributor' \
  --scope '/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Storage/storageAccounts/<account>'

资源访问的条件访问

Entra ID 中的条件访问策略会为身份验证决策提供智能判断。在 Azure 资源管理中,您可以要求管理员访问(Azure 门户、CLI)只能在以下条件下获得允许:

  • 符合要求的设备(由 Intune 管理)
  • 命名位置(企业网络或 VPN)
  • After MFA(对特权操作始终强制执行)

将条件访问与 PIM 结合使用,可以为 Azure 管理访问建立非常强的安全态势。

访问评审

Entra ID 访问评审允许管理员定期确认用户是否仍需要已获授予的访问权限。评审可以委托给资源所有者或经理,由他们针对每位用户回答“是,此人仍需要访问权限”或“否,移除该访问权限”。访问评审可以按季度安排,并自动移除不再获得批准的访问权限,从而防止访问权限随时间不断累积。

紧急访问帐户

每个企业都应至少维护两个紧急访问(紧急解锁)帐户,即不受条件访问或 MFA 要求保护的全局管理员帐户(而是使用硬件 FIDO2 密钥)。这些帐户仅用于 Entra ID 或 MFA 系统不可用且无法访问普通管理员帐户的情况。使用紧急访问帐户时应立即触发安全警报,并接受严格审计。

快速检查

请测试您对本课程中 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

在本课程中,您学习了:企业 RBAC 在管理组、订阅和资源组范围使用基于组的分配;特权身份管理提供即时访问,以消除永久管理员角色;应用程序身份验证应使用托管标识和Service Principal,而不是用户帐户。恭喜您,您已完成 AZ-900 学习路径中的企业架构和治理部分!

常见问题解答

「企业身份与访问设计」课时是免费的吗?

是的 — 「企业身份与访问设计」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。

「企业身份与访问设计」这节课中我会学到什么?

使用管理组、自定义角色和 Privileged Identity Management 设计大规模 RBAC 模型,为敏感操作强制执行即时访问。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Azure Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「企业身份与访问设计」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Azure Fundamentals 课中编写并运行代码吗?

能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 云采用框架概览
  2. Azure 着陆区域
  3. 中心辐射式网络拓扑
  4. 企业身份与访问设计
← 返回 Azure Fundamentals