我正在测试基本的Chef Inspec代码。我正在使用API调用从Mac上运行它:
inspec exec sg-disallow-ftp.rb -t aws://
这是配置文件的Chef代码:
title 'Test AWS Security Groups Across All Regions For an Account Disallow FTP'
control 'aws-multi-region-security-group-ftp-1.0' do
impact 1.0
title 'Ensure AWS Security Groups disallow FTP ingress from 0.0.0.0/0.'
aws_region.region_names.each do |region|
aws_security_groups(aws_region: region).group_ids.each do |security_group_id|
describe aws_security_group(aws_region: region, group_id: security_group_id) do
it { should exist }
it { should_not allow_in(ipv4_range: '0.0.0.0/0', port: 21) }
end
end
end
end
我收到此错误:
× aws-multi-region-security-group-ftp-1.0: Ensure AWS Security Groups disallow FTP ingress from 0.0.0.0/0.
× Control Source Code Error sg-disallow-ftp.rb:3
undefined local variable or method `aws_region' for #<#<Class:0x00007fc35a095158>:0x00007fc356ebd568>
答案 0 :(得分:0)
似乎您缺少一些配置。
我将假定您已经创建了一个名为aws
的{{3}}。您可以利用inspec profile
$ inspec init profile aws
创建配置文件后,需要在inspec init
至inspec-aws
上指定依赖项。您将在aws/inspec.yml
文件中执行此操作,该文件应类似于:
name: aws
title: InSpec Profile
maintainer: The Authors
copyright: The Authors
copyright_email: you@example.com
license: Apache-2.0
summary: An InSpec Compliance Profile
version: 0.1.0
supports:
platform: aws
inspec_version: '>= 4.6.9'
depends:
- name: inspec-aws
url: https://github.com/inspec/inspec-aws/archive/v1.3.2.tar.gz
您应该准备出发了。
您可以通过将inspec shell
与资源包结合使用来验证其是否有效,
$ inspec shell --depends aws -t aws://
答案 1 :(得分:0)
所以最终弄清楚了,我不得不在配置文件目录中运行检查供应商--overwrite并执行了测试