inspec 2.1.81 → 2.1.83
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 +5 -5
- data/.rubocop.yml +101 -101
- data/CHANGELOG.md +3183 -3177
- data/Gemfile +56 -56
- data/LICENSE +14 -14
- data/MAINTAINERS.md +33 -33
- data/MAINTAINERS.toml +52 -52
- data/README.md +453 -453
- data/Rakefile +349 -349
- data/bin/inspec +12 -12
- data/docs/.gitignore +2 -2
- data/docs/README.md +41 -40
- data/docs/dev/control-eval.md +61 -61
- data/docs/dsl_inspec.md +258 -258
- data/docs/dsl_resource.md +100 -100
- data/docs/glossary.md +99 -99
- data/docs/habitat.md +191 -191
- data/docs/inspec_and_friends.md +114 -114
- data/docs/matchers.md +169 -169
- data/docs/migration.md +293 -293
- data/docs/platforms.md +118 -118
- data/docs/plugin_kitchen_inspec.md +50 -50
- data/docs/profiles.md +378 -378
- 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 +155 -155
- data/docs/resources/aws_cloudtrail_trails.md.erb +86 -86
- data/docs/resources/aws_cloudwatch_alarm.md.erb +91 -91
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +154 -154
- data/docs/resources/aws_config_delivery_channel.md.erb +101 -101
- data/docs/resources/aws_config_recorder.md.erb +86 -86
- data/docs/resources/aws_ec2_instance.md.erb +112 -112
- data/docs/resources/aws_ec2_instances.md.erb +79 -79
- data/docs/resources/aws_iam_access_key.md.erb +129 -129
- data/docs/resources/aws_iam_access_keys.md.erb +204 -204
- data/docs/resources/aws_iam_group.md.erb +64 -64
- data/docs/resources/aws_iam_groups.md.erb +49 -49
- data/docs/resources/aws_iam_password_policy.md.erb +82 -82
- data/docs/resources/aws_iam_policies.md.erb +87 -87
- data/docs/resources/aws_iam_policy.md.erb +245 -245
- data/docs/resources/aws_iam_role.md.erb +69 -69
- data/docs/resources/aws_iam_root_user.md.erb +76 -76
- data/docs/resources/aws_iam_user.md.erb +120 -120
- data/docs/resources/aws_iam_users.md.erb +279 -279
- data/docs/resources/aws_kms_key.md.erb +177 -177
- data/docs/resources/aws_kms_keys.md.erb +89 -89
- data/docs/resources/aws_rds_instance.md.erb +66 -66
- data/docs/resources/aws_route_table.md.erb +53 -53
- data/docs/resources/aws_route_tables.md.erb +55 -55
- data/docs/resources/aws_s3_bucket.md.erb +146 -146
- data/docs/resources/aws_s3_bucket_object.md.erb +89 -89
- data/docs/resources/aws_s3_buckets.md.erb +59 -59
- data/docs/resources/aws_security_group.md.erb +296 -296
- data/docs/resources/aws_security_groups.md.erb +97 -97
- data/docs/resources/aws_sns_subscription.md.erb +130 -130
- data/docs/resources/aws_sns_topic.md.erb +69 -69
- data/docs/resources/aws_sns_topics.md.erb +58 -58
- data/docs/resources/aws_subnet.md.erb +140 -140
- data/docs/resources/aws_subnets.md.erb +132 -132
- data/docs/resources/aws_vpc.md.erb +125 -125
- data/docs/resources/aws_vpcs.md.erb +125 -125
- data/docs/resources/azure_generic_resource.md.erb +171 -171
- 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/chocolatey_package.md.erb +58 -58
- 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 +103 -103
- 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 -526
- 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 +197 -197
- 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_defs.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 +138 -138
- 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 +91 -91
- 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 -146
- data/docs/resources/ssh_config.md.erb +73 -73
- 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 +217 -217
- 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 +23 -23
- 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 +59 -59
- data/inspec.gemspec +49 -49
- 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 +193 -193
- data/lib/bundles/inspec-compliance/api.rb +360 -360
- data/lib/bundles/inspec-compliance/api/login.rb +193 -193
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
- data/lib/bundles/inspec-compliance/cli.rb +260 -260
- data/lib/bundles/inspec-compliance/configuration.rb +103 -103
- data/lib/bundles/inspec-compliance/http.rb +125 -125
- data/lib/bundles/inspec-compliance/support.rb +36 -36
- data/lib/bundles/inspec-compliance/target.rb +112 -112
- 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 +391 -391
- 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 +247 -247
- 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 +93 -93
- data/lib/inspec/base_cli.rb +368 -368
- 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 +14 -14
- 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 +259 -259
- 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 +75 -75
- 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 +513 -513
- data/lib/inspec/profile_context.rb +208 -208
- data/lib/inspec/profile_vendor.rb +66 -66
- data/lib/inspec/reporters.rb +60 -60
- data/lib/inspec/reporters/automate.rb +76 -76
- data/lib/inspec/reporters/base.rb +25 -25
- data/lib/inspec/reporters/cli.rb +356 -356
- data/lib/inspec/reporters/json.rb +117 -117
- data/lib/inspec/reporters/json_min.rb +48 -48
- data/lib/inspec/reporters/junit.rb +78 -78
- data/lib/inspec/require_loader.rb +33 -33
- data/lib/inspec/resource.rb +190 -190
- data/lib/inspec/rule.rb +280 -280
- 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 +50 -50
- 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 +151 -151
- data/lib/resources/apache.rb +48 -48
- data/lib/resources/apache_conf.rb +149 -149
- 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 +46 -46
- data/lib/resources/aws/aws_cloudtrail_trail.rb +93 -93
- 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_delivery_channel.rb +70 -70
- data/lib/resources/aws/aws_config_recorder.rb +93 -93
- data/lib/resources/aws/aws_ec2_instance.rb +157 -157
- data/lib/resources/aws/aws_ec2_instances.rb +64 -64
- data/lib/resources/aws/aws_iam_access_key.rb +106 -106
- data/lib/resources/aws/aws_iam_access_keys.rb +149 -149
- data/lib/resources/aws/aws_iam_group.rb +58 -58
- data/lib/resources/aws/aws_iam_groups.rb +52 -52
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +53 -53
- data/lib/resources/aws/aws_iam_policy.rb +291 -291
- data/lib/resources/aws/aws_iam_role.rb +55 -55
- data/lib/resources/aws/aws_iam_root_user.rb +78 -78
- data/lib/resources/aws/aws_iam_user.rb +142 -142
- data/lib/resources/aws/aws_iam_users.rb +146 -146
- data/lib/resources/aws/aws_kms_key.rb +96 -96
- data/lib/resources/aws/aws_kms_keys.rb +53 -53
- data/lib/resources/aws/aws_rds_instance.rb +71 -71
- data/lib/resources/aws/aws_route_table.rb +63 -63
- data/lib/resources/aws/aws_route_tables.rb +60 -60
- data/lib/resources/aws/aws_s3_bucket.rb +137 -137
- data/lib/resources/aws/aws_s3_bucket_object.rb +82 -82
- data/lib/resources/aws/aws_s3_buckets.rb +51 -51
- data/lib/resources/aws/aws_security_group.rb +249 -249
- data/lib/resources/aws/aws_security_groups.rb +68 -68
- data/lib/resources/aws/aws_sns_subscription.rb +78 -78
- data/lib/resources/aws/aws_sns_topic.rb +53 -53
- data/lib/resources/aws/aws_sns_topics.rb +56 -56
- 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 +73 -73
- data/lib/resources/aws/aws_vpcs.rb +52 -52
- 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 +134 -134
- data/lib/resources/bash.rb +35 -35
- data/lib/resources/bond.rb +69 -69
- data/lib/resources/bridge.rb +122 -122
- data/lib/resources/chocolatey_package.rb +78 -78
- data/lib/resources/command.rb +73 -73
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +169 -169
- data/lib/resources/csv.rb +56 -56
- data/lib/resources/dh_params.rb +77 -77
- 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 +94 -94
- data/lib/resources/etc_group.rb +154 -154
- data/lib/resources/etc_hosts.rb +66 -66
- data/lib/resources/etc_hosts_allow_deny.rb +112 -112
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +143 -143
- data/lib/resources/gem.rb +70 -70
- data/lib/resources/groups.rb +215 -215
- data/lib/resources/grub_conf.rb +227 -227
- data/lib/resources/host.rb +306 -306
- data/lib/resources/http.rb +253 -253
- data/lib/resources/iis_app.rb +101 -101
- data/lib/resources/iis_site.rb +148 -148
- data/lib/resources/inetd_conf.rb +54 -54
- data/lib/resources/ini.rb +29 -29
- data/lib/resources/interface.rb +129 -129
- data/lib/resources/iptables.rb +80 -80
- data/lib/resources/json.rb +111 -111
- data/lib/resources/kernel_module.rb +107 -107
- data/lib/resources/kernel_parameter.rb +58 -58
- data/lib/resources/key_rsa.rb +63 -63
- data/lib/resources/limits_conf.rb +46 -46
- data/lib/resources/login_def.rb +57 -57
- data/lib/resources/mount.rb +88 -88
- data/lib/resources/mssql_session.rb +101 -101
- data/lib/resources/mysql.rb +82 -82
- data/lib/resources/mysql_conf.rb +127 -127
- data/lib/resources/mysql_session.rb +85 -85
- data/lib/resources/nginx.rb +96 -96
- data/lib/resources/nginx_conf.rb +226 -226
- data/lib/resources/npm.rb +48 -48
- data/lib/resources/ntp_conf.rb +51 -51
- 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 +86 -86
- data/lib/resources/package.rb +370 -370
- data/lib/resources/packages.rb +111 -111
- data/lib/resources/parse_config.rb +112 -112
- data/lib/resources/passwd.rb +76 -76
- data/lib/resources/pip.rb +130 -130
- data/lib/resources/platform.rb +109 -109
- data/lib/resources/port.rb +771 -771
- data/lib/resources/postgres.rb +131 -131
- data/lib/resources/postgres_conf.rb +114 -114
- data/lib/resources/postgres_hba_conf.rb +90 -90
- data/lib/resources/postgres_ident_conf.rb +79 -79
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +67 -67
- data/lib/resources/processes.rb +204 -204
- data/lib/resources/rabbitmq_conf.rb +51 -51
- data/lib/resources/registry_key.rb +297 -297
- data/lib/resources/security_policy.rb +180 -180
- data/lib/resources/service.rb +794 -794
- data/lib/resources/shadow.rb +159 -159
- data/lib/resources/ssh_conf.rb +97 -97
- 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 -68
- 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 -102
- data/lib/resources/wmi.rb +110 -110
- data/lib/resources/x509_certificate.rb +137 -137
- data/lib/resources/xinetd.rb +106 -106
- data/lib/resources/xml.rb +46 -46
- data/lib/resources/yaml.rb +43 -43
- 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/enumerable_delegation.rb +9 -9
- data/lib/utils/erlang_parser.rb +192 -192
- data/lib/utils/file_reader.rb +25 -25
- data/lib/utils/filter.rb +273 -273
- data/lib/utils/filter_array.rb +27 -27
- data/lib/utils/find_files.rb +47 -47
- 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 +105 -105
- data/lib/utils/object_traversal.rb +49 -49
- data/lib/utils/parser.rb +274 -274
- data/lib/utils/pkey_reader.rb +15 -15
- 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 +3 -3
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
class AwsKmsKeys < Inspec.resource(1)
|
|
2
|
-
name 'aws_kms_keys'
|
|
3
|
-
desc 'Verifies settings for AWS KMS Keys in bulk'
|
|
4
|
-
example '
|
|
5
|
-
describe aws_kms_keys do
|
|
6
|
-
it { should exist }
|
|
7
|
-
end
|
|
8
|
-
'
|
|
9
|
-
supports platform: 'aws'
|
|
10
|
-
|
|
11
|
-
include AwsPluralResourceMixin
|
|
12
|
-
def validate_params(resource_params)
|
|
13
|
-
unless resource_params.empty?
|
|
14
|
-
raise ArgumentError, 'aws_kms_keys does not accept resource parameters.'
|
|
15
|
-
end
|
|
16
|
-
resource_params
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Underlying FilterTable implementation.
|
|
20
|
-
filter = FilterTable.create
|
|
21
|
-
filter.add_accessor(:entries)
|
|
22
|
-
.add(:exists?) { |x| !x.entries.empty? }
|
|
23
|
-
.add(:key_arns, field: :key_arn)
|
|
24
|
-
.add(:key_ids, field: :key_id)
|
|
25
|
-
filter.connect(self, :table)
|
|
26
|
-
|
|
27
|
-
def to_s
|
|
28
|
-
'KMS Keys'
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def fetch_from_api
|
|
32
|
-
backend = BackendFactory.create(inspec_runner)
|
|
33
|
-
@table = []
|
|
34
|
-
pagination_opts = { limit: 1000 }
|
|
35
|
-
loop do
|
|
36
|
-
api_result = backend.list_keys(pagination_opts)
|
|
37
|
-
@table += api_result.keys.map(&:to_h)
|
|
38
|
-
break unless api_result.truncated
|
|
39
|
-
pagination_opts = { marker: api_result.next_marker }
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
class Backend
|
|
44
|
-
class AwsClientApi < AwsBackendBase
|
|
45
|
-
BackendFactory.set_default_backend(self)
|
|
46
|
-
self.aws_client_class = Aws::KMS::Client
|
|
47
|
-
|
|
48
|
-
def list_keys(query = {})
|
|
49
|
-
aws_service_client.list_keys(query)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
1
|
+
class AwsKmsKeys < Inspec.resource(1)
|
|
2
|
+
name 'aws_kms_keys'
|
|
3
|
+
desc 'Verifies settings for AWS KMS Keys in bulk'
|
|
4
|
+
example '
|
|
5
|
+
describe aws_kms_keys do
|
|
6
|
+
it { should exist }
|
|
7
|
+
end
|
|
8
|
+
'
|
|
9
|
+
supports platform: 'aws'
|
|
10
|
+
|
|
11
|
+
include AwsPluralResourceMixin
|
|
12
|
+
def validate_params(resource_params)
|
|
13
|
+
unless resource_params.empty?
|
|
14
|
+
raise ArgumentError, 'aws_kms_keys does not accept resource parameters.'
|
|
15
|
+
end
|
|
16
|
+
resource_params
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Underlying FilterTable implementation.
|
|
20
|
+
filter = FilterTable.create
|
|
21
|
+
filter.add_accessor(:entries)
|
|
22
|
+
.add(:exists?) { |x| !x.entries.empty? }
|
|
23
|
+
.add(:key_arns, field: :key_arn)
|
|
24
|
+
.add(:key_ids, field: :key_id)
|
|
25
|
+
filter.connect(self, :table)
|
|
26
|
+
|
|
27
|
+
def to_s
|
|
28
|
+
'KMS Keys'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def fetch_from_api
|
|
32
|
+
backend = BackendFactory.create(inspec_runner)
|
|
33
|
+
@table = []
|
|
34
|
+
pagination_opts = { limit: 1000 }
|
|
35
|
+
loop do
|
|
36
|
+
api_result = backend.list_keys(pagination_opts)
|
|
37
|
+
@table += api_result.keys.map(&:to_h)
|
|
38
|
+
break unless api_result.truncated
|
|
39
|
+
pagination_opts = { marker: api_result.next_marker }
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class Backend
|
|
44
|
+
class AwsClientApi < AwsBackendBase
|
|
45
|
+
BackendFactory.set_default_backend(self)
|
|
46
|
+
self.aws_client_class = Aws::KMS::Client
|
|
47
|
+
|
|
48
|
+
def list_keys(query = {})
|
|
49
|
+
aws_service_client.list_keys(query)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
# author: Mohamed El-Sharkawi
|
|
2
|
-
class AwsRdsInstance < Inspec.resource(1)
|
|
3
|
-
name 'aws_rds_instance'
|
|
4
|
-
desc 'Verifies settings for an rds instance'
|
|
5
|
-
example "
|
|
6
|
-
describe aws_rds_instance(db_instance_identifier: 'test-instance-id') do
|
|
7
|
-
it { should exist }
|
|
8
|
-
end
|
|
9
|
-
"
|
|
10
|
-
supports platform: 'aws'
|
|
11
|
-
|
|
12
|
-
include AwsSingularResourceMixin
|
|
13
|
-
attr_reader :db_instance_identifier
|
|
14
|
-
|
|
15
|
-
def to_s
|
|
16
|
-
"RDS Instance #{@db_instance_identifier}"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def validate_params(raw_params)
|
|
22
|
-
validated_params = check_resource_param_names(
|
|
23
|
-
raw_params: raw_params,
|
|
24
|
-
allowed_params: [:db_instance_identifier],
|
|
25
|
-
allowed_scalar_name: :db_instance_identifier,
|
|
26
|
-
allowed_scalar_type: String,
|
|
27
|
-
)
|
|
28
|
-
if validated_params.empty? or !validated_params.key?(:db_instance_identifier)
|
|
29
|
-
raise ArgumentError, 'You must provide an id for the aws_rds_instance.'
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
if validated_params.key?(:db_instance_identifier) && validated_params[:db_instance_identifier] !~ /^[a-z]{1}[0-9a-z\-]{0,62}$/
|
|
33
|
-
raise ArgumentError, 'aws_rds_instance Database Instance ID must be in the format: start with a letter followed by up to 62 letters/numbers/hyphens.'
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
validated_params
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def fetch_from_api
|
|
40
|
-
backend = BackendFactory.create(inspec_runner)
|
|
41
|
-
dsg_response = nil
|
|
42
|
-
catch_aws_errors do
|
|
43
|
-
begin
|
|
44
|
-
dsg_response = backend.describe_db_instances(db_instance_identifier: db_instance_identifier)
|
|
45
|
-
@exists = true
|
|
46
|
-
rescue Aws::RDS::Errors::DBInstanceNotFound
|
|
47
|
-
@exists = false
|
|
48
|
-
return
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
if dsg_response.db_instances.empty?
|
|
53
|
-
@exists = false
|
|
54
|
-
return
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
@db_instance_identifier = dsg_response.db_instances[0].db_instance_identifier
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# Uses the SDK API to really talk to AWS
|
|
61
|
-
class Backend
|
|
62
|
-
class AwsClientApi < AwsBackendBase
|
|
63
|
-
BackendFactory.set_default_backend(self)
|
|
64
|
-
self.aws_client_class = Aws::RDS::Client
|
|
65
|
-
|
|
66
|
-
def describe_db_instances(query)
|
|
67
|
-
aws_service_client.describe_db_instances(query)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
1
|
+
# author: Mohamed El-Sharkawi
|
|
2
|
+
class AwsRdsInstance < Inspec.resource(1)
|
|
3
|
+
name 'aws_rds_instance'
|
|
4
|
+
desc 'Verifies settings for an rds instance'
|
|
5
|
+
example "
|
|
6
|
+
describe aws_rds_instance(db_instance_identifier: 'test-instance-id') do
|
|
7
|
+
it { should exist }
|
|
8
|
+
end
|
|
9
|
+
"
|
|
10
|
+
supports platform: 'aws'
|
|
11
|
+
|
|
12
|
+
include AwsSingularResourceMixin
|
|
13
|
+
attr_reader :db_instance_identifier
|
|
14
|
+
|
|
15
|
+
def to_s
|
|
16
|
+
"RDS Instance #{@db_instance_identifier}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def validate_params(raw_params)
|
|
22
|
+
validated_params = check_resource_param_names(
|
|
23
|
+
raw_params: raw_params,
|
|
24
|
+
allowed_params: [:db_instance_identifier],
|
|
25
|
+
allowed_scalar_name: :db_instance_identifier,
|
|
26
|
+
allowed_scalar_type: String,
|
|
27
|
+
)
|
|
28
|
+
if validated_params.empty? or !validated_params.key?(:db_instance_identifier)
|
|
29
|
+
raise ArgumentError, 'You must provide an id for the aws_rds_instance.'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
if validated_params.key?(:db_instance_identifier) && validated_params[:db_instance_identifier] !~ /^[a-z]{1}[0-9a-z\-]{0,62}$/
|
|
33
|
+
raise ArgumentError, 'aws_rds_instance Database Instance ID must be in the format: start with a letter followed by up to 62 letters/numbers/hyphens.'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
validated_params
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def fetch_from_api
|
|
40
|
+
backend = BackendFactory.create(inspec_runner)
|
|
41
|
+
dsg_response = nil
|
|
42
|
+
catch_aws_errors do
|
|
43
|
+
begin
|
|
44
|
+
dsg_response = backend.describe_db_instances(db_instance_identifier: db_instance_identifier)
|
|
45
|
+
@exists = true
|
|
46
|
+
rescue Aws::RDS::Errors::DBInstanceNotFound
|
|
47
|
+
@exists = false
|
|
48
|
+
return
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
if dsg_response.db_instances.empty?
|
|
53
|
+
@exists = false
|
|
54
|
+
return
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
@db_instance_identifier = dsg_response.db_instances[0].db_instance_identifier
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Uses the SDK API to really talk to AWS
|
|
61
|
+
class Backend
|
|
62
|
+
class AwsClientApi < AwsBackendBase
|
|
63
|
+
BackendFactory.set_default_backend(self)
|
|
64
|
+
self.aws_client_class = Aws::RDS::Client
|
|
65
|
+
|
|
66
|
+
def describe_db_instances(query)
|
|
67
|
+
aws_service_client.describe_db_instances(query)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
class AwsRouteTable < Inspec.resource(1)
|
|
2
|
-
name 'aws_route_table'
|
|
3
|
-
desc 'Verifies settings for an AWS Route Table'
|
|
4
|
-
example "
|
|
5
|
-
describe aws_route_table do
|
|
6
|
-
its('route_table_id') { should cmp 'rtb-2c60ec44' }
|
|
7
|
-
end
|
|
8
|
-
"
|
|
9
|
-
supports platform: 'aws'
|
|
10
|
-
|
|
11
|
-
include AwsSingularResourceMixin
|
|
12
|
-
|
|
13
|
-
def to_s
|
|
14
|
-
"Route Table #{@route_table_id}"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
attr_reader :route_table_id, :vpc_id
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def validate_params(raw_params)
|
|
22
|
-
validated_params = check_resource_param_names(
|
|
23
|
-
raw_params: raw_params,
|
|
24
|
-
allowed_params: [:route_table_id],
|
|
25
|
-
allowed_scalar_name: :route_table_id,
|
|
26
|
-
allowed_scalar_type: String,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
if validated_params.key?(:route_table_id) &&
|
|
30
|
-
validated_params[:route_table_id] !~ /^rtb\-[0-9a-f]{8}$/
|
|
31
|
-
raise ArgumentError,
|
|
32
|
-
'aws_route_table Route Table ID must be in the' \
|
|
33
|
-
' format "rtb-" followed by 8 hexadecimal characters.'
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
validated_params
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def fetch_from_api
|
|
40
|
-
backend = BackendFactory.create(inspec_runner)
|
|
41
|
-
|
|
42
|
-
if @route_table_id.nil?
|
|
43
|
-
args = nil
|
|
44
|
-
else
|
|
45
|
-
args = { filters: [{ name: 'route-table-id', values: [@route_table_id] }] }
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
resp = backend.describe_route_tables(args)
|
|
49
|
-
routetable = resp.to_h[:route_tables]
|
|
50
|
-
@exists = !routetable.empty?
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
class Backend
|
|
54
|
-
class AwsClientApi < AwsBackendBase
|
|
55
|
-
BackendFactory.set_default_backend(self)
|
|
56
|
-
self.aws_client_class = Aws::EC2::Client
|
|
57
|
-
|
|
58
|
-
def describe_route_tables(query)
|
|
59
|
-
aws_service_client.describe_route_tables(query)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
1
|
+
class AwsRouteTable < Inspec.resource(1)
|
|
2
|
+
name 'aws_route_table'
|
|
3
|
+
desc 'Verifies settings for an AWS Route Table'
|
|
4
|
+
example "
|
|
5
|
+
describe aws_route_table do
|
|
6
|
+
its('route_table_id') { should cmp 'rtb-2c60ec44' }
|
|
7
|
+
end
|
|
8
|
+
"
|
|
9
|
+
supports platform: 'aws'
|
|
10
|
+
|
|
11
|
+
include AwsSingularResourceMixin
|
|
12
|
+
|
|
13
|
+
def to_s
|
|
14
|
+
"Route Table #{@route_table_id}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_reader :route_table_id, :vpc_id
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def validate_params(raw_params)
|
|
22
|
+
validated_params = check_resource_param_names(
|
|
23
|
+
raw_params: raw_params,
|
|
24
|
+
allowed_params: [:route_table_id],
|
|
25
|
+
allowed_scalar_name: :route_table_id,
|
|
26
|
+
allowed_scalar_type: String,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
if validated_params.key?(:route_table_id) &&
|
|
30
|
+
validated_params[:route_table_id] !~ /^rtb\-[0-9a-f]{8}$/
|
|
31
|
+
raise ArgumentError,
|
|
32
|
+
'aws_route_table Route Table ID must be in the' \
|
|
33
|
+
' format "rtb-" followed by 8 hexadecimal characters.'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
validated_params
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def fetch_from_api
|
|
40
|
+
backend = BackendFactory.create(inspec_runner)
|
|
41
|
+
|
|
42
|
+
if @route_table_id.nil?
|
|
43
|
+
args = nil
|
|
44
|
+
else
|
|
45
|
+
args = { filters: [{ name: 'route-table-id', values: [@route_table_id] }] }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
resp = backend.describe_route_tables(args)
|
|
49
|
+
routetable = resp.to_h[:route_tables]
|
|
50
|
+
@exists = !routetable.empty?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Backend
|
|
54
|
+
class AwsClientApi < AwsBackendBase
|
|
55
|
+
BackendFactory.set_default_backend(self)
|
|
56
|
+
self.aws_client_class = Aws::EC2::Client
|
|
57
|
+
|
|
58
|
+
def describe_route_tables(query)
|
|
59
|
+
aws_service_client.describe_route_tables(query)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
class AwsRouteTables < Inspec.resource(1)
|
|
2
|
-
name 'aws_route_tables'
|
|
3
|
-
desc 'Verifies settings for AWS Route Tables in bulk'
|
|
4
|
-
example '
|
|
5
|
-
describe aws_route_tables do
|
|
6
|
-
it { should exist }
|
|
7
|
-
end
|
|
8
|
-
'
|
|
9
|
-
supports platform: 'aws'
|
|
10
|
-
|
|
11
|
-
include AwsPluralResourceMixin
|
|
12
|
-
# Underlying FilterTable implementation.
|
|
13
|
-
filter = FilterTable.create
|
|
14
|
-
filter.add_accessor(:entries)
|
|
15
|
-
.add(:exists?) { |x| !x.entries.empty? }
|
|
16
|
-
.add(:vpc_ids, field: :vpc_id)
|
|
17
|
-
.add(:route_table_ids, field: :route_table_id)
|
|
18
|
-
filter.connect(self, :routes_data)
|
|
19
|
-
|
|
20
|
-
def routes_data
|
|
21
|
-
@table
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def to_s
|
|
25
|
-
'Route Tables'
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def validate_params(raw_criteria)
|
|
31
|
-
unless raw_criteria.is_a? Hash
|
|
32
|
-
raise 'Unrecognized criteria for fetching Route Tables. ' \
|
|
33
|
-
"Use 'criteria: value' format."
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# No criteria yet
|
|
37
|
-
unless raw_criteria.empty?
|
|
38
|
-
raise ArgumentError, 'aws_route_tables does not currently accept resource parameters.'
|
|
39
|
-
end
|
|
40
|
-
raw_criteria
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def fetch_from_api
|
|
44
|
-
backend = BackendFactory.create(inspec_runner)
|
|
45
|
-
catch_aws_errors do
|
|
46
|
-
@table = backend.describe_route_tables({}).to_h[:route_tables]
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
class Backend
|
|
51
|
-
class AwsClientApi < AwsBackendBase
|
|
52
|
-
BackendFactory.set_default_backend self
|
|
53
|
-
self.aws_client_class = Aws::EC2::Client
|
|
54
|
-
|
|
55
|
-
def describe_route_tables(query = {})
|
|
56
|
-
aws_service_client.describe_route_tables(query)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
1
|
+
class AwsRouteTables < Inspec.resource(1)
|
|
2
|
+
name 'aws_route_tables'
|
|
3
|
+
desc 'Verifies settings for AWS Route Tables in bulk'
|
|
4
|
+
example '
|
|
5
|
+
describe aws_route_tables do
|
|
6
|
+
it { should exist }
|
|
7
|
+
end
|
|
8
|
+
'
|
|
9
|
+
supports platform: 'aws'
|
|
10
|
+
|
|
11
|
+
include AwsPluralResourceMixin
|
|
12
|
+
# Underlying FilterTable implementation.
|
|
13
|
+
filter = FilterTable.create
|
|
14
|
+
filter.add_accessor(:entries)
|
|
15
|
+
.add(:exists?) { |x| !x.entries.empty? }
|
|
16
|
+
.add(:vpc_ids, field: :vpc_id)
|
|
17
|
+
.add(:route_table_ids, field: :route_table_id)
|
|
18
|
+
filter.connect(self, :routes_data)
|
|
19
|
+
|
|
20
|
+
def routes_data
|
|
21
|
+
@table
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_s
|
|
25
|
+
'Route Tables'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def validate_params(raw_criteria)
|
|
31
|
+
unless raw_criteria.is_a? Hash
|
|
32
|
+
raise 'Unrecognized criteria for fetching Route Tables. ' \
|
|
33
|
+
"Use 'criteria: value' format."
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# No criteria yet
|
|
37
|
+
unless raw_criteria.empty?
|
|
38
|
+
raise ArgumentError, 'aws_route_tables does not currently accept resource parameters.'
|
|
39
|
+
end
|
|
40
|
+
raw_criteria
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def fetch_from_api
|
|
44
|
+
backend = BackendFactory.create(inspec_runner)
|
|
45
|
+
catch_aws_errors do
|
|
46
|
+
@table = backend.describe_route_tables({}).to_h[:route_tables]
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Backend
|
|
51
|
+
class AwsClientApi < AwsBackendBase
|
|
52
|
+
BackendFactory.set_default_backend self
|
|
53
|
+
self.aws_client_class = Aws::EC2::Client
|
|
54
|
+
|
|
55
|
+
def describe_route_tables(query = {})
|
|
56
|
+
aws_service_client.describe_route_tables(query)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|