温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用Chef合规运维

发布时间:2026-09-12 17:39:21 来源:亿速云 阅读:99 作者:小樊 栏目:系统运维

下面我用实战视角给你讲清楚:如何用 Chef 做“合规运维”(Compliance as Code)。不堆术语,重点在“能落地”。


一、先明确:Chef 合规运维在做什么?

目标

用代码定义“服务器应该长什么样”,自动检查 + 自动修复,确保始终符合安全/运维规范。

典型合规场景:

  • 禁止 root 远程登录
  • 密码复杂度策略
  • 只开放必要端口
  • 关键文件权限正确
  • 必须安装安全 agent

二、Chef 合规运维的核心组件

组件 作用
Chef Cookbook 定义“应该怎么做”
InSpec 定义“应该怎么检查”(合规即代码)
Chef Automate 合规报告、审计、可视化
chef-client 执行 + 修复

最佳实践组合
Cookbook + InSpec + Chef Automate


三、合规运维的三种模式(重点)

模式 1:修复型(最常用)

不符合就改

# cookbook/recipes/sshd.rb
service 'sshd' do
  action [:enable, :start]
end

file '/etc/ssh/sshd_config' do
  content 'PermitRootLogin no'
  notifies :restart, 'service[sshd]'
end

✅ 适合:配置管理、基线加固


模式 2:检查型(审计)

只报告,不修复(审计合规)

# inspec/controls/sshd.rb
control 'ssh-1' do
  title 'Root login must be disabled'
  describe ssh_config do
    its('PermitRootLogin') { should eq 'no' }
  end
end

运行:

inspec exec sshd.rb -t ssh://server

✅ 适合:等保、ISO、PCI-DSS


模式 3:修复 + 检查(推荐)

Cookbook 修复,InSpec 验证

Cookbook  → 改配置
InSpec    → 证明你改对了
Automate  → 出报告

四、一个完整合规运维示例(Linux 基线)

1️⃣ Cookbook(修复)

# hardening/recipes/default.rb

execute 'disable_empty_passwords' do
  command "sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no/' /etc/ssh/sshd_config"
  not_if "grep -q '^PermitEmptyPasswords no' /etc/ssh/sshd_config"
end

package 'auditd' do
  action :install
end

service 'auditd' do
  action [:enable, :start]
end

2️⃣ InSpec(合规检查)

# hardening/controls/baseline.rb

control 'CIS-1.1.1' do
  title 'Empty passwords must be disabled'
  describe ssh_config do
    its('PermitEmptyPasswords') { should eq 'no' }
  end
end

control 'CIS-2.2.1' do
  title 'auditd must be running'
  describe service('auditd') do
    it { should be_running }
  end
end

3️⃣ 运行方式

# 修复
chef-client -o recipe[hardening]

# 检查
inspec exec hardening/controls -t ssh://host

五、企业级做法(Chef Automate)

Chef Server
   ↓
Chef Client(执行 + 扫描)
   ↓
Chef Automate(合规报告)

能力:

  • 合规趋势图
  • 节点失败排名
  • 审计追溯
  • 对接 SIEM

六、合规运维的“正确姿势”

✅ 不要手写脚本
✅ 用 Cookbook + InSpec
✅ 合规规则版本化
✅ 先审计,再强制
✅ CI 里跑 InSpec


七、如果你刚起步,建议路线

  1. 选 10 条最关键合规项
  2. 写成 InSpec
  3. 用 Cookbook 修复
  4. 每周出合规报告
  5. 逐步扩充到等保/ISO

如果你愿意,我可以:

  • 给你一套 等保2.0 InSpec 规则
  • 或写一个 Windows / 容器 / K8s 的 Chef 合规方案

你现在是 Linux / Windows / 云上 / 等保场景

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI