# 1. IaC 安全扫描与策略即代码(tfsec/checkov/OPA conftest) A tfsec 只能用于检测性能问题 B 安全扫描只能在 apply 之后进行 C 策略即代码必须人工执行 D checkov/tfsec 在 CI 中作为门禁扫描 IaC 配置,OPA conftest 用 Rego 实现策略即代码 ✓ 正确答案
# 2. Terraform 工作流 init/plan/apply/destroy 与 refresh 的作用,plan 如何生成资源变更图并用于评审 A init 用于销毁资源 B plan 根据依赖 DAG 生成资源变更图并输出 diff,可作为 apply 前的评审门禁 ✓ 正确答案 C apply 不需要 plan D refresh 会删除资源
# 3. IaC 流水线(plan 评审、apply 审批)设计 A 生产环境 apply 前配置人工审批,plan 输出作为评审依据,并按环境递进隔离 ✓ 正确答案 B plan 和 apply 可以合并为一步,无需评审 C 静态扫描只能人工执行 D 生产环境不需要变更保护
# 4. Terraform provisioner 的使用边界,即何时应避免 provisioner 而改用配置管理工具? A provisioner 是配置管理的首选方式 B provisioner 失败不会影响资源 C provisioner 非幂等且不记录在 state 中,应优先用 Packer/cloud-init/Ansible 等配置管理工具 ✓ 正确答案 D provisioner 会自动记录其副作用
# 5. Terraform 状态的核心价值中状态文件的内容、敏感信息保护与损坏恢复如何管理 A state 只记录资源 ID,不含敏感信息 B state 可以手动随意编辑 C state 记录资源映射与依赖,需用远程后端加密 + 锁 + 备份保护,损坏时可用 import/备份恢复 ✓ 正确答案 D state 不需要远程存储
# 6. lifecycle 元参数(create_before_destroy/prevent_destroy/ignore_changes)在资源更新与删除保护中的应用 A create_before_destroy 用于先销毁后创建 B ignore_changes 会删除资源 C prevent_destroy 阻止资源被计划销毁,create_before_destroy 先建后删避免停机,ignore_changes 忽略外部属性变更 ✓ 正确答案 D lifecycle 只能用于数据库
# 7. state 后端选型、状态锁与漂移检测(drift) A 本地后端最适合团队协作 B 远程 S3 后端 + DynamoDB 锁防止并发冲突,plan 用于检测真实资源与 state 的漂移 ✓ 正确答案 C 状态锁会阻止所有 apply D 漂移检测无法发现手工修改
# 8. 已有资源 import 与 IaC 覆盖率提升 A import 会创建新资源 B terraform import 只把真实资源写入 state 开始管理,导入后需对齐配置使 plan 收敛以提高 IaC 覆盖率 ✓ 正确答案 C import 后无需执行 plan D 覆盖率提升只需靠 import 一次
# 9. 模块版本治理与私有 module registry A 模块无需版本化 B 通过私有 registry 或 Git 引用 + semver 版本约束管理模块,配合发布与升级流程避免漂移 ✓ 正确答案 C 模块只能用本地路径 D 版本升级无需评审
# 10. 远程 state 的加密与访问控制中对象存储后端加锁(DynamoDB)与最小权限如何落地 A state 文件无需加密 B 状态锁会阻止团队协作 C 所有用户都应有 state 的读写权限 D 用对象存储加密 + DynamoDB 锁 + 最小权限 IAM + 版本化来保护远程 state ✓ 正确答案
# 11. IaC 安全中敏感变量注入(Vault/环境变量)、plan 泄露防护与策略即代码(OPA/checkov)如何落地 A 明文密钥可以直接写进 IaC 代码 B 策略即代码只能人工检查 C plan 输出可以公开打印 D 用 Vault/Secret Manager 注入敏感变量、sensitive 标记防 plan 泄露、OPA/checkov 做策略即代码 ✓ 正确答案
# 12. IaC 排障常见场景中 state 与真实资源不一致、provider 版本升级破坏与 plan 差异的定位方法 A provider 版本升级无需关注 B state 与真实资源永远一致 C 用 plan/diff/state show/refresh 定位 state 与真实资源不一致,锁定 provider 版本避免升级破坏 ✓ 正确答案 D plan 差异无法定位
# 13. IaC 的工程实践中模块复用、远程状态后端与 CI 集成的组合如何落地 A 模块复用、远程 state 与 CI 集成三者可独立,无需组合 B CI 集成只用于构建应用 C 远程 state 会破坏团队协作 D 模块保证复用、远程 state 保证协作安全、CI 保证变更受控,三者组合才能形成成熟 IaC 体系 ✓ 正确答案
# 14. IaC 的评审与测试中 plan 输出评审要点、lint/单元测试与沙箱 apply 验证如何组织 A plan 评审只需看是否成功 B 单测可替代实际 apply C 沙箱 apply 与生产环境无关 D 用 fmt/validate/tflint 做 lint、单测验证逻辑、沙箱 apply 验证真实,plan 评审重点看资源变更影响 ✓ 正确答案
# 15. Pulumi ESC 的定位中如何在 IaC 中管理环境变量、密钥与配置分层? A ESC 集中管理环境变量/密钥/配置并支持环境继承与加密,与 IaC 工作流集成避免硬编码 ✓ 正确答案 B ESC 只是 Pulumi 的一个插件,无实际价值 C ESC 只能存明文 D ESC 密钥无法加密
# 16. Terraform 与 CDK 的取舍中同云场景下编程式 CDK 与声明式 Terraform 哪个更合适 A CDK 无法使用编程语言 B CDKTF 不使用 Terraform 后端 C Terraform 不支持跨云 D 同云 AWS 场景且团队擅编程时 CDK 更合适,跨云/依赖成熟生态时 Terraform 更合适 ✓ 正确答案
# 17. Terraform 与 CloudFormation/ARM/Bicep 的跨云策略对比 A CloudFormation 可以管理 Azure 资源 B 云原生工具(CloudFormation/Bicep)与单云深度集成,Terraform 提供跨云统一工作流,选择取决于云绑定与中立需求 ✓ 正确答案 C Bicep 是 Terraform 的一部分 D Terraform 无法管理多云
# 18. Terraform 的 count/for_each/for 表达式在批量资源管理中的取舍 A for 表达式用于创建资源 B for_each 也按索引编号 C count 集合变化会导致索引漂移甚至重建,for_each 按键稳定,适合易变集合 ✓ 正确答案 D count 与 for_each 完全等价
# 19. 从手工变更迁移到 IaC 的路径中先 import 现有资源再治理漂移的工程节奏与风险控制 A 应一次性迁移所有资源 B 迁移后仍可继续手工改资源 C import 会重建资源,需停机 D 先 import 存量资源并对齐配置,再分批治理漂移,用 plan 检测与回退控制风险 ✓ 正确答案