Chef Inspec: неопределенная локальная переменная или метод aws_region - PullRequest
0 голосов
/ 08 ноября 2019

Я тестирую базовый Chef Inspec код. Я запускаю его с Mac с помощью вызова API:

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>

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019

Итак, в конце концов, я понял, что мне нужно запустить inspect vendor --overwrite в каталоге профиля и выполнить тест

0 голосов
/ 10 ноября 2019

кажется, что вам не хватает нескольких конфигураций.

я буду считать, что вы создали профиль inspec с именем aws. Вы можете создать профиль, используя inspec init

$ inspec init profile aws

после создания профиля, вам нужно указать зависимость от 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://
...