关于 azure-pim
azure-pim 是面向管理员的技能,用于通过 Microsoft Entra Privileged Identity Management 管理特权访问。它指导将永久分配改为符合资格的访问,并配置激活控制、访问评审和审计警报。
主要功能
- 01盘点并转换永久角色分配
- 02配置分层激活控制
- 03管理特权组与 Azure 角色
- 04安排定期访问评审
- 05设置 PIM 活动警报与审计
适用场景
- 01将常驻管理员角色改为符合资格的访问
- 02为 Global Admin 激活要求审批和强 MFA
- 03每季度评审 Tier 0 访问权限
- 04发现绕过 PIM 的角色激活
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vinayaklatthe/ microsoft-security-skills --skill azure-pim安装后在 Claude Code 中输入/azure-pim确认已加载。
详细介绍
Microsoft Entra 特权身份管理(PIM)
PIM 提供即时、限时、基于审批且可审计的特权角色提升,可消除常设管理员访问权限,并缩小高价值帐户的攻击面。需要 Entra ID P2。
适用场景
管理 Entra 角色、Azure RBAC 角色和特权组的访问权限。使用此技能将永久分配转为符合条件的分配、配置激活控制措施并定期进行访问评审。
不要将此技能用于资源访问包(entra-id-governance)或风险检测(entra-id-protection)。
按角色层级选择激活控制措施
| 角色层级 | 示例 | 审批 | MFA 强度 | 最长激活时长 |
|---|---|---|---|---|
| Tier 0 - 控制平面 | Global Admin、Privileged Role Admin、Privileged Auth Admin | 必需(2 名审批者) | 抗网络钓鱼 | 1 小时 |
| Tier 0 - Azure | 管理组 / 根订阅上的 Owner | 必需 | 抗网络钓鱼 | 2 小时 |
| Tier 1 - 工作负载管理员 | Exchange Admin、SharePoint Admin、Intune Admin | 必需(1 名审批者) | 抗网络钓鱼 | 4 小时 |
| Tier 1 - Azure | 生产订阅上的 Owner / Contributor | 提供理由 + 工单 | MFA | 4 小时 |
| Tier 2 - 运维 | Helpdesk、Reports Reader、Security Reader | 提供理由 | MFA | 8 小时 |
经验法则:对 Global Admin 强制要求两名审批者,是价值最高的单项 PIM 控制措施。它能阻止自行提升权限,并确保每次影响整个租户的变更都有见证人。
方法
-
清点永久分配 — 使用
Get-MgRoleManagementDirectoryRoleAssignment,并查看每个订阅的 Azure 门户Assignments视图。按层级分类。目标:除紧急访问帐户外,不保留任何常设分配。 验证:PIM → Entra roles → Assignments → Active中,Global Admin 仅显示紧急访问帐户。 -
分批转为符合条件的分配 — 先处理 Tier 2(激活流程出问题时影响范围较小),然后处理 Tier 1,最后处理 Tier 0。提前 7 天通知管理员,并提供操作演示视频。 验证:每周激活次数按预期增加;管理员没有因访问权限丢失而投诉。
-
按角色配置激活设置 — 按照上方的层级表配置。抗网络钓鱼 MFA = 要求使用相应的身份验证强度,而不是通用 MFA。 验证:激活 Global Admin 需要 2 名审批者,并要求达到抗网络钓鱼强度。
-
Groups 的 PIM — 用于不属于 Entra 角色的特权组(例如包含多个角色分配的“Tier 0 Admins”组、持有敏感 RBAC 权限的 AD 同步组)。激活组,而不是逐个激活角色。
-
Azure 资源的 PIM — 将订阅和管理组纳入管理。将 Owner 和 User Access Administrator 转为符合条件的分配。尽可能缩小限时分配的范围(例如分配到资源组,而非订阅)。
-
定期访问评审 — Tier 0 每季度一次,Tier 1 每半年一次。评审者应是角色分配对象的经理,而非管理员团队。“未响应”默认移除分配(并提前 24 小时通知宽限期)。 验证:评审完成率 > 90%;移除的分配已记录在审核日志中。
-
警报和审计 — 启用以下警报:“Too many global admins”“Roles activated outside PIM”“Activation doesn't require approval”。将 PIM 审计记录(
AuditLogs表)传输到 Sentinel。
防护措施
- 设置两个拥有永久全局管理员权限且排除在 PIM 之外的应急账号。 监控每次登录。如果 PIM 发生故障,你仍有办法登录。
- 激活全局管理员权限需两名审批者。 只有一名审批者时,如果两名审批者都是管理员,就会形成自我审批。两名审批者可打破这个循环。
- 激活 Tier 0 权限时使用抗钓鱼 MFA。 在 2026 年,提升为全局管理员时使用短信 MFA 是不可接受的。
- Azure RBAC 使用有时限、范围狭窄的权限。 资源组 > 订阅 > 管理组。范围越窄,遭到入侵时的影响范围就越小。
- 不要以“我只需要用一会儿”为理由。 审核这些理由——如果它们毫无意义,说明控制措施没有发挥作用。
- 至少每季度进行一次访问审查。 每年审查会让过期权限累积 12 个月。
常见反模式
- “为 IT 团队保留常设全局管理员权限”——这正是 PIM 要消除的攻击面。改为设置符合资格的权限并要求审批。
- “审批可选——管理员值得信任”——这会取消见证要求和审计跟踪。Tier 0 权限始终要求审批。
- “一名审批者”——如果审批者也是管理员,就会形成自我审批循环。至少需要两名。
- “只对 Entra 角色使用 PIM,Azure RBAC 仍保留常设权限”——在许多租户中,云订阅所有者权限的影响范围最大。Azure 也要纳入管理。
- “每年审查一次”——权限会持续偏离 12 个月。Tier 0 权限应每季度审查。
- “理由字段可选”——没有理由,审计日志就会丢失上下文。所有情况下都必须填写。
- “对共享服务账号使用 PIM”——服务账号无法进行交互式审批。应使用托管标识 + RBAC,而不是 PIM。
示例提示词
盘点我们租户中的常设管理员权限分配,并以应急账号之外的常设权限为零为目标。为全局管理员配置 PIM 激活,要求 2 名审批者和抗钓鱼 MFA。为 Azure 资源角色设置 PIM(生产订阅上的所有者)。为 Tier 0 角色配置季度访问审查,并在未响应时自动移除权限。当全局管理员在 PIM 之外被添加,或一周内激活超过 5 次时发出警报。将我们的“特权管理员”安全组迁移到适用于组的 PIM。
Microsoft Learn
- PIM 概述:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-configure
- 分配符合资格的 Entra 角色:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-add-role-to-user
- 激活设置:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings
- 适用于组的 PIM:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/concept-pim-for-groups
- 适用于 Azure 资源的 PIM:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-resource-roles-configure-role-settings
- PIM 访问审查:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-create-roles-and-resource-roles-review
- PIM 警报:https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-configure-security-alerts
- 紧急访问账号:https://learn.microsoft.com/entra/identity/role-based-access-control/security-emergency-access