sammyonyekwere/Identity-Governance-Automation

GitHub: sammyonyekwere/Identity-Governance-Automation

一个基于 Azure Bicep 的 IaC 方案,通过自动化 PIM、访问自审与日志告警实现身份治理与零信任防护。

Stars: 0 | Forks: 0

[![构建状态](https://github.com/sammyonyekwere/Identity-Governance-Automation/actions/workflows/deploy.yml/badge.svg)](https://github.com/sammyonyekwere/Identity-Governance-Automation/actions/workflows/deploy.yml) [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![基础设施: Bicep](https://img.shields.io/badge/IaC-Azure%20Bicep-blue)](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/) ## 📖 执行摘要 本仓库展示了一个自动化、安全的身份治理生命周期,遵循 **最小权限** 和 **零信任** 原则。 与手动角色分配不同,本项目专注于 **动态治理**,利用 Azure AD Privileged Identity Management (PIM) 实现临时资格,通过 Access Reviews 强制执行合规性,并通过 Azure Monitor Activity Log Alerts 监控权限提升。 ## 🏗️ 架构 ``` graph TD subgraph "Azure Tenant / Microsoft Entra ID" User((User)) Admin((Admin)) PIM[Privileged Identity Management] Review[Access Reviews] end subgraph "Azure Subscription Environment" RBAC[Subscription RBAC] ActivityLog[Activity Log: Role Assignments] end subgraph "Azure Monitor / SecOps" AlertRule[Activity Log Alert] ActionGroup[Action Group: Email] end User -->|Requests Elevation| PIM PIM -->|Grants Temporary Role| RBAC Review -->|Audits Eligibility| PIM Review -->|Revokes/Approves| RBAC Admin -->|Manual Override/Write| RBAC RBAC -.->|Triggers| ActivityLog ActivityLog -.->|Evaluates| AlertRule AlertRule -->|Notifies| ActionGroup ``` ## 🛠️ 技术栈 * **基础设施即代码**: Azure Bicep (模块化设计) * **身份与治理**: * Microsoft Entra ID (Azure AD) * Privileged Identity Management (PIM) * Access Reviews * **监控与 SecOps**: * Azure Monitor (Activity Log Alerts) * Azure Action Groups (电子邮件通知) ## 📂 仓库结构 本项目遵循模块化基础设施实践: ``` / ├── modules/ # Reusable Bicep modules │ ├── rbac-pim.bicep # Sets up Contributor eligibility via PIM │ ├── access-reviews.bicep # Creates quarterly attestation reviews │ └── alerts.bicep # Provisions privilege escalation alerts ├── main.bicep # Orchestrator for subscription deployment └── README.md # System documentation ``` ### Privileged Identity Management (PIM) * **临时提升权限**: 标准的永久角色分配(如 Contributor)被转移为“符合条件的”分配,需要经过深思熟虑的、有时限的激活。 * **最小权限执行**: 默认情况下,该资格有效期为 1 年,并允许用户仅在需要时担任该角色。 ### 2. 自动化 Access Reviews * **认证**: 启动周期性的 Azure AD Access Review Schedule (每季度)。 * **理由要求**: 要求被分配者提供其为何仍需要提升权限的理由,以防止权限蔓延。 ### 3. 权限提升警报 * **持续监控**: 挂载到 Azure Monitor 内的 `Microsoft.Authorization/roleAssignments/write` API 事件。 * **即时通知**: Action Group 将发送管理电子邮件警报,详细说明绕过 PIM 的任何永久性或新创建的角色分配。 ## 📋 前置条件 * 一个 Azure 订阅 * 已安装 Azure CLI (`az login`) * 对订阅拥有 Owner 或 Role Based Access Control Administrator 权限(用于分配 PIM 请求和创建 Access Reviews) * Microsoft Entra ID P2 许可证(PIM 和 Access Reviews 功能所需) ## 🚀 部署说明 **选项 1:一键部署 (本地)** ``` # 克隆 repository git clone https://github.com/sammyonyekwere/Identity-Governance-Automation.git # 导航至 directory cd Identity-Governance-Automation # 为 deployment 设置 variables PRINCIPAL_ID="" ALERT_EMAIL="" LOCATION="eastus" # 部署 Bicep template az deployment sub create \ --name "IdentityGovernanceDeployment" \ --location "$LOCATION" \ --template-file main.bicep \ --parameters principalId="$PRINCIPAL_ID" alertEmailAddress="$ALERT_EMAIL" ``` **选项 2:GitHub Actions (CI/CD)** 1. Fork 此仓库。 2. 在 GitHub Settings 中配置 Azure OIDC 或 Service Principal 密钥(`AZURE_CLIENT_ID` 等)。 3. 在 GitHub 仓库密钥中设置 `PRINCIPAL_ID` 和 `ALERT_EMAIL`。 4. 推送到 `main` 分支以触发自动化的 CI/CD 工作流(如果已定义)。 ## 🗺️ 路线图 * [ ] 集成 **Azure Policy** 以完全自动阻止永久性角色分配。 * [ ] 添加 **Terraform** 替代方案,用于多云平台部署。 * [ ] 为 PIM 角色激活实施 **多阶段审批流**。
标签:Azure, Bicep, 云安全, 基础设施即代码, 权限管理, 模型越狱, 自动化运维, 身份与访问管理