场景目标
为一个测试身份建立目录、代码仓库、堡垒机和集群访问台账,完成允许/拒绝及到期回收验证,识别不随目录禁用自动消失的访问路径。
安全与合规 · 高级
以 LDAP 目录为候选身份源,贯通 GitLab、JumpServer 与 Kubernetes 的最小授权、反向测试、会话清点与离职回收。
为一个测试身份建立目录、代码仓库、堡垒机和集群访问台账,完成允许/拒绝及到期回收验证,识别不随目录禁用自动消失的访问路径。
需要选定版本的候选 LDAP 服务、可信 CA、受限查询身份、隔离测试账号、GitLab/JumpServer 管理审核权限及 Kubernetes 独立认证方案。先备份映射配置,保留受控紧急访问;90 分钟估时用于单一身份复核,不含全员迁移或真正离职批处理。涉及人员信息的输出仅存于批准范围,执行禁用或令牌轮换需按组织流程授权。
目录仅提供受限身份查询,各应用独立授权;Kubernetes 使用单独评审的认证机制和 RBAC。回收证据覆盖目录、角色、凭据和已有会话。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
用稳定标识对应同一个测试人,人员、机器和紧急身份分列,不能按展示名直接合并。
测试主体通过批准的 GitLab 入口登录,再单独核对具体项目动作。
GitLab 的 LDAP 接入按版本与配置验证,不表示目录授予全部应用权限。
主体身份不自动产生资产连接权,仍需平台内的最小授权。
核对搜索范围及同步差异;目录不可达时不默认扩大同步。
使用测试主体自己的受控集群凭据,认证类型和有效期明确记录。
认证产生主体后再由角色绑定判定动作,不存在图中的 LDAP 直接认证边。
分别审阅成员继承、个人令牌、SSH key 与机器凭据归属。
到期拒绝新连接后,仍需单独终断已有会话并清点任务。
角色撤销和长期证书、令牌的失效边界不同,无法立即回收时记录缓解措施。
已签发令牌、SSH key、证书、应用会话和后台任务可能继续存在;按各系统能力分别处置和复验。
目录禁用不天然撤销客户端证书;不要通过授予 cluster-admin 掩盖认证或映射错误。
同步数量突变先停扩面并保留差异;机器身份先移交用途,避免连带中断发布和监控。
图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。
LDAP 是目录访问协议,OpenLDAP 只是候选实现,不等于完整 SSO。GitLab 和 JumpServer 分别维护自身访问控制,Kubernetes 人员认证必须另行选择适用的认证接入机制,再由角色绑定授权;不能假定填写同一 LDAP 地址就打通所有平台。
用于受控测试主体的接入和回收方案,验证状态保持待验证,不声称图片中的认证中心已经部署。先确认目录结构、稳定主体标识、同步范围和管理员职责,再评审紧急账号及机器身份。命令仅做只读查询和授权判断,目录查询可能包含人员数据,必须限定对象并保护输出。
同一测试主体仅能访问批准资源;未批准资源和动作被拒绝。回收后不仅新登录失败,还需检查令牌、SSH key、角色绑定、已有会话及后台任务。目录不可达或批量同步数量突变时停止扩大变更,不将缓存失效时间当作已立即回收的证据。
选择受控测试主体,记录稳定用户标识、部门岗位、申请人、审批人和到期时间。分别列出 GitLab 项目动作、JumpServer 资产及连接动作、Kubernetes 命名空间及资源动词,明确拒绝清单。人员、机器人、服务账号和紧急账号分列,不用展示名或邮箱前缀直接合并身份。
每项权限均能对应业务用途和明确资源,跨系统主体映射唯一且可复核。测试范围、负向动作、紧急入口和责任人已经确认,模糊匹配或重复账号列为阻塞项。
此步仅建清单,发现身份歧义时停止接入,保留原有授权不变。不得为了让台账看似一致而批量改名、删除账户或复制他人全部权限。
确认 LDAP 实现与版本、证书链、主机名和搜索基准;使用仅读必要属性的绑定账号,不向应用暴露目录管理员身份。下面只读取单一测试用户,需预先配置可信 CA 并替换批准占位符,使用交互密码且不得扩大为全员导出。
ldapsearch -LLL -x -ZZ -H 'ldap://<DIRECTORY_HOST>' -D '<READONLY_BIND_DN>' -W -b '<APPROVED_BASE_DN>' -s one '(uid=<TEST_UID>)' dn uidTLS 校验成功且搜索只返回预期测试主体,属性数量符合最小读取设计。证书错误、绑定拒绝、搜索基准错误和目录不可达有分别记录,空密码不会被误判为正常人员认证。
查询失败不修改目录条目,不关闭 TLS 校验绕过问题。暂停应用接入,修正可信 CA、搜索范围或授权后重测;怀疑绑定凭据泄露时交由责任人轮换,不将秘密写入工单。
按所用版本和许可核对 GitLab LDAP 接入与组同步能力,先用测试主体确认登录,再逐项目检查角色和继承关系。分别登记个人访问令牌、SSH key、部署密钥、项目及组令牌的实际持有者和用途,不默认这些对象全部随人员目录状态同步变化。
批准项目的指定动作可用,无关项目和管理动作被拒绝。登录成功和授权成功分别有证据;个人与机器凭据的范围、到期时间和接替负责人均已登记,未支持的自动同步能力明确标为人工流程。
发现过权时先撤销本次测试新增角色并停止扩面,保留原生产成员关系待管理员评审。误映射修正后重新验证正反向动作,不通过增加所有者权限解决登录或同步故障。
核对测试用户来源、LDAP 同步范围、资产授权、有效期和允许的上传下载动作。检查本地认证是否构成额外登录路径,确认会话审计存储可用。严格模式和全量同步可能影响未被目录发现的用户,应先比较候选差异清单,不在目录故障时直接扩大同步范围。
测试主体只能连接批准资产,未授权资产无法新建连接,审计记录能定位主体与时间。管理员能识别已有在线会话并按流程终断,不能仅凭新登录被拒绝宣布所有访问已回收。
异常授权先停用本次新增规则并通知资产负责人;测试会话结束后确认后台任务是否仍运行。若同步数量突变,暂停同步修订、保留差异记录,避免未经复核批量禁用合法值班账号。
记录所选认证机制如何产生用户名和组,再映射到最小 Role/RoleBinding;LDAP 本身不是通用 kube-apiserver 登录配置。下面命令使用测试主体自己的受控 kubeconfig,只查询授权决定,不执行被查询动作。若借助管理员 impersonation,则另行审批并记录被模拟主体和组。
kubectl --kubeconfig '<TEST_KUBECONFIG>' auth can-i get pods -n '<APPROVED_NAMESPACE>'
kubectl --kubeconfig '<TEST_KUBECONFIG>' auth can-i delete deployments -n '<APPROVED_NAMESPACE>'
kubectl --kubeconfig '<TEST_KUBECONFIG>' auth can-i get secrets -n '<UNAUTHORIZED_NAMESPACE>'批准的只读动作返回允许,高危删除和未授权 Secret 读取返回拒绝;另用无敏感数据的实际只读请求确认认证链可用。记录凭据类型、期限和主体,不把 auth can-i 当成目录登录的完整证明。
权限异常时停止扩批并恢复本次角色映射修订,保留测试结果。不得授予 cluster-admin 作为认证修复;凭据撤销能力依赖认证类型,不能把目录禁用等同于所有已签发证书立即失效。
在批准时间对测试主体演练冻结新授权、目录禁用、GitLab 成员及个人凭据清点、JumpServer 资产回收与会话处理、Kubernetes 绑定及认证凭据处置。对非人员服务账号先转交所有权并评审轮换窗口,防止误停发布与监控任务。每个系统都记录实际生效时间,不只记录工单点击时间。
台账内每种访问路径都有执行主体、回收结果和待处理项;测试旧凭据和已有会话的结果符合预期。无法立即撤销的凭据列出最迟到期时间及临时隔离措施,不能记为已彻底回收。
仅测试或误禁用主体经重新审批后恢复最小必要访问;已撤销令牌重新签发,不复用旧秘密。真实离职账号不因自动化失败而直接重新启用,遗留服务依赖应由接替人处理。
若目录状态已变但应用仍允许访问,依次检查本地登录、同步延迟、缓存、成员继承、长期令牌和独立证书。若所有人登录失败,检查目录网络、TLS、绑定身份和同步范围,不先改所有人的密码。以受控测试请求核实拒绝,保护查询日志中的个人数据。
每个残留路径有证据、负责人、处理期限和复验方式;同步错误不会掩盖身份映射错误。紧急访问方案经过负责人确认,影响全员的异常优先停止扩面并建立事件时间线。
回退只针对已确认有误的接入配置和映射,不批量恢复刚回收的权限。恢复后重新进行测试主体的正反向核验,保留失败与修复日志,不清空审计数据消除告警。
将台账、审批、目录状态、各系统拒绝结果、令牌及会话处置记录交给身份与业务负责人。约定转岗、离职、长期未使用和紧急授权到期的复核触发条件,明确同步失败告警和人工兜底;文档公开部分只含脱敏流程,人员清单存于受控位置。
复核人可以按主体逐项确认无未解释授权,未彻底撤销项目有明确期限和风险接受人。测试账号处理完毕,紧急入口可用但受审计,自动化和人工范围均有清楚标注。
证据不完整则保持待关闭,不销毁账号审计历史;误写记录通过新修订纠正。后续恢复任何人员权限都重新走申请审批,不把历史台账当成永久恢复授权。