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)
[](https://opensource.org/licenses/MIT)
[](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, 云安全, 基础设施即代码, 权限管理, 模型越狱, 自动化运维, 身份与访问管理