--- title: "CTP Topic 11 AD Integration and Login using AD Accounts" type: source tags: - AWS - AD - IAM - SSO - CTP - Jenkins - RBAC - Pre-commit - Terraform - IaC - DevSecOps sources: [] last_updated: 2026-04-14 --- ## Source File - [[Cloud & DevOps/Public-Cloud-Learning-Sessions/02_IAM/ctp-topic-11-ad-integration-and-login-using-ad-accounts]] ## Summary(用中文描述) - 核心主题:Jenkins 与企业 Active Directory (AD) 的集成,以及 Terraform 代码的自动化质量检查 - 问题域:企业级 CI/CD 系统的身份认证管理与基础设施代码安全治理 - 方法/机制: - Jenkins Security Realm 与 SW Infra AD 集成,实现基于 AD 账号的统一身份认证与自动化用户管理 - 通过 AD 组策略实现 RBAC(基于角色的访问控制),精细化管理 Jenkins 权限(只读/读写/流水线创建) - pre-commit 框架集成 terraform fmt、TFLint、Checkov 三款工具,在代码提交阶段嵌入自动化安全检查 - CI/CD 流水线分层治理:Commit 阶段检查 → PR 阶段 plan → Master 分支人工审核后 apply - 结论/价值:告别手动创建本地用户,实现"入离职账号自动化管理";通过"左移"策略在开发早期发现并修复基础设施代码的安全问题 ## Key Claims(用中文描述) - Jenkins 与 AD 集成后,用户入离职可通过 AD 账号实现自动化管理,无需手动维护本地用户账户 - 通过 AD 组策略可将用户映射为不同角色(只读、读写、流水线创建),实现基于 AD 的 RBAC 权限控制 - pre-commit 框架可在功能分支提交时自动触发 terraform fmt(格式统一)、TFLint(逻辑验证)、Checkov(安全扫描),防止"坏代码"进入生产环境 - "左移"(Shift-Left)治理模式将安全问题从生产阶段提前到开发阶段,通过分层 CI/CD 流水线实现渐进式质量门禁 ## Key Quotes > "通过 AD 集成,我们告别了过去手动创建本地用户的繁琐流程,实现了基于 AD 账号的自动登录。" — Niranjan > "terraform fmt 用于统一代码格式,TFLint 用于验证配置逻辑与参数完整性,而 Checkov 则负责静态安全分析。" — Niranjan > "在功能分支的每次提交时仅触发自动化检查;在 PR 阶段触发检查与 terraform plan;只有在代码合并至 Master 分支并经过人工审核后,才会执行最终的 terraform apply。" — Niranjan ## Key Concepts - [[Active Directory Integration]]:将 Jenkins 的安全域与企业活动目录关联,实现用户身份的统一认证与自动化管理 - [[RBAC (Role-Based Access Control)]]:基于角色的访问控制,通过 AD 组策略决定用户在 Jenkins 中拥有的具体操作权限 - [[Pre-commit Framework]]:一个用于管理和维护多语言预提交钩子的框架,旨在代码提交至仓库前识别简单问题 - [[Terraform Fmt]]:Terraform 内置的格式化工具,用于将配置文件重写为符合官方规范的标准格式 - [[TFLint]]:一种针对 Terraform 的静态分析工具,用于检查代码中的人为错误、过时语法及缺失的参数 - [[Checkov]]:一种静态代码分析工具,专门用于扫描基础设施即代码 (IaC) 中的安全性与合规性配置错误 - [[Shift-Left Security]]:将安全检查从生产阶段提前到开发早期的实践,通过 CI/CD 流水线分层实现 - [[CI/CD Pipeline Governance]]:CI/CD 流水线的分层治理模式——提交检查 → PR 检查+plan → 人工审核+apply ## Key Entities - [[Niranjan]]:CTP Topic 11 主讲人,DevOps Cloud Learning Session 讲师 - [[Jenkins]]:开源自动化服务器,本视频中与 AD 集成实现统一身份认证 - [[SW Infra Active Directory]]:SW Infra 团队的 Active Directory 服务域,用于 Jenkins 的安全域集成 - [[GitHub]]:源代码仓库,与 Jenkins 流水线通过 Webhook 触发集成(交叉引用来源) ## Connections - [[ctp-topic-5-aws-identity-and-access-management-iam]] ← foundational ← [[ctp-topic-11-ad-integration-and-login-using-ad-accounts]] - Topic 5 介绍 AWS IAM 联邦访问机制,Topic 11 将其延伸至 Jenkins 与企业 AD 的集成实践 - [[ctp-topic-9-ci-cd-with-gruntwork]] ← related ← [[ctp-topic-11-ad-integration-and-login-using-ad-accounts]] - 均涉及 Jenkins CI/CD 流水线实践,Topic 9 聚焦 Gruntwork 框架,Topic 11 聚焦 AD 认证与安全检查 - [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]] ← extends ← [[ctp-topic-11-ad-integration-and-login-using-ad-accounts]] - Atlantis 是 Topic 11 中 terraform plan/apply 分层治理理念的具体实现工具 - [[GitHub and Jenkins Integration]] ← depends_on ← [[ctp-topic-11-ad-integration-and-login-using-ad-accounts]] - Jenkins 与 AD 集成的前置依赖:GitHub 仓库与 Jenkins 流水线的触发与反馈机制已就绪 ## Contradictions - 与 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]] 在 terraform apply 审批模式上存在差异: - 冲突点:谁拥有 terraform apply 的最终审批权(人 vs 机器) - Topic 11 观点:Master 分支人工审核后执行 terraform apply,强调人工把关 - Atlantis 观点:通过 PR 评论自动触发 apply,强调机器自动化 - 当前整合观点:两者互补——Topic 11 定义治理原则(人工审核),Atlantis 实现具体执行机制