土法炼钢兴趣小组的算法知识备份

【身份与访问控制工程】PAM、IGA 与审计合规

文章导航

分类入口
architecturesecurity
标签入口
#pam#iga#privileged-access#sod#access-certification#audit#compliance#jit-access

目录

IAM 前三部分覆盖了认证、授权和平台工程。但安全合规的最后一环不在”普通用户”身上——在”特权用户”和”谁能拿到这些特权”上。这就是 PAM(Privileged Access Management,特权访问管理)和 IGA(Identity Governance and Administration,身份治理与管理)的领域。

一、PAM:特权访问的四层控制

PAM 管理的不是”张三能不能看这个文档”,而是:

PAM 的四层控制模型:

flowchart TD
  L1["第一层:凭据保险库<br/>(Vault / CyberArk)<br/>所有特权凭据集中存储,<br/>从不直接给人看到明文"]
  L2["第二层:会话管理<br/>(Bastion / 会话代理)<br/>所有特权操作通过代理,<br/>全程录像+键盘记录"]
  L3["第三层:Just-in-Time Access<br/>不提前授予特权——高危操作前<br/>发起临时授权申请,用后回收"]
  L4["第四层:权限审计与异常检测<br/>谁在什么时候做了什么,<br/>行为是否偏离基线"]

  L1 --> L2 --> L3 --> L4

1.1 凭据保险库(Credential Vault)

HashiCorp Vault、CyberArk、AWS Secrets Manager 等凭据保险库的核心原则很简单:没有人直接持有生产密码。

工作流: 1. 工程师需要连接生产数据库。 2. 通过 Vault CLI 或 API 请求数据库凭证(vault read database/creds/prod-readonly)。 3. Vault 动态生成一个临时的数据库账号(v-prod-readonly-abc123),TTL 1 小时。 4. Vault 在 TTL 到期后自动删除这个临时账号。 5. 审计日志记录了谁、什么时候、生成了什么凭据。

这种方式比”发一个固定的 readonly 密码给全团队”安全得多——即使凭据泄露,攻击窗口只有 1 小时。

1.2 会话代理与审计

特权会话不应该”直接连接”——应该通过强制代理:

工程师 → Bastion Host (会话代理) → 生产服务器
                ↓
        全程记录 (SSH session log)
        键盘记录 (ttyrec / teleport)
        录屏 (RDP/VNC session recording)

Teleport、Boundary(HashiCorp)、Apache Guacamole 等开源的会话代理提供了这种能力。关键功能: - 特权会话的实时审计和事后回放。 - 特权命令的强制确认(“你确定要在生产库上执行 DROP TABLE 吗?”)。 - 异常行为检测——数据库 DBA 突然在凌晨 3 点 SSH 登录生产服务器。

1.3 Just-in-Time (JIT) Access

JIT Access 的核心思想:“没有人’有’特权——特权是临时的、按需申请的、用完就回收的。”

JIT 工作流: 1. 工程师在运维平台上发起”请求 root 权限 30 分钟”。 2. 请求发送给另一个工程师审批(break-glass 场景)。 3. 审批通过后,30 分钟倒计时开始。 4. 工程师 SSH 到 Bastion,Bastion 验证该用户的 JIT 授权仍有效。 5. 30 分钟到期后,Bastion 自动终止会话,权限回收。 6. 全流程入审计日志。

开源的 JIT 解决方案包括:Teleport(内置 JIT approval flow)、AWS IAM Identity Center(临时权限提升)、Netflix BLESS(SSH 证书签发,已停更但概念仍然经典)。

二、IGA:谁应该有什么权限

PAM 控制的是”已有特权的人不能滥用”(执行层面的控制)。IGA 控制的是”只有该有特权的人才能拿到特权”(治理层面的控制)。

IGA 的三个核心流程:

2.1 访问认证(Access Certification / Attestation)

定期(每季度或每半年)由部门经理审核”我的团队成员当前有什么权限”,确认权限是否仍然必要。例如,市场部经理需要审核所有市场部员工是否仍然需要某个营销 SaaS 工具的账号。系统中检测到已离职员工仍有有效账号时生成告警和强制纠正。

这个过程听起来像”HR 该做的事”,但工程实现需要:权限清单(每个用户的所有权限可查询和可视化)、认证流(经理审批、驳回、标记”不需要”的操作闭环)、纠正执行(认证确认后自动触发 SCIM 取消授权或 PATCH active: false)。

2.2 职责分离(Separation of Duties)

SoD 原则:同一人不能同时持有冲突的权限对。例如:同一人不能既创建采购订单,又审批采购订单;同一人不能既写代码,又部署到生产;同一人不能既发起支付,又确认收款。

IGA 系统维护”冲突权限对”矩阵:

权限 A 冲突权限 B 风险
purchase_order.create purchase_order.approve 自批自买
code.push deploy.production 单人可以绕过 Code Review 部署恶意代码
aws.iam.create_user aws.cloudtrail.disable 创建后门账号后关闭审计

当新权限分配触发 SoD 冲突时,IGA 需要自动阻止并告警。

2.3 自动化开通

IGA 连接 HR 系统(Workday、PeopleSoft)和 IAM 系统——当 HR 系统中出现新员工,IGA 自动触发 SCIM 开通;当员工变岗,IGA 自动调整权限;当员工离职,IGA 自动吊销所有权限。

三、审计日志的不可篡改设计

PAM 和 IGA 都严重依赖审计日志。但如果日志可以被特权用户删除,审计就失去意义。

不可篡改审计日志的工程手段:

  1. Append-Only 存储:审计日志写入后不允许更新或删除。使用 S3 Object Lock(WORM)或 PostgreSQL 的只追加表(不带 DELETE 权限的角色)。
  2. 链式哈希:每条日志记录包含前一条记录的哈希——形成链式完整性验证。任何修改(即便特权管理员做的)都会导致哈希链断裂。 \[H_i = \text{SHA-256}(record_i \parallel H_{i-1})\]
  3. 实时复制到独立账户/区域:审计日志写入主数据库的同时,推送到独立的 S3 桶或 SIEM 系统,该系统的访问权限与主系统隔离(即便是 root 账号也受限于组织 SCP)。
  4. 日志即告警:关键特权操作(如”Vault root token 被使用”“生产数据库直接登录”)不计入日志,同时触发实时告警(PagerDuty/Slack)。

上一篇CIAM 架构:面向 B2B / B2C SaaS 的身份平台 下一篇身份系统迁移与事故响应

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-06-14 · architecture / security

【身份与访问控制工程】SCIM 与账号生命周期:开通、变更、离职自动化

SSO 只解决认证,SCIM 解决账号的生命周期管理。但 SCIM 2.0 的实现远不是调几个 REST API 那么简单:User/Group schema 的映射、Delta vs Full sync 的同步策略、Patch 操作语义,每个环节都有坑。本文从账号生命周期的四个关键事件出发,拆解 SCIM 2.0 的核心协议、同步模式、Schema 扩展,以及与企业 IdP(Azure AD、Okta)对接的实际工程经验。

2026-06-13 · architecture / security

【身份与访问控制工程】IAM 全景:为什么这是高价值赛道

从 2020 年 SolarWinds 到 2024 年 Okta 支持系统泄露,身份基础设施的安全失败反复证明一件事:IAM 不是 IT 支撑系统,而是安全架构的承重墙。本文建立现代 IAM 的全景地图——从认证协议、令牌体系、权限模型到身份治理与平台选型,给出 5 个贯穿全系列的核心问题。


By .