inspec 2.0.16 → 2.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +101 -101
- data/CHANGELOG.md +2949 -2944
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +31 -31
- data/MAINTAINERS.toml +47 -47
- data/README.md +438 -438
- data/Rakefile +284 -284
- data/bin/inspec +12 -12
- data/docs/.gitignore +2 -2
- data/docs/README.md +40 -40
- data/docs/dsl_inspec.md +258 -258
- data/docs/dsl_resource.md +93 -93
- data/docs/glossary.md +99 -99
- data/docs/habitat.md +191 -191
- data/docs/inspec_and_friends.md +107 -107
- data/docs/matchers.md +165 -165
- data/docs/migration.md +293 -293
- data/docs/platforms.md +118 -118
- data/docs/plugin_kitchen_inspec.md +49 -49
- data/docs/profiles.md +370 -370
- data/docs/reporters.md +105 -105
- data/docs/resources/aide_conf.md.erb +75 -75
- data/docs/resources/apache.md.erb +67 -67
- data/docs/resources/apache_conf.md.erb +68 -68
- data/docs/resources/apt.md.erb +71 -71
- data/docs/resources/audit_policy.md.erb +47 -47
- data/docs/resources/auditd.md.erb +79 -79
- data/docs/resources/auditd_conf.md.erb +68 -68
- data/docs/resources/aws_cloudtrail_trail.md.erb +140 -140
- data/docs/resources/aws_cloudtrail_trails.md.erb +81 -81
- data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -86
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -151
- data/docs/resources/aws_ec2_instance.md.erb +106 -106
- data/docs/resources/aws_iam_access_key.md.erb +123 -123
- data/docs/resources/aws_iam_access_keys.md.erb +198 -198
- data/docs/resources/aws_iam_group.md.erb +46 -46
- data/docs/resources/aws_iam_groups.md.erb +43 -43
- data/docs/resources/aws_iam_password_policy.md.erb +76 -76
- data/docs/resources/aws_iam_policies.md.erb +82 -82
- data/docs/resources/aws_iam_policy.md.erb +146 -146
- data/docs/resources/aws_iam_role.md.erb +65 -65
- data/docs/resources/aws_iam_root_user.md.erb +58 -58
- data/docs/resources/aws_iam_user.md.erb +64 -64
- data/docs/resources/aws_iam_users.md.erb +89 -89
- data/docs/resources/aws_kms_keys.md.erb +84 -84
- data/docs/resources/aws_route_table.md.erb +47 -47
- data/docs/resources/aws_s3_bucket.md.erb +134 -134
- data/docs/resources/aws_security_group.md.erb +152 -152
- data/docs/resources/aws_security_groups.md.erb +92 -92
- data/docs/resources/aws_sns_topic.md.erb +62 -62
- data/docs/resources/aws_subnet.md.erb +133 -133
- data/docs/resources/aws_subnets.md.erb +126 -126
- data/docs/resources/aws_vpc.md.erb +120 -120
- data/docs/resources/aws_vpcs.md.erb +48 -48
- data/docs/resources/azure_generic_resource.md.erb +170 -139
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -314
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -182
- data/docs/resources/bash.md.erb +75 -75
- data/docs/resources/bond.md.erb +90 -90
- data/docs/resources/bridge.md.erb +57 -57
- data/docs/resources/bsd_service.md.erb +67 -67
- data/docs/resources/command.md.erb +138 -138
- data/docs/resources/cpan.md.erb +79 -79
- data/docs/resources/cran.md.erb +64 -64
- data/docs/resources/crontab.md.erb +88 -88
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +217 -217
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +164 -164
- data/docs/resources/docker_container.md.erb +104 -104
- data/docs/resources/docker_image.md.erb +94 -94
- data/docs/resources/docker_service.md.erb +114 -114
- data/docs/resources/elasticsearch.md.erb +242 -242
- data/docs/resources/etc_fstab.md.erb +125 -125
- data/docs/resources/etc_group.md.erb +75 -75
- data/docs/resources/etc_hosts.md.erb +78 -78
- data/docs/resources/etc_hosts_allow.md.erb +74 -74
- data/docs/resources/etc_hosts_deny.md.erb +74 -74
- data/docs/resources/file.md.erb +515 -515
- data/docs/resources/filesystem.md.erb +41 -41
- data/docs/resources/firewalld.md.erb +107 -107
- data/docs/resources/gem.md.erb +79 -79
- data/docs/resources/group.md.erb +61 -61
- data/docs/resources/grub_conf.md.erb +101 -101
- data/docs/resources/host.md.erb +78 -78
- data/docs/resources/http.md.erb +101 -101
- data/docs/resources/iis_app.md.erb +122 -122
- data/docs/resources/iis_site.md.erb +135 -135
- data/docs/resources/inetd_conf.md.erb +94 -94
- data/docs/resources/ini.md.erb +76 -76
- data/docs/resources/interface.md.erb +58 -58
- data/docs/resources/iptables.md.erb +64 -64
- data/docs/resources/json.md.erb +62 -62
- data/docs/resources/kernel_module.md.erb +107 -107
- data/docs/resources/kernel_parameter.md.erb +53 -53
- data/docs/resources/key_rsa.md.erb +85 -85
- data/docs/resources/launchd_service.md.erb +57 -57
- data/docs/resources/limits_conf.md.erb +75 -75
- data/docs/resources/login_def.md.erb +71 -71
- data/docs/resources/mount.md.erb +69 -69
- data/docs/resources/mssql_session.md.erb +60 -60
- data/docs/resources/mysql_conf.md.erb +99 -99
- data/docs/resources/mysql_session.md.erb +74 -74
- data/docs/resources/nginx.md.erb +79 -79
- data/docs/resources/nginx_conf.md.erb +128 -128
- data/docs/resources/npm.md.erb +60 -60
- data/docs/resources/ntp_conf.md.erb +60 -60
- data/docs/resources/oneget.md.erb +53 -53
- data/docs/resources/oracledb_session.md.erb +52 -52
- data/docs/resources/os.md.erb +141 -141
- data/docs/resources/os_env.md.erb +78 -78
- data/docs/resources/package.md.erb +120 -120
- data/docs/resources/packages.md.erb +67 -67
- data/docs/resources/parse_config.md.erb +103 -103
- data/docs/resources/parse_config_file.md.erb +138 -138
- data/docs/resources/passwd.md.erb +141 -141
- data/docs/resources/pip.md.erb +67 -67
- data/docs/resources/port.md.erb +137 -137
- data/docs/resources/postgres_conf.md.erb +79 -79
- data/docs/resources/postgres_hba_conf.md.erb +93 -93
- data/docs/resources/postgres_ident_conf.md.erb +76 -76
- data/docs/resources/postgres_session.md.erb +69 -69
- data/docs/resources/powershell.md.erb +102 -102
- data/docs/resources/processes.md.erb +109 -109
- data/docs/resources/rabbitmq_config.md.erb +41 -41
- data/docs/resources/registry_key.md.erb +158 -158
- data/docs/resources/runit_service.md.erb +57 -57
- data/docs/resources/security_policy.md.erb +47 -47
- data/docs/resources/service.md.erb +121 -121
- data/docs/resources/shadow.md.erb +144 -144
- data/docs/resources/ssh_config.md.erb +80 -80
- data/docs/resources/sshd_config.md.erb +83 -83
- data/docs/resources/ssl.md.erb +119 -119
- data/docs/resources/sys_info.md.erb +42 -42
- data/docs/resources/systemd_service.md.erb +57 -57
- data/docs/resources/sysv_service.md.erb +57 -57
- data/docs/resources/upstart_service.md.erb +57 -57
- data/docs/resources/user.md.erb +140 -140
- data/docs/resources/users.md.erb +127 -127
- data/docs/resources/vbscript.md.erb +55 -55
- data/docs/resources/virtualization.md.erb +57 -57
- data/docs/resources/windows_feature.md.erb +47 -47
- data/docs/resources/windows_hotfix.md.erb +53 -53
- data/docs/resources/windows_task.md.erb +95 -95
- data/docs/resources/wmi.md.erb +81 -81
- data/docs/resources/x509_certificate.md.erb +151 -151
- data/docs/resources/xinetd_conf.md.erb +156 -156
- data/docs/resources/xml.md.erb +85 -85
- data/docs/resources/yaml.md.erb +69 -69
- data/docs/resources/yum.md.erb +98 -98
- data/docs/resources/zfs_dataset.md.erb +53 -53
- data/docs/resources/zfs_pool.md.erb +47 -47
- data/docs/ruby_usage.md +203 -203
- data/docs/shared/matcher_be.md.erb +1 -1
- data/docs/shared/matcher_cmp.md.erb +43 -43
- data/docs/shared/matcher_eq.md.erb +3 -3
- data/docs/shared/matcher_include.md.erb +1 -1
- data/docs/shared/matcher_match.md.erb +1 -1
- data/docs/shell.md +172 -172
- data/examples/README.md +8 -8
- data/examples/inheritance/README.md +65 -65
- data/examples/inheritance/controls/example.rb +14 -14
- data/examples/inheritance/inspec.yml +15 -15
- data/examples/kitchen-ansible/.kitchen.yml +25 -25
- data/examples/kitchen-ansible/Gemfile +19 -19
- data/examples/kitchen-ansible/README.md +53 -53
- data/examples/kitchen-ansible/files/nginx.repo +6 -6
- data/examples/kitchen-ansible/tasks/main.yml +16 -16
- data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-chef/.kitchen.yml +20 -20
- data/examples/kitchen-chef/Berksfile +3 -3
- data/examples/kitchen-chef/Gemfile +19 -19
- data/examples/kitchen-chef/README.md +27 -27
- data/examples/kitchen-chef/metadata.rb +7 -7
- data/examples/kitchen-chef/recipes/default.rb +6 -6
- data/examples/kitchen-chef/recipes/nginx.rb +30 -30
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-puppet/.kitchen.yml +22 -22
- data/examples/kitchen-puppet/Gemfile +20 -20
- data/examples/kitchen-puppet/Puppetfile +25 -25
- data/examples/kitchen-puppet/README.md +53 -53
- data/examples/kitchen-puppet/manifests/site.pp +33 -33
- data/examples/kitchen-puppet/metadata.json +11 -11
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
- data/examples/meta-profile/README.md +37 -37
- data/examples/meta-profile/controls/example.rb +13 -13
- data/examples/meta-profile/inspec.yml +13 -13
- data/examples/profile-attribute.yml +2 -2
- data/examples/profile-attribute/README.md +14 -14
- data/examples/profile-attribute/controls/example.rb +11 -11
- data/examples/profile-attribute/inspec.yml +8 -8
- data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -8
- data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -8
- data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -8
- data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -8
- data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -8
- data/examples/profile-aws/inspec.yml +11 -11
- data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -24
- data/examples/profile-azure/controls/azure_vm_example.rb +29 -29
- data/examples/profile-azure/inspec.yml +11 -11
- data/examples/profile-sensitive/README.md +29 -29
- data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
- data/examples/profile-sensitive/controls/sensitive.rb +9 -9
- data/examples/profile-sensitive/inspec.yml +8 -8
- data/examples/profile/README.md +48 -48
- data/examples/profile/controls/example.rb +23 -23
- data/examples/profile/controls/gordon.rb +36 -36
- data/examples/profile/controls/meta.rb +34 -34
- data/examples/profile/inspec.yml +10 -10
- data/examples/profile/libraries/gordon_config.rb +53 -53
- data/inspec.gemspec +47 -47
- data/lib/bundles/README.md +3 -3
- data/lib/bundles/inspec-artifact.rb +7 -7
- data/lib/bundles/inspec-artifact/README.md +1 -1
- data/lib/bundles/inspec-artifact/cli.rb +277 -277
- data/lib/bundles/inspec-compliance.rb +16 -16
- data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
- data/lib/bundles/inspec-compliance/README.md +185 -185
- data/lib/bundles/inspec-compliance/api.rb +316 -316
- data/lib/bundles/inspec-compliance/api/login.rb +152 -152
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
- data/lib/bundles/inspec-compliance/cli.rb +254 -254
- data/lib/bundles/inspec-compliance/configuration.rb +103 -103
- data/lib/bundles/inspec-compliance/http.rb +86 -86
- data/lib/bundles/inspec-compliance/support.rb +36 -36
- data/lib/bundles/inspec-compliance/target.rb +98 -98
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
- data/lib/bundles/inspec-habitat.rb +12 -12
- data/lib/bundles/inspec-habitat/cli.rb +36 -36
- data/lib/bundles/inspec-habitat/log.rb +10 -10
- data/lib/bundles/inspec-habitat/profile.rb +390 -390
- data/lib/bundles/inspec-init.rb +8 -8
- data/lib/bundles/inspec-init/README.md +31 -31
- data/lib/bundles/inspec-init/cli.rb +97 -97
- data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
- data/lib/bundles/inspec-supermarket.rb +13 -13
- data/lib/bundles/inspec-supermarket/README.md +45 -45
- data/lib/bundles/inspec-supermarket/api.rb +84 -84
- data/lib/bundles/inspec-supermarket/cli.rb +73 -73
- data/lib/bundles/inspec-supermarket/target.rb +34 -34
- data/lib/fetchers/git.rb +163 -163
- data/lib/fetchers/local.rb +74 -74
- data/lib/fetchers/mock.rb +35 -35
- data/lib/fetchers/url.rb +204 -204
- data/lib/inspec.rb +24 -24
- data/lib/inspec/archive/tar.rb +29 -29
- data/lib/inspec/archive/zip.rb +19 -19
- data/lib/inspec/backend.rb +92 -92
- data/lib/inspec/base_cli.rb +350 -333
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -302
- data/lib/inspec/completions/bash.sh.erb +45 -45
- data/lib/inspec/completions/fish.sh.erb +34 -34
- data/lib/inspec/completions/zsh.sh.erb +61 -61
- data/lib/inspec/control_eval_context.rb +179 -179
- data/lib/inspec/dependencies/cache.rb +72 -72
- data/lib/inspec/dependencies/dependency_set.rb +92 -92
- data/lib/inspec/dependencies/lockfile.rb +115 -115
- data/lib/inspec/dependencies/requirement.rb +123 -123
- data/lib/inspec/dependencies/resolver.rb +86 -86
- data/lib/inspec/describe.rb +27 -27
- data/lib/inspec/dsl.rb +66 -66
- data/lib/inspec/dsl_shared.rb +33 -33
- data/lib/inspec/env_printer.rb +157 -157
- data/lib/inspec/errors.rb +13 -13
- data/lib/inspec/exceptions.rb +12 -12
- data/lib/inspec/expect.rb +45 -45
- data/lib/inspec/fetcher.rb +45 -45
- data/lib/inspec/file_provider.rb +275 -275
- data/lib/inspec/formatters.rb +3 -3
- data/lib/inspec/formatters/base.rb +250 -250
- data/lib/inspec/formatters/json_rspec.rb +20 -20
- data/lib/inspec/formatters/show_progress.rb +12 -12
- data/lib/inspec/library_eval_context.rb +58 -58
- data/lib/inspec/log.rb +11 -11
- data/lib/inspec/metadata.rb +247 -247
- data/lib/inspec/method_source.rb +24 -24
- data/lib/inspec/objects.rb +14 -14
- data/lib/inspec/objects/attribute.rb +65 -65
- data/lib/inspec/objects/control.rb +61 -61
- data/lib/inspec/objects/describe.rb +92 -92
- data/lib/inspec/objects/each_loop.rb +36 -36
- data/lib/inspec/objects/list.rb +15 -15
- data/lib/inspec/objects/or_test.rb +40 -40
- data/lib/inspec/objects/ruby_helper.rb +15 -15
- data/lib/inspec/objects/tag.rb +27 -27
- data/lib/inspec/objects/test.rb +87 -87
- data/lib/inspec/objects/value.rb +27 -27
- data/lib/inspec/plugins.rb +60 -60
- data/lib/inspec/plugins/cli.rb +24 -24
- data/lib/inspec/plugins/fetcher.rb +86 -86
- data/lib/inspec/plugins/resource.rb +133 -133
- data/lib/inspec/plugins/secret.rb +15 -15
- data/lib/inspec/plugins/source_reader.rb +40 -40
- data/lib/inspec/polyfill.rb +12 -12
- data/lib/inspec/profile.rb +510 -510
- data/lib/inspec/profile_context.rb +207 -207
- data/lib/inspec/profile_vendor.rb +66 -66
- data/lib/inspec/reporters.rb +50 -50
- data/lib/inspec/reporters/base.rb +24 -24
- data/lib/inspec/reporters/cli.rb +356 -356
- data/lib/inspec/reporters/json.rb +116 -116
- data/lib/inspec/reporters/json_min.rb +48 -48
- data/lib/inspec/reporters/junit.rb +77 -77
- data/lib/inspec/require_loader.rb +33 -33
- data/lib/inspec/resource.rb +186 -186
- data/lib/inspec/rule.rb +266 -266
- data/lib/inspec/runner.rb +344 -344
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +174 -174
- data/lib/inspec/runtime_profile.rb +26 -26
- data/lib/inspec/schema.rb +213 -213
- data/lib/inspec/secrets.rb +19 -19
- data/lib/inspec/secrets/yaml.rb +30 -30
- data/lib/inspec/shell.rb +220 -223
- data/lib/inspec/shell_detector.rb +90 -90
- data/lib/inspec/source_reader.rb +29 -29
- data/lib/inspec/version.rb +8 -8
- data/lib/matchers/matchers.rb +339 -339
- data/lib/resource_support/aws.rb +40 -40
- data/lib/resource_support/aws/aws_backend_base.rb +12 -12
- data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -12
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -21
- data/lib/resource_support/aws/aws_resource_mixin.rb +66 -66
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -24
- data/lib/resources/aide_conf.rb +160 -160
- data/lib/resources/apache.rb +48 -48
- data/lib/resources/apache_conf.rb +156 -156
- data/lib/resources/apt.rb +149 -149
- data/lib/resources/audit_policy.rb +63 -63
- data/lib/resources/auditd.rb +231 -231
- data/lib/resources/auditd_conf.rb +55 -55
- data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -77
- data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -47
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -62
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -100
- data/lib/resources/aws/aws_ec2_instance.rb +157 -157
- data/lib/resources/aws/aws_iam_access_key.rb +106 -106
- data/lib/resources/aws/aws_iam_access_keys.rb +144 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +45 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +46 -46
- data/lib/resources/aws/aws_iam_policy.rb +119 -119
- data/lib/resources/aws/aws_iam_role.rb +51 -51
- data/lib/resources/aws/aws_iam_root_user.rb +60 -60
- data/lib/resources/aws/aws_iam_user.rb +111 -111
- data/lib/resources/aws/aws_iam_users.rb +96 -96
- data/lib/resources/aws/aws_kms_keys.rb +46 -46
- data/lib/resources/aws/aws_route_table.rb +61 -61
- data/lib/resources/aws/aws_s3_bucket.rb +115 -115
- data/lib/resources/aws/aws_security_group.rb +93 -93
- data/lib/resources/aws/aws_security_groups.rb +68 -68
- data/lib/resources/aws/aws_sns_topic.rb +53 -53
- data/lib/resources/aws/aws_subnet.rb +88 -88
- data/lib/resources/aws/aws_subnets.rb +53 -53
- data/lib/resources/aws/aws_vpc.rb +69 -69
- data/lib/resources/aws/aws_vpcs.rb +45 -45
- data/lib/resources/azure/azure_backend.rb +377 -377
- data/lib/resources/azure/azure_generic_resource.rb +59 -59
- data/lib/resources/azure/azure_resource_group.rb +152 -152
- data/lib/resources/azure/azure_virtual_machine.rb +264 -264
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -136
- data/lib/resources/bash.rb +35 -35
- data/lib/resources/bond.rb +68 -68
- data/lib/resources/bridge.rb +122 -122
- data/lib/resources/command.rb +69 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +170 -170
- data/lib/resources/csv.rb +60 -60
- data/lib/resources/dh_params.rb +82 -82
- data/lib/resources/directory.rb +25 -25
- data/lib/resources/docker.rb +236 -236
- data/lib/resources/docker_container.rb +89 -89
- data/lib/resources/docker_image.rb +83 -83
- data/lib/resources/docker_object.rb +57 -57
- data/lib/resources/docker_service.rb +90 -90
- data/lib/resources/elasticsearch.rb +169 -169
- data/lib/resources/etc_fstab.rb +102 -102
- data/lib/resources/etc_group.rb +156 -156
- data/lib/resources/etc_hosts.rb +81 -81
- data/lib/resources/etc_hosts_allow_deny.rb +123 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +144 -144
- data/lib/resources/gem.rb +70 -70
- data/lib/resources/groups.rb +215 -215
- data/lib/resources/grub_conf.rb +237 -237
- data/lib/resources/host.rb +300 -300
- data/lib/resources/http.rb +250 -250
- data/lib/resources/iis_app.rb +104 -104
- data/lib/resources/iis_site.rb +148 -148
- data/lib/resources/inetd_conf.rb +62 -62
- data/lib/resources/ini.rb +29 -29
- data/lib/resources/interface.rb +129 -129
- data/lib/resources/iptables.rb +69 -69
- data/lib/resources/json.rb +117 -117
- data/lib/resources/kernel_module.rb +107 -107
- data/lib/resources/kernel_parameter.rb +58 -58
- data/lib/resources/key_rsa.rb +67 -67
- data/lib/resources/limits_conf.rb +55 -55
- data/lib/resources/login_def.rb +66 -66
- data/lib/resources/mount.rb +88 -88
- data/lib/resources/mssql_session.rb +101 -101
- data/lib/resources/mysql.rb +81 -81
- data/lib/resources/mysql_conf.rb +134 -134
- data/lib/resources/mysql_session.rb +71 -71
- data/lib/resources/nginx.rb +96 -96
- data/lib/resources/nginx_conf.rb +227 -227
- data/lib/resources/npm.rb +48 -48
- data/lib/resources/ntp_conf.rb +58 -58
- data/lib/resources/oneget.rb +71 -71
- data/lib/resources/oracledb_session.rb +139 -139
- data/lib/resources/os.rb +36 -36
- data/lib/resources/os_env.rb +76 -76
- data/lib/resources/package.rb +363 -363
- data/lib/resources/packages.rb +111 -111
- data/lib/resources/parse_config.rb +116 -116
- data/lib/resources/passwd.rb +74 -74
- data/lib/resources/pip.rb +89 -89
- data/lib/resources/platform.rb +109 -109
- data/lib/resources/port.rb +771 -771
- data/lib/resources/postgres.rb +130 -130
- data/lib/resources/postgres_conf.rb +121 -121
- data/lib/resources/postgres_hba_conf.rb +100 -100
- data/lib/resources/postgres_ident_conf.rb +78 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +57 -57
- data/lib/resources/processes.rb +204 -204
- data/lib/resources/rabbitmq_conf.rb +52 -52
- data/lib/resources/registry_key.rb +296 -296
- data/lib/resources/security_policy.rb +180 -180
- data/lib/resources/service.rb +789 -789
- data/lib/resources/shadow.rb +140 -140
- data/lib/resources/ssh_conf.rb +102 -102
- data/lib/resources/ssl.rb +99 -99
- data/lib/resources/sys_info.rb +28 -28
- data/lib/resources/toml.rb +32 -32
- data/lib/resources/users.rb +654 -654
- data/lib/resources/vbscript.rb +69 -69
- data/lib/resources/virtualization.rb +251 -251
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +105 -105
- data/lib/resources/wmi.rb +113 -113
- data/lib/resources/x509_certificate.rb +143 -143
- data/lib/resources/xinetd.rb +111 -111
- data/lib/resources/xml.rb +46 -46
- data/lib/resources/yaml.rb +47 -47
- data/lib/resources/yum.rb +180 -180
- data/lib/resources/zfs_dataset.rb +60 -60
- data/lib/resources/zfs_pool.rb +49 -49
- data/lib/source_readers/flat.rb +39 -39
- data/lib/source_readers/inspec.rb +75 -75
- data/lib/utils/command_wrapper.rb +27 -27
- data/lib/utils/convert.rb +12 -12
- data/lib/utils/database_helpers.rb +77 -77
- data/lib/utils/erlang_parser.rb +192 -192
- data/lib/utils/filter.rb +272 -272
- data/lib/utils/filter_array.rb +27 -27
- data/lib/utils/find_files.rb +44 -44
- data/lib/utils/hash.rb +41 -41
- data/lib/utils/json_log.rb +18 -18
- data/lib/utils/latest_version.rb +22 -22
- data/lib/utils/modulator.rb +12 -12
- data/lib/utils/nginx_parser.rb +85 -85
- data/lib/utils/object_traversal.rb +49 -49
- data/lib/utils/parser.rb +274 -274
- data/lib/utils/plugin_registry.rb +93 -93
- data/lib/utils/simpleconfig.rb +120 -120
- data/lib/utils/spdx.rb +13 -13
- data/lib/utils/spdx.txt +343 -343
- metadata +1 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the directory Resource
|
|
3
|
-
platform: os
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# directory
|
|
7
|
-
|
|
8
|
-
Use the `directory` InSpec audit resource to test if the file type is a directory. This is equivalent to using the `file` resource and the `be_directory` matcher, but provides a simpler and more direct way to test directories.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `directory` resource block declares the location of the directory to be tested, and then one (or more) matchers.
|
|
15
|
-
|
|
16
|
-
describe directory('path') do
|
|
17
|
-
its('property') { should cmp 'value' }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
<br>
|
|
21
|
-
|
|
22
|
-
## Properties
|
|
23
|
-
|
|
24
|
-
All of the properties available to `file` may be used with `directory`.
|
|
25
|
-
|
|
26
|
-
<br>
|
|
27
|
-
|
|
28
|
-
## Matchers
|
|
29
|
-
|
|
30
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
1
|
+
---
|
|
2
|
+
title: About the directory Resource
|
|
3
|
+
platform: os
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# directory
|
|
7
|
+
|
|
8
|
+
Use the `directory` InSpec audit resource to test if the file type is a directory. This is equivalent to using the `file` resource and the `be_directory` matcher, but provides a simpler and more direct way to test directories.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `directory` resource block declares the location of the directory to be tested, and then one (or more) matchers.
|
|
15
|
+
|
|
16
|
+
describe directory('path') do
|
|
17
|
+
its('property') { should cmp 'value' }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
<br>
|
|
21
|
+
|
|
22
|
+
## Properties
|
|
23
|
+
|
|
24
|
+
All of the properties available to `file` may be used with `directory`.
|
|
25
|
+
|
|
26
|
+
<br>
|
|
27
|
+
|
|
28
|
+
## Matchers
|
|
29
|
+
|
|
30
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the docker Resource
|
|
3
|
-
platform: linux
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# docker
|
|
7
|
-
|
|
8
|
-
Use the `docker` InSpec audit resource to test configuration data for docker daemon. It is a very comprehensive resource. Please have a look at [docker_container](docker_container) and [docker_image](docker_image), too.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `docker` resource block declares allows you to write test for many containers:
|
|
15
|
-
|
|
16
|
-
describe docker.containers do
|
|
17
|
-
its('images') { should_not include 'u12:latest' }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
or:
|
|
21
|
-
|
|
22
|
-
describe docker.containers.where { names == 'flamboyant_colden' } do
|
|
23
|
-
it { should be_running }
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
where
|
|
27
|
-
|
|
28
|
-
* `.where()` may specify a specific item and value, to which the matchers are compared
|
|
29
|
-
* `commands`, `ids`, `images`, `labels`, `local_volumes`, `mounts`, `names`, `networks`, `ports`, `sizes` and `'status'` are valid matchers for `containers`
|
|
30
|
-
|
|
31
|
-
The `docker` resource block also declares allows you to write test for many images:
|
|
32
|
-
|
|
33
|
-
describe docker.images do
|
|
34
|
-
its('repositories') { should_not include 'inssecure_image' }
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
or if you want to query specific images:
|
|
38
|
-
|
|
39
|
-
describe docker.images.where { repository == 'ubuntu' && tag == '12.04' } do
|
|
40
|
-
it { should_not exist }
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
where
|
|
44
|
-
|
|
45
|
-
* `.where()` may specify a specific item and value, to which the matchers are compared
|
|
46
|
-
* `commands`, `ids`, `images`, `labels`, `local_volumes`, `mounts`, `names`, `networks`, `ports`, `sizes` and `'status'` are valid matchers for `containers`
|
|
47
|
-
|
|
48
|
-
<br>
|
|
49
|
-
|
|
50
|
-
## Examples
|
|
51
|
-
|
|
52
|
-
The following examples show how to use this InSpec audit resource.
|
|
53
|
-
|
|
54
|
-
### Return all running containers
|
|
55
|
-
|
|
56
|
-
docker.containers.running?.ids.each do |id|
|
|
57
|
-
describe docker.object(id) do
|
|
58
|
-
its('State.Health.Status') { should eq 'healthy' }
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
### Verify a Docker Server and Client version
|
|
63
|
-
|
|
64
|
-
describe docker.version do
|
|
65
|
-
its('Server.Version') { should cmp >= '1.12'}
|
|
66
|
-
its('Client.Version') { should cmp >= '1.12'}
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
### Iterate over all containers to verify host coniguration
|
|
70
|
-
|
|
71
|
-
docker.containers.ids.each do |id|
|
|
72
|
-
# call docker inspect for a specific container id
|
|
73
|
-
describe docker.object(id) do
|
|
74
|
-
its(%w(HostConfig Privileged)) { should cmp false }
|
|
75
|
-
its(%w(HostConfig Privileged)) { should_not cmp true }
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
### Iterate over all images to verify the container was built without ADD instruction
|
|
80
|
-
|
|
81
|
-
docker.images.ids.each do |id|
|
|
82
|
-
describe command("docker history #{id}| grep 'ADD'") do
|
|
83
|
-
its('stdout') { should eq '' }
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
### Verify that health-checks are enabled for a container
|
|
88
|
-
|
|
89
|
-
describe docker.object('71b5df59442b') do
|
|
90
|
-
its(%w(Config Healthcheck)) { should_not eq nil }
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
### Run the DevSec docker baseline profile
|
|
94
|
-
|
|
95
|
-
There are two ways to run the `docker-baseline` profile to test Docker via the `docker` resource.
|
|
96
|
-
|
|
97
|
-
Clone the profile:
|
|
98
|
-
|
|
99
|
-
$ git clone https://github.com/dev-sec/cis-docker-benchmark.git
|
|
100
|
-
|
|
101
|
-
and then run:
|
|
102
|
-
|
|
103
|
-
$ inspec exec cis-docker-benchmark
|
|
104
|
-
|
|
105
|
-
Or execute the profile directly via URL:
|
|
106
|
-
|
|
107
|
-
$ inspec exec https://github.com/dev-sec/cis-docker-benchmark
|
|
108
|
-
|
|
109
|
-
<br>
|
|
110
|
-
|
|
111
|
-
## Matchers
|
|
112
|
-
|
|
113
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
114
|
-
|
|
115
|
-
### containers
|
|
116
|
-
|
|
117
|
-
`containers` returns information about containers as returned by [docker ps -a](https://docs.docker.com/engine/reference/commandline/ps/). You can determine specific information about
|
|
118
|
-
|
|
119
|
-
describe docker.containers do
|
|
120
|
-
its('ids') { should include 'sha:71b5df59...442b' }
|
|
121
|
-
its('commands') { should_not include '/bin/sh' }
|
|
122
|
-
its('images') { should_not include 'u12:latest' }
|
|
123
|
-
its('ports') { should include '0.0.0.0:1234->1234/tcp' }
|
|
124
|
-
its('labels') { should include 'License=GPLv2,Vendor=CentOS' }
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
### images
|
|
129
|
-
|
|
130
|
-
`images` returns information about docker image as returned by [docker images](https://docs.docker.com/engine/reference/commandline/images/). You can determine specific information about
|
|
131
|
-
|
|
132
|
-
describe docker.images do
|
|
133
|
-
its('ids') { should include 'sha:12b5df59...442b' }
|
|
134
|
-
its('repositories') { should_not include 'my_image' }
|
|
135
|
-
its('tags') { should_not include 'unwanted_tag' }
|
|
136
|
-
its('sizes') { should_not include "1.41 GB" }
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
### version
|
|
140
|
-
|
|
141
|
-
`info` returns the parsed result of [docker version](https://docs.docker.com/engine/reference/commandline/version/)
|
|
142
|
-
|
|
143
|
-
describe docker.version do
|
|
144
|
-
its('Server.Version') { should cmp >= '1.12'}
|
|
145
|
-
its('Client.Version') { should cmp >= '1.12'}
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
### info
|
|
150
|
-
|
|
151
|
-
`info` returns the parsed result of [docker info](https://docs.docker.com/engine/reference/commandline/info/)
|
|
152
|
-
|
|
153
|
-
describe docker.info do
|
|
154
|
-
its('Configuration.Path') { should eq 'value' }
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
### object('id')
|
|
159
|
-
|
|
160
|
-
`object` returns low-level information about docker objects. It is calling [docker inspect](https://docs.docker.com/engine/reference/commandline/info/) under the hood.
|
|
161
|
-
|
|
162
|
-
describe docker.object(id) do
|
|
163
|
-
its('Configuration.Path') { should eq 'value' }
|
|
164
|
-
end
|
|
1
|
+
---
|
|
2
|
+
title: About the docker Resource
|
|
3
|
+
platform: linux
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docker
|
|
7
|
+
|
|
8
|
+
Use the `docker` InSpec audit resource to test configuration data for docker daemon. It is a very comprehensive resource. Please have a look at [docker_container](docker_container) and [docker_image](docker_image), too.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `docker` resource block declares allows you to write test for many containers:
|
|
15
|
+
|
|
16
|
+
describe docker.containers do
|
|
17
|
+
its('images') { should_not include 'u12:latest' }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
or:
|
|
21
|
+
|
|
22
|
+
describe docker.containers.where { names == 'flamboyant_colden' } do
|
|
23
|
+
it { should be_running }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
where
|
|
27
|
+
|
|
28
|
+
* `.where()` may specify a specific item and value, to which the matchers are compared
|
|
29
|
+
* `commands`, `ids`, `images`, `labels`, `local_volumes`, `mounts`, `names`, `networks`, `ports`, `sizes` and `'status'` are valid matchers for `containers`
|
|
30
|
+
|
|
31
|
+
The `docker` resource block also declares allows you to write test for many images:
|
|
32
|
+
|
|
33
|
+
describe docker.images do
|
|
34
|
+
its('repositories') { should_not include 'inssecure_image' }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
or if you want to query specific images:
|
|
38
|
+
|
|
39
|
+
describe docker.images.where { repository == 'ubuntu' && tag == '12.04' } do
|
|
40
|
+
it { should_not exist }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
where
|
|
44
|
+
|
|
45
|
+
* `.where()` may specify a specific item and value, to which the matchers are compared
|
|
46
|
+
* `commands`, `ids`, `images`, `labels`, `local_volumes`, `mounts`, `names`, `networks`, `ports`, `sizes` and `'status'` are valid matchers for `containers`
|
|
47
|
+
|
|
48
|
+
<br>
|
|
49
|
+
|
|
50
|
+
## Examples
|
|
51
|
+
|
|
52
|
+
The following examples show how to use this InSpec audit resource.
|
|
53
|
+
|
|
54
|
+
### Return all running containers
|
|
55
|
+
|
|
56
|
+
docker.containers.running?.ids.each do |id|
|
|
57
|
+
describe docker.object(id) do
|
|
58
|
+
its('State.Health.Status') { should eq 'healthy' }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
### Verify a Docker Server and Client version
|
|
63
|
+
|
|
64
|
+
describe docker.version do
|
|
65
|
+
its('Server.Version') { should cmp >= '1.12'}
|
|
66
|
+
its('Client.Version') { should cmp >= '1.12'}
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
### Iterate over all containers to verify host coniguration
|
|
70
|
+
|
|
71
|
+
docker.containers.ids.each do |id|
|
|
72
|
+
# call docker inspect for a specific container id
|
|
73
|
+
describe docker.object(id) do
|
|
74
|
+
its(%w(HostConfig Privileged)) { should cmp false }
|
|
75
|
+
its(%w(HostConfig Privileged)) { should_not cmp true }
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
### Iterate over all images to verify the container was built without ADD instruction
|
|
80
|
+
|
|
81
|
+
docker.images.ids.each do |id|
|
|
82
|
+
describe command("docker history #{id}| grep 'ADD'") do
|
|
83
|
+
its('stdout') { should eq '' }
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
### Verify that health-checks are enabled for a container
|
|
88
|
+
|
|
89
|
+
describe docker.object('71b5df59442b') do
|
|
90
|
+
its(%w(Config Healthcheck)) { should_not eq nil }
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
### Run the DevSec docker baseline profile
|
|
94
|
+
|
|
95
|
+
There are two ways to run the `docker-baseline` profile to test Docker via the `docker` resource.
|
|
96
|
+
|
|
97
|
+
Clone the profile:
|
|
98
|
+
|
|
99
|
+
$ git clone https://github.com/dev-sec/cis-docker-benchmark.git
|
|
100
|
+
|
|
101
|
+
and then run:
|
|
102
|
+
|
|
103
|
+
$ inspec exec cis-docker-benchmark
|
|
104
|
+
|
|
105
|
+
Or execute the profile directly via URL:
|
|
106
|
+
|
|
107
|
+
$ inspec exec https://github.com/dev-sec/cis-docker-benchmark
|
|
108
|
+
|
|
109
|
+
<br>
|
|
110
|
+
|
|
111
|
+
## Matchers
|
|
112
|
+
|
|
113
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
114
|
+
|
|
115
|
+
### containers
|
|
116
|
+
|
|
117
|
+
`containers` returns information about containers as returned by [docker ps -a](https://docs.docker.com/engine/reference/commandline/ps/). You can determine specific information about
|
|
118
|
+
|
|
119
|
+
describe docker.containers do
|
|
120
|
+
its('ids') { should include 'sha:71b5df59...442b' }
|
|
121
|
+
its('commands') { should_not include '/bin/sh' }
|
|
122
|
+
its('images') { should_not include 'u12:latest' }
|
|
123
|
+
its('ports') { should include '0.0.0.0:1234->1234/tcp' }
|
|
124
|
+
its('labels') { should include 'License=GPLv2,Vendor=CentOS' }
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### images
|
|
129
|
+
|
|
130
|
+
`images` returns information about docker image as returned by [docker images](https://docs.docker.com/engine/reference/commandline/images/). You can determine specific information about
|
|
131
|
+
|
|
132
|
+
describe docker.images do
|
|
133
|
+
its('ids') { should include 'sha:12b5df59...442b' }
|
|
134
|
+
its('repositories') { should_not include 'my_image' }
|
|
135
|
+
its('tags') { should_not include 'unwanted_tag' }
|
|
136
|
+
its('sizes') { should_not include "1.41 GB" }
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
### version
|
|
140
|
+
|
|
141
|
+
`info` returns the parsed result of [docker version](https://docs.docker.com/engine/reference/commandline/version/)
|
|
142
|
+
|
|
143
|
+
describe docker.version do
|
|
144
|
+
its('Server.Version') { should cmp >= '1.12'}
|
|
145
|
+
its('Client.Version') { should cmp >= '1.12'}
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### info
|
|
150
|
+
|
|
151
|
+
`info` returns the parsed result of [docker info](https://docs.docker.com/engine/reference/commandline/info/)
|
|
152
|
+
|
|
153
|
+
describe docker.info do
|
|
154
|
+
its('Configuration.Path') { should eq 'value' }
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
### object('id')
|
|
159
|
+
|
|
160
|
+
`object` returns low-level information about docker objects. It is calling [docker inspect](https://docs.docker.com/engine/reference/commandline/info/) under the hood.
|
|
161
|
+
|
|
162
|
+
describe docker.object(id) do
|
|
163
|
+
its('Configuration.Path') { should eq 'value' }
|
|
164
|
+
end
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the docker_container Resource
|
|
3
|
-
platform: linux
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# docker_container
|
|
7
|
-
|
|
8
|
-
Use the `docker_container` InSpec audit resource to test a docker container.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `docker_container` resource block declares the configuration data to be tested:
|
|
15
|
-
|
|
16
|
-
describe docker_container('container') do
|
|
17
|
-
it { should exist }
|
|
18
|
-
it { should be_running }
|
|
19
|
-
its('id') { should_not eq '' }
|
|
20
|
-
its('image') { should eq 'busybox:latest' }
|
|
21
|
-
its('repo') { should eq 'busybox' }
|
|
22
|
-
its('tag') { should eq 'latest' }
|
|
23
|
-
its('ports') { should eq [] }
|
|
24
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
<br>
|
|
28
|
-
|
|
29
|
-
## Resource Parameter Examples
|
|
30
|
-
|
|
31
|
-
### name
|
|
32
|
-
|
|
33
|
-
The container name can also be passed with the `name` resource parameter:
|
|
34
|
-
|
|
35
|
-
describe docker_container(name: 'an-echo-server') do
|
|
36
|
-
it { should exist }
|
|
37
|
-
it { should be_running }
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
### id
|
|
41
|
-
|
|
42
|
-
Alternatively, you can pass in the container id:
|
|
43
|
-
|
|
44
|
-
describe docker_container(id: '71b5df59442b') do
|
|
45
|
-
it { should exist }
|
|
46
|
-
it { should be_running }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
<br>
|
|
50
|
-
|
|
51
|
-
## Property Examples
|
|
52
|
-
|
|
53
|
-
The following examples show how to use this InSpec resource.
|
|
54
|
-
|
|
55
|
-
### id
|
|
56
|
-
|
|
57
|
-
The `id` property tests the container id:
|
|
58
|
-
|
|
59
|
-
its('id') { should eq 'sha:71b5df59...442b' }
|
|
60
|
-
|
|
61
|
-
### repo
|
|
62
|
-
|
|
63
|
-
The `repo` property tests the value of the image repository:
|
|
64
|
-
|
|
65
|
-
its('repo') { should eq 'busybox' }
|
|
66
|
-
|
|
67
|
-
### tag
|
|
68
|
-
|
|
69
|
-
The `tag` property tests the value of the image tag:
|
|
70
|
-
|
|
71
|
-
its('tag') { should eq 'latest' }
|
|
72
|
-
|
|
73
|
-
### ports
|
|
74
|
-
|
|
75
|
-
The `ports` property tests the value the docker ports:
|
|
76
|
-
|
|
77
|
-
its('ports') { should eq '0.0.0.0:1234->1234/tcp' }
|
|
78
|
-
|
|
79
|
-
### command
|
|
80
|
-
|
|
81
|
-
The `command` property tests the value of the container run command:
|
|
82
|
-
|
|
83
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
### Verify a running container:
|
|
87
|
-
|
|
88
|
-
describe docker_container('an-echo-server') do
|
|
89
|
-
it { should exist }
|
|
90
|
-
it { should be_running }
|
|
91
|
-
its('id') { should_not eq '' }
|
|
92
|
-
its('image') { should eq 'busybox:latest' }
|
|
93
|
-
its('repo') { should eq 'busybox' }
|
|
94
|
-
its('tag') { should eq 'latest' }
|
|
95
|
-
its('ports') { should eq [] }
|
|
96
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
<br>
|
|
100
|
-
|
|
101
|
-
## Matchers
|
|
102
|
-
|
|
103
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
104
|
-
|
|
1
|
+
---
|
|
2
|
+
title: About the docker_container Resource
|
|
3
|
+
platform: linux
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docker_container
|
|
7
|
+
|
|
8
|
+
Use the `docker_container` InSpec audit resource to test a docker container.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `docker_container` resource block declares the configuration data to be tested:
|
|
15
|
+
|
|
16
|
+
describe docker_container('container') do
|
|
17
|
+
it { should exist }
|
|
18
|
+
it { should be_running }
|
|
19
|
+
its('id') { should_not eq '' }
|
|
20
|
+
its('image') { should eq 'busybox:latest' }
|
|
21
|
+
its('repo') { should eq 'busybox' }
|
|
22
|
+
its('tag') { should eq 'latest' }
|
|
23
|
+
its('ports') { should eq [] }
|
|
24
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
<br>
|
|
28
|
+
|
|
29
|
+
## Resource Parameter Examples
|
|
30
|
+
|
|
31
|
+
### name
|
|
32
|
+
|
|
33
|
+
The container name can also be passed with the `name` resource parameter:
|
|
34
|
+
|
|
35
|
+
describe docker_container(name: 'an-echo-server') do
|
|
36
|
+
it { should exist }
|
|
37
|
+
it { should be_running }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
### id
|
|
41
|
+
|
|
42
|
+
Alternatively, you can pass in the container id:
|
|
43
|
+
|
|
44
|
+
describe docker_container(id: '71b5df59442b') do
|
|
45
|
+
it { should exist }
|
|
46
|
+
it { should be_running }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
<br>
|
|
50
|
+
|
|
51
|
+
## Property Examples
|
|
52
|
+
|
|
53
|
+
The following examples show how to use this InSpec resource.
|
|
54
|
+
|
|
55
|
+
### id
|
|
56
|
+
|
|
57
|
+
The `id` property tests the container id:
|
|
58
|
+
|
|
59
|
+
its('id') { should eq 'sha:71b5df59...442b' }
|
|
60
|
+
|
|
61
|
+
### repo
|
|
62
|
+
|
|
63
|
+
The `repo` property tests the value of the image repository:
|
|
64
|
+
|
|
65
|
+
its('repo') { should eq 'busybox' }
|
|
66
|
+
|
|
67
|
+
### tag
|
|
68
|
+
|
|
69
|
+
The `tag` property tests the value of the image tag:
|
|
70
|
+
|
|
71
|
+
its('tag') { should eq 'latest' }
|
|
72
|
+
|
|
73
|
+
### ports
|
|
74
|
+
|
|
75
|
+
The `ports` property tests the value the docker ports:
|
|
76
|
+
|
|
77
|
+
its('ports') { should eq '0.0.0.0:1234->1234/tcp' }
|
|
78
|
+
|
|
79
|
+
### command
|
|
80
|
+
|
|
81
|
+
The `command` property tests the value of the container run command:
|
|
82
|
+
|
|
83
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Verify a running container:
|
|
87
|
+
|
|
88
|
+
describe docker_container('an-echo-server') do
|
|
89
|
+
it { should exist }
|
|
90
|
+
it { should be_running }
|
|
91
|
+
its('id') { should_not eq '' }
|
|
92
|
+
its('image') { should eq 'busybox:latest' }
|
|
93
|
+
its('repo') { should eq 'busybox' }
|
|
94
|
+
its('tag') { should eq 'latest' }
|
|
95
|
+
its('ports') { should eq [] }
|
|
96
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
<br>
|
|
100
|
+
|
|
101
|
+
## Matchers
|
|
102
|
+
|
|
103
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
104
|
+
|