mcpField
I
implementing-azure-ad-privileged-identity-management

implementing-azure-ad-privileged-identity-management

github.com/mukul975安全35.2k40 次安装8 周前更新
代码仓库

关于 implementing-azure-ad-privileged-identity-management

该技能介绍 Microsoft Entra Privileged Identity Management(PIM)的规划与配置,用于管理 Entra 角色、Azure 资源角色和特权组的临时访问。内容涵盖角色激活策略、访问审查与安全告警。

主要功能

  1. 01规划特权角色分配
  2. 02设置激活、分配与通知策略
  3. 03通过 Microsoft Graph API 配置
  4. 04安排定期访问审查
  5. 05启用 PIM 安全告警

适用场景

  1. 01将常驻特权改为符合条件的分配
  2. 02为管理员角色配置 MFA 与审批
  3. 03定期复核特权访问权限
  4. 04监控绕过 PIM 的角色分配

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill implementing-azure-ad-privileged-identity-management

安装后在 Claude Code 中输入/implementing-azure-ad-privileged-identity-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

实施 Azure AD Privileged Identity Management

概述

Microsoft Entra Privileged Identity Management (PIM) 提供基于时间和基于审批的角色激活,以缓解对关键资源的过度、不必要或滥用访问所带来的风险。PIM 将永久(常驻)特权分配替换为符合条件分配,要求用户在使用前显式激活其角色,并支持可配置的持续时间、MFA 强制、审批工作流和理由要求。这是 Microsoft 环境中零信任身份治理的核心组件。

何时使用

  • 在环境中部署或配置实施 Azure AD Privileged Identity Management 功能时
  • 建立与合规要求一致的安全控制时
  • 为该领域构建或改进安全架构时
  • 执行需要此实施的安全评估时

先决条件

  • Microsoft Entra ID P2 或 Microsoft Entra ID Governance 许可证
  • 全局管理员或特权角色管理员角色
  • 用于 Azure 资源角色管理的 Azure 订阅
  • 为所有特权用户配置 MFA
  • 为管理员账户配置 Microsoft Authenticator 或 FIDO2 密钥

核心概念

分配类型
类型行为使用场景
符合条件用户必须先激活角色才能使用;在配置的持续时间后过期日常管理工作
活动角色始终处于活动状态;无需激活服务账户、应急账户
时间限制任一类型并带有明确的开始/结束日期临时项目访问、承包商访问
PIM 激活流程
User with Eligible Assignment
        │
        ├── Opens PIM portal → My Roles
        │
        ├── Clicks "Activate" on the desired role
        │
        ├── Provides justification and optional ticket number
        │
        ├── Completes MFA challenge (if required)
        │
        ├── [If approval required] → Notification sent to approvers
        │       │
        │       ├── Approver reviews and approves/denies
        │       └── User notified of decision
        │
        ├── Role activated for configured duration (e.g., 8 hours)
        │
        └── Role automatically deactivated when duration expires
支持的资源类型
  1. Microsoft Entra 角色:全局管理员、Exchange 管理员、安全管理员等。
  2. Azure 资源角色:订阅/资源组上的所有者、参与者、用户访问管理员
  3. PIM for Groups:管理特权安全组中的成员身份

工作流

步骤 1:规划角色分配

审核当前的永久角色分配,并确定哪些应转换为符合条件:

当前角色永久持有者操作
全局管理员2-3 名管理员转换为符合条件,保留 1 个应急账户处于活动状态
Exchange 管理员IT 团队全部转换为符合条件
安全管理员SOC 团队转换为符合条件
用户管理员帮助台转换为符合条件
应用程序管理员DevOps转换为符合条件

最佳实践:保持不超过 2 个永久全局管理员(应急账户)。

步骤 2:配置角色设置

为每个 Entra 目录角色配置 PIM 设置:

通过 Microsoft Entra 管理中心:

  1. 导航到 Identity Governance > Privileged Identity Management > Microsoft Entra roles
  2. 选择“设置”并选择要配置的角色
  3. 配置以下内容:

