inspec 2.0.32 → 2.0.45
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 +2991 -2970
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +33 -33
- data/MAINTAINERS.toml +52 -52
- data/README.md +446 -437
- data/Rakefile +322 -322
- 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 +169 -168
- 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_config_recorder.md.erb +71 -71
- 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 +144 -144
- data/docs/resources/aws_iam_role.md.erb +63 -63
- 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 +151 -151
- data/docs/resources/aws_security_groups.md.erb +91 -91
- data/docs/resources/aws_sns_topic.md.erb +63 -63
- 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 -170
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -347
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -224
- 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 +89 -89
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +205 -205
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +219 -219
- 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 +526 -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 +86 -86
- data/docs/resources/http.md.erb +196 -196
- 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 +63 -63
- data/docs/resources/kernel_module.md.erb +120 -120
- 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 +146 -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 +215 -215
- 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 +355 -350
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -292
- 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 +135 -135
- 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 +54 -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 +345 -345
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +175 -175
- 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 -220
- 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 +41 -41
- 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 +159 -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_config_recorder.rb +98 -98
- 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 +149 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +52 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +53 -46
- data/lib/resources/aws/aws_iam_policy.rb +125 -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 +108 -96
- data/lib/resources/aws/aws_kms_keys.rb +53 -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 +73 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +169 -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 +101 -102
- data/lib/resources/etc_group.rb +152 -156
- data/lib/resources/etc_hosts.rb +82 -81
- data/lib/resources/etc_hosts_allow_deny.rb +122 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +143 -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 +306 -300
- data/lib/resources/http.rb +251 -250
- data/lib/resources/iis_app.rb +101 -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 +80 -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 +370 -370
- 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 +99 -100
- data/lib/resources/postgres_ident_conf.rb +76 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +53 -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 +146 -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 +68 -69
- data/lib/resources/virtualization.rb +247 -247
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +102 -105
- data/lib/resources/wmi.rb +110 -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 +2 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
val_user = attribute('user', default: 'alice', description: 'An identification for the user')
|
|
3
|
-
val_password = attribute('password', description: 'A value for the password')
|
|
4
|
-
|
|
5
|
-
describe val_user do
|
|
6
|
-
it { should eq 'bob' }
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
describe val_password do
|
|
10
|
-
it { should eq 'secret' }
|
|
11
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
val_user = attribute('user', default: 'alice', description: 'An identification for the user')
|
|
3
|
+
val_password = attribute('password', description: 'A value for the password')
|
|
4
|
+
|
|
5
|
+
describe val_user do
|
|
6
|
+
it { should eq 'bob' }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe val_password do
|
|
10
|
+
it { should eq 'secret' }
|
|
11
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
name: profile-attribute
|
|
2
|
-
title: InSpec Profile
|
|
3
|
-
maintainer: The Authors
|
|
4
|
-
copyright: The Authors
|
|
5
|
-
copyright_email: you@example.com
|
|
6
|
-
license: Apache-2.0
|
|
7
|
-
summary: An InSpec Compliance Profile
|
|
8
|
-
version: 0.1.0
|
|
1
|
+
name: profile-attribute
|
|
2
|
+
title: InSpec Profile
|
|
3
|
+
maintainer: The Authors
|
|
4
|
+
copyright: The Authors
|
|
5
|
+
copyright_email: you@example.com
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
summary: An InSpec Compliance Profile
|
|
8
|
+
version: 0.1.0
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
control 'iam_password_policy_expiration' do
|
|
2
|
-
title 'Passwords must be set to expire'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe aws_iam_password_policy do
|
|
6
|
-
it { should expire_passwords }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
1
|
+
control 'iam_password_policy_expiration' do
|
|
2
|
+
title 'Passwords must be set to expire'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe aws_iam_password_policy do
|
|
6
|
+
it { should expire_passwords }
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
control 'iam_password_policy_max_age' do
|
|
2
|
-
title 'Passwords older than 90 days are not allowed'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe aws_iam_password_policy do
|
|
6
|
-
its('max_password_age_in_days') { should cmp <=90 }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
1
|
+
control 'iam_password_policy_max_age' do
|
|
2
|
+
title 'Passwords older than 90 days are not allowed'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe aws_iam_password_policy do
|
|
6
|
+
its('max_password_age_in_days') { should cmp <=90 }
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
control 'iam_root_user_mfa' do
|
|
2
|
-
title 'MFA should be enabled for the root user'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe aws_iam_root_user do
|
|
6
|
-
it { should have_mfa_enabled }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
1
|
+
control 'iam_root_user_mfa' do
|
|
2
|
+
title 'MFA should be enabled for the root user'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe aws_iam_root_user do
|
|
6
|
+
it { should have_mfa_enabled }
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
control 'iam_users_access_key_age' do
|
|
2
|
-
title 'No access keys may be older than 90 days'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe aws_iam_access_keys.where { created_days_ago > 90 } do
|
|
6
|
-
its('entries') { should be_empty }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
1
|
+
control 'iam_users_access_key_age' do
|
|
2
|
+
title 'No access keys may be older than 90 days'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe aws_iam_access_keys.where { created_days_ago > 90 } do
|
|
6
|
+
its('entries') { should be_empty }
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
control 'iam_users_console_users_mfa' do
|
|
2
|
-
title 'Users with console access must have MFA enabled'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe aws_iam_users.where { has_console_password and not has_mfa_enabled } do
|
|
6
|
-
its('entries') { should be_empty }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
1
|
+
control 'iam_users_console_users_mfa' do
|
|
2
|
+
title 'Users with console access must have MFA enabled'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe aws_iam_users.where { has_console_password and not has_mfa_enabled } do
|
|
6
|
+
its('entries') { should be_empty }
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
name: profile-aws
|
|
2
|
-
title: AWS Example Profile
|
|
3
|
-
maintainer: Chef Software, Inc.
|
|
4
|
-
copyright: Chef Software, Inc.
|
|
5
|
-
copyright_email: support@chef.io
|
|
6
|
-
license: Apache-2.0
|
|
7
|
-
summary: Demonstrates the use of an InSpec Compliance Profile on AWS
|
|
8
|
-
version: 1.0.0
|
|
9
|
-
|
|
10
|
-
supports:
|
|
11
|
-
- platform: aws
|
|
1
|
+
name: profile-aws
|
|
2
|
+
title: AWS Example Profile
|
|
3
|
+
maintainer: Chef Software, Inc.
|
|
4
|
+
copyright: Chef Software, Inc.
|
|
5
|
+
copyright_email: support@chef.io
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
summary: Demonstrates the use of an InSpec Compliance Profile on AWS
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
|
|
10
|
+
supports:
|
|
11
|
+
- platform: aws
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
control 'azure_resource_group_example' do
|
|
2
|
-
title 'Check if the Example Resource Group matches expectations'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe azure_resource_group(name: 'Inspec-Azure') do
|
|
6
|
-
# Check if the Resource Group is located in the correct region
|
|
7
|
-
its('location') { should cmp 'westeurope' }
|
|
8
|
-
|
|
9
|
-
# Check if the Resource Group has tags
|
|
10
|
-
it { should have_tags }
|
|
11
|
-
|
|
12
|
-
# Check if the number of VMs in the Resource Group is correct
|
|
13
|
-
its('vm_count') { should eq 3 }
|
|
14
|
-
|
|
15
|
-
# Check if the number of public IPs is correct
|
|
16
|
-
its('public_ip_count') { should eq 1 }
|
|
17
|
-
|
|
18
|
-
# Check if the number of Network Security Groups is correct
|
|
19
|
-
its('nsg_count') { should eq 1 }
|
|
20
|
-
|
|
21
|
-
# Check if the number of Storage Accounts is correct
|
|
22
|
-
its('sa_count') { should eq 1 }
|
|
23
|
-
end
|
|
24
|
-
end
|
|
1
|
+
control 'azure_resource_group_example' do
|
|
2
|
+
title 'Check if the Example Resource Group matches expectations'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe azure_resource_group(name: 'Inspec-Azure') do
|
|
6
|
+
# Check if the Resource Group is located in the correct region
|
|
7
|
+
its('location') { should cmp 'westeurope' }
|
|
8
|
+
|
|
9
|
+
# Check if the Resource Group has tags
|
|
10
|
+
it { should have_tags }
|
|
11
|
+
|
|
12
|
+
# Check if the number of VMs in the Resource Group is correct
|
|
13
|
+
its('vm_count') { should eq 3 }
|
|
14
|
+
|
|
15
|
+
# Check if the number of public IPs is correct
|
|
16
|
+
its('public_ip_count') { should eq 1 }
|
|
17
|
+
|
|
18
|
+
# Check if the number of Network Security Groups is correct
|
|
19
|
+
its('nsg_count') { should eq 1 }
|
|
20
|
+
|
|
21
|
+
# Check if the number of Storage Accounts is correct
|
|
22
|
+
its('sa_count') { should eq 1 }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
control 'azure_vm_example' do
|
|
2
|
-
title 'Check if the Example VM matches expectations'
|
|
3
|
-
impact 1.0
|
|
4
|
-
|
|
5
|
-
describe azure_generic_resource(group_name: 'Inspec-Azure', name: 'Windows-Example-VM') do
|
|
6
|
-
# Check if the VM is located in the correct region
|
|
7
|
-
its('location') { should cmp 'westeurope' }
|
|
8
|
-
|
|
9
|
-
# Check if the VM has tags
|
|
10
|
-
it { should_not have_tags }
|
|
11
|
-
|
|
12
|
-
# Check if the VM has the correct image
|
|
13
|
-
its('properties.storageProfile.imageReference.publisher') { should cmp 'MicrosoftWindowsServer' }
|
|
14
|
-
its('properties.storageProfile.imageReference.offer') { should cmp 'WindowsServer' }
|
|
15
|
-
its('properties.storageProfile.imageReference.sku') { should cmp '2016-Datacenter' }
|
|
16
|
-
|
|
17
|
-
# Check if the VM has the correct size
|
|
18
|
-
its('properties.hardwareProfile.vmSize') { should cmp 'Standard_DS2_v2' }
|
|
19
|
-
|
|
20
|
-
# Check if the VM has the correct computer name
|
|
21
|
-
its('properties.osProfile.computerName') { should eq 'SomethingObscure' }
|
|
22
|
-
|
|
23
|
-
# Check if the VM has the correct admin username
|
|
24
|
-
its('properties.osProfile.adminUsername') { should eq 'SomethingSecure' }
|
|
25
|
-
|
|
26
|
-
# Check if the VM has automatic updates enabled
|
|
27
|
-
its('properties.osProfile.windowsConfiguration.enableAutomaticUpdates') { should be true }
|
|
28
|
-
end
|
|
29
|
-
end
|
|
1
|
+
control 'azure_vm_example' do
|
|
2
|
+
title 'Check if the Example VM matches expectations'
|
|
3
|
+
impact 1.0
|
|
4
|
+
|
|
5
|
+
describe azure_generic_resource(group_name: 'Inspec-Azure', name: 'Windows-Example-VM') do
|
|
6
|
+
# Check if the VM is located in the correct region
|
|
7
|
+
its('location') { should cmp 'westeurope' }
|
|
8
|
+
|
|
9
|
+
# Check if the VM has tags
|
|
10
|
+
it { should_not have_tags }
|
|
11
|
+
|
|
12
|
+
# Check if the VM has the correct image
|
|
13
|
+
its('properties.storageProfile.imageReference.publisher') { should cmp 'MicrosoftWindowsServer' }
|
|
14
|
+
its('properties.storageProfile.imageReference.offer') { should cmp 'WindowsServer' }
|
|
15
|
+
its('properties.storageProfile.imageReference.sku') { should cmp '2016-Datacenter' }
|
|
16
|
+
|
|
17
|
+
# Check if the VM has the correct size
|
|
18
|
+
its('properties.hardwareProfile.vmSize') { should cmp 'Standard_DS2_v2' }
|
|
19
|
+
|
|
20
|
+
# Check if the VM has the correct computer name
|
|
21
|
+
its('properties.osProfile.computerName') { should eq 'SomethingObscure' }
|
|
22
|
+
|
|
23
|
+
# Check if the VM has the correct admin username
|
|
24
|
+
its('properties.osProfile.adminUsername') { should eq 'SomethingSecure' }
|
|
25
|
+
|
|
26
|
+
# Check if the VM has automatic updates enabled
|
|
27
|
+
its('properties.osProfile.windowsConfiguration.enableAutomaticUpdates') { should be true }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
name: profile-azure
|
|
2
|
-
title: Azure Example Profile
|
|
3
|
-
maintainer: Chef Software, Inc.
|
|
4
|
-
copyright: Chef Software, Inc.
|
|
5
|
-
copyright_email: support@chef.io
|
|
6
|
-
license: Apache-2.0
|
|
7
|
-
summary: Demonstrates the use of an InSpec Compliance Profile on Azure
|
|
8
|
-
version: 1.0.0
|
|
9
|
-
|
|
10
|
-
supports:
|
|
11
|
-
- platform: azure
|
|
1
|
+
name: profile-azure
|
|
2
|
+
title: Azure Example Profile
|
|
3
|
+
maintainer: Chef Software, Inc.
|
|
4
|
+
copyright: Chef Software, Inc.
|
|
5
|
+
copyright_email: support@chef.io
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
summary: Demonstrates the use of an InSpec Compliance Profile on Azure
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
|
|
10
|
+
supports:
|
|
11
|
+
- platform: azure
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# Example InSpec Profile with Sensitive failures
|
|
2
|
-
|
|
3
|
-
This profile demostrates resources flagged as sensitive
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
$ inspec exec examples/profile-sensitive
|
|
9
|
-
....
|
|
10
|
-
|
|
11
|
-
bob should
|
|
12
|
-
∅ eq "billy"
|
|
13
|
-
|
|
14
|
-
expected: "billy"
|
|
15
|
-
got: "bob"
|
|
16
|
-
|
|
17
|
-
(compared using ==)
|
|
18
|
-
|
|
19
|
-
sensitivepassword should
|
|
20
|
-
∅ eq "secret"
|
|
21
|
-
*** sensitive output suppressed ***
|
|
22
|
-
bob should
|
|
23
|
-
✔ eq "bob"
|
|
24
|
-
sensitivepassword should
|
|
25
|
-
✔ eq "sensitivepassword"
|
|
26
|
-
|
|
27
|
-
Test Summary: 2 successful, 2 failures, 0 skipped
|
|
28
|
-
|
|
29
|
-
```
|
|
1
|
+
# Example InSpec Profile with Sensitive failures
|
|
2
|
+
|
|
3
|
+
This profile demostrates resources flagged as sensitive
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
$ inspec exec examples/profile-sensitive
|
|
9
|
+
....
|
|
10
|
+
|
|
11
|
+
bob should
|
|
12
|
+
∅ eq "billy"
|
|
13
|
+
|
|
14
|
+
expected: "billy"
|
|
15
|
+
got: "bob"
|
|
16
|
+
|
|
17
|
+
(compared using ==)
|
|
18
|
+
|
|
19
|
+
sensitivepassword should
|
|
20
|
+
∅ eq "secret"
|
|
21
|
+
*** sensitive output suppressed ***
|
|
22
|
+
bob should
|
|
23
|
+
✔ eq "bob"
|
|
24
|
+
sensitivepassword should
|
|
25
|
+
✔ eq "sensitivepassword"
|
|
26
|
+
|
|
27
|
+
Test Summary: 2 successful, 2 failures, 0 skipped
|
|
28
|
+
|
|
29
|
+
```
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
|
-
describe 'bob' do
|
|
4
|
-
it { should eq 'billy' }
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
describe 'sensitivepassword', :sensitive do
|
|
8
|
-
it { should eq 'secret' }
|
|
9
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe 'bob' do
|
|
4
|
+
it { should eq 'billy' }
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
describe 'sensitivepassword', :sensitive do
|
|
8
|
+
it { should eq 'secret' }
|
|
9
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
|
-
describe 'bob' do
|
|
4
|
-
it { should eq 'bob' }
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
describe 'sensitivepassword', :sensitive do
|
|
8
|
-
it { should eq 'sensitivepassword' }
|
|
9
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
describe 'bob' do
|
|
4
|
+
it { should eq 'bob' }
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
describe 'sensitivepassword', :sensitive do
|
|
8
|
+
it { should eq 'sensitivepassword' }
|
|
9
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
name: profile-sensitive
|
|
2
|
-
title: InSpec Sensitive Profile
|
|
3
|
-
maintainer: The Authors
|
|
4
|
-
copyright: The Authors
|
|
5
|
-
copyright_email: you@example.com
|
|
6
|
-
license: Apache-2.0
|
|
7
|
-
summary: An InSpec Compliance Profile
|
|
8
|
-
version: 0.1.0
|
|
1
|
+
name: profile-sensitive
|
|
2
|
+
title: InSpec Sensitive Profile
|
|
3
|
+
maintainer: The Authors
|
|
4
|
+
copyright: The Authors
|
|
5
|
+
copyright_email: you@example.com
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
summary: An InSpec Compliance Profile
|
|
8
|
+
version: 0.1.0
|
data/examples/profile/README.md
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# Example InSpec Profile
|
|
2
|
-
|
|
3
|
-
This example shows the implementation of an InSpec [profile](../../docs/profiles.md).
|
|
4
|
-
|
|
5
|
-
## Verify a profile
|
|
6
|
-
|
|
7
|
-
InSpec ships with built-in features to verify a profile structure.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
$ inspec check examples/profile
|
|
11
|
-
Summary
|
|
12
|
-
-------
|
|
13
|
-
Location: examples/profile
|
|
14
|
-
Profile: profile
|
|
15
|
-
Controls: 4
|
|
16
|
-
Timestamp: 2016-03-24T16:20:21+00:00
|
|
17
|
-
Valid: true
|
|
18
|
-
|
|
19
|
-
Errors
|
|
20
|
-
------
|
|
21
|
-
|
|
22
|
-
Warnings
|
|
23
|
-
--------
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Execute a profile
|
|
27
|
-
|
|
28
|
-
To run all **supported** controls on a local machine use `inspec exec /path/to/profile`.
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
$ inspec exec examples/profile
|
|
32
|
-
..
|
|
33
|
-
|
|
34
|
-
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
|
35
|
-
8 examples, 0 failures
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Execute a specific control from a profile
|
|
39
|
-
|
|
40
|
-
To run one control from the profile use `inspec exec /path/to/profile --controls name`.
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
$ inspec exec examples/profile --controls tmp-1.0
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
|
47
|
-
1 examples, 0 failures
|
|
48
|
-
```
|
|
1
|
+
# Example InSpec Profile
|
|
2
|
+
|
|
3
|
+
This example shows the implementation of an InSpec [profile](../../docs/profiles.md).
|
|
4
|
+
|
|
5
|
+
## Verify a profile
|
|
6
|
+
|
|
7
|
+
InSpec ships with built-in features to verify a profile structure.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
$ inspec check examples/profile
|
|
11
|
+
Summary
|
|
12
|
+
-------
|
|
13
|
+
Location: examples/profile
|
|
14
|
+
Profile: profile
|
|
15
|
+
Controls: 4
|
|
16
|
+
Timestamp: 2016-03-24T16:20:21+00:00
|
|
17
|
+
Valid: true
|
|
18
|
+
|
|
19
|
+
Errors
|
|
20
|
+
------
|
|
21
|
+
|
|
22
|
+
Warnings
|
|
23
|
+
--------
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Execute a profile
|
|
27
|
+
|
|
28
|
+
To run all **supported** controls on a local machine use `inspec exec /path/to/profile`.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ inspec exec examples/profile
|
|
32
|
+
..
|
|
33
|
+
|
|
34
|
+
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
|
35
|
+
8 examples, 0 failures
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Execute a specific control from a profile
|
|
39
|
+
|
|
40
|
+
To run one control from the profile use `inspec exec /path/to/profile --controls name`.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
$ inspec exec examples/profile --controls tmp-1.0
|
|
44
|
+
.
|
|
45
|
+
|
|
46
|
+
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
|
47
|
+
1 examples, 0 failures
|
|
48
|
+
```
|