激活设置:

  • 最长激活持续时间:8 小时(推荐;最长 72 小时)
  • 激活时要求 MFA:已启用
  • 要求提供理由:已启用
  • 要求提供工单信息:已启用(用于变更管理集成)
  • 要求审批:为全局管理员、安全管理员启用

分配设置:

  • 允许永久符合条件分配:否(设置过期时间)
  • 符合条件分配在以下时间后过期:6 个月(需要重新认证)
  • 允许永久活动分配:仅用于应急账户
  • 活动分配要求 MFA:已启用
  • 活动分配要求提供理由:已启用

通知设置:

  • 成员被分配为符合条件时发送电子邮件:角色分配者、管理员
  • 成员激活时发送电子邮件:管理员、安全团队
  • 符合条件的成员激活角色时发送电子邮件:角色被分配者
步骤 3:通过 Microsoft Graph API 配置
import requests

# Acquire token for Microsoft Graph
def get_graph_token(tenant_id, client_id, client_secret):
    url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
    data = {
        "grant_type": "client_credentials",
        "client_id": client_id,
        "client_secret": client_secret,
        "scope": "https://graph.microsoft.com/.default"
    }
    response = requests.post(url, data=data)
    return response.json()["access_token"]

# Create eligible role assignment
def create_eligible_assignment(token, role_definition_id, principal_id,
                                directory_scope="/", duration_hours=8):
    url = "https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests"
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }
    body = {
        "action": "adminAssign",
        "justification": "PIM eligible assignment",
        "roleDefinitionId": role_definition_id,
        "directoryScopeId": directory_scope,
        "principalId": principal_id,
        "scheduleInfo": {
            "startDateTime": "2025-01-01T00:00:00Z",
            "expiration": {
                "type": "afterDuration",
                "duration": "P180D"  # 180-day eligible window
            }
        }
    }
    response = requests.post(url, headers=headers, json=body)
    return response.json()

# Activate a role (user self-service)
def activate_role(token, role_definition_id, principal_id, justification,
                   duration_hours=8):
    url = "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests"
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }
    body = {
        "action": "selfActivate",
        "principalId": principal_id,
        "roleDefinitionId": role_definition_id,
        "directoryScopeId": "/",
        "justification": justification,
        "scheduleInfo": {
            "startDateTime": None,  # Now
            "expiration": {
                "type": "afterDuration",
                "duration": f"PT{duration_hours}H"
            }
        }
    }
    response = requests.post(url, headers=headers, json=body)
    return response.json()
第 4 步:配置访问评审

设置定期访问评审,以验证符合条件的分配仍然适当:

  1. 导航到 Identity Governance > Access Reviews > New Access Review
  2. 配置:
    • 评审范围:Privileged Identity Management 角色分配
    • 角色:选择所有关键角色(Global Admin、Security Admin 等)
    • 评审者:经理或带理由的自评审
    • 频率:关键角色每季度一次,其他角色每半年一次
    • 自动应用结果:对未响应的评审移除访问权限
    • 持续时间:评审者需在 14 天内响应
第 5 步:配置警报

启用 PIM 安全警报:

警报触发条件操作
全局管理员过多> 5 个 Global Admin审查并减少
在 PIM 之外分配角色直接分配角色调查并转换为 PIM
角色未要求 MFA未使用 MFA 进行激活启用 MFA 要求
陈旧的符合条件分配90 天内未激活审查并考虑移除
可能陈旧的服务账户活动分配未被使用调查并停用

验证清单

  • 所有永久特权角色分配已转换为符合条件(紧急访问账户除外)
  • 紧急访问账户配置为活动状态并启用监控警报
  • 所有角色激活均要求 MFA
  • 已为 Global Administrator 和 Security Administrator 配置审批工作流
  • 关键角色的最长激活时长设置为 8 小时或更短
  • 符合条件的分配在 6 个月后过期(需要重新认证)
  • 激活需要提供理由和工单信息
  • 已为角色分配和激活配置电子邮件通知
  • 所有特权角色的访问评审已安排为每季度一次
  • PIM 警报已启用并每周审查
  • 审核日志已转发到 SIEM 以进行监控

参考资料

评论

支持 Markdown