inspec 2.3.10 → 2.3.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -13
  3. data/etc/plugin_filters.json +25 -0
  4. data/inspec.gemspec +3 -3
  5. data/lib/bundles/inspec-compliance/api.rb +3 -0
  6. data/lib/bundles/inspec-compliance/configuration.rb +3 -0
  7. data/lib/bundles/inspec-compliance/http.rb +3 -0
  8. data/lib/bundles/inspec-compliance/support.rb +3 -0
  9. data/lib/bundles/inspec-compliance/target.rb +3 -0
  10. data/lib/inspec/objects/attribute.rb +3 -0
  11. data/lib/inspec/plugin/v2.rb +3 -0
  12. data/lib/inspec/plugin/v2/filter.rb +62 -0
  13. data/lib/inspec/plugin/v2/installer.rb +21 -1
  14. data/lib/inspec/plugin/v2/loader.rb +4 -0
  15. data/lib/inspec/profile.rb +3 -1
  16. data/lib/inspec/version.rb +1 -1
  17. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +25 -3
  18. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +65 -11
  19. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +5 -1
  20. data/lib/resources/package.rb +1 -1
  21. metadata +5 -253
  22. data/MAINTAINERS.toml +0 -52
  23. data/docs/.gitignore +0 -2
  24. data/docs/README.md +0 -41
  25. data/docs/dev/control-eval.md +0 -62
  26. data/docs/dev/filtertable-internals.md +0 -353
  27. data/docs/dev/filtertable-usage.md +0 -533
  28. data/docs/dev/integration-testing.md +0 -31
  29. data/docs/dev/plugins.md +0 -323
  30. data/docs/dsl_inspec.md +0 -354
  31. data/docs/dsl_resource.md +0 -100
  32. data/docs/glossary.md +0 -381
  33. data/docs/habitat.md +0 -193
  34. data/docs/inspec_and_friends.md +0 -114
  35. data/docs/matchers.md +0 -161
  36. data/docs/migration.md +0 -293
  37. data/docs/platforms.md +0 -119
  38. data/docs/plugin_kitchen_inspec.md +0 -60
  39. data/docs/plugins.md +0 -57
  40. data/docs/profiles.md +0 -576
  41. data/docs/reporters.md +0 -170
  42. data/docs/resources/aide_conf.md.erb +0 -86
  43. data/docs/resources/apache.md.erb +0 -77
  44. data/docs/resources/apache_conf.md.erb +0 -78
  45. data/docs/resources/apt.md.erb +0 -81
  46. data/docs/resources/audit_policy.md.erb +0 -57
  47. data/docs/resources/auditd.md.erb +0 -89
  48. data/docs/resources/auditd_conf.md.erb +0 -78
  49. data/docs/resources/aws_cloudtrail_trail.md.erb +0 -165
  50. data/docs/resources/aws_cloudtrail_trails.md.erb +0 -96
  51. data/docs/resources/aws_cloudwatch_alarm.md.erb +0 -101
  52. data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +0 -164
  53. data/docs/resources/aws_config_delivery_channel.md.erb +0 -111
  54. data/docs/resources/aws_config_recorder.md.erb +0 -96
  55. data/docs/resources/aws_ebs_volume.md.erb +0 -76
  56. data/docs/resources/aws_ebs_volumes.md.erb +0 -86
  57. data/docs/resources/aws_ec2_instance.md.erb +0 -122
  58. data/docs/resources/aws_ec2_instances.md.erb +0 -89
  59. data/docs/resources/aws_elb.md.erb +0 -154
  60. data/docs/resources/aws_elbs.md.erb +0 -252
  61. data/docs/resources/aws_flow_log.md.erb +0 -128
  62. data/docs/resources/aws_iam_access_key.md.erb +0 -139
  63. data/docs/resources/aws_iam_access_keys.md.erb +0 -214
  64. data/docs/resources/aws_iam_group.md.erb +0 -74
  65. data/docs/resources/aws_iam_groups.md.erb +0 -92
  66. data/docs/resources/aws_iam_password_policy.md.erb +0 -92
  67. data/docs/resources/aws_iam_policies.md.erb +0 -97
  68. data/docs/resources/aws_iam_policy.md.erb +0 -264
  69. data/docs/resources/aws_iam_role.md.erb +0 -79
  70. data/docs/resources/aws_iam_root_user.md.erb +0 -86
  71. data/docs/resources/aws_iam_user.md.erb +0 -130
  72. data/docs/resources/aws_iam_users.md.erb +0 -289
  73. data/docs/resources/aws_kms_key.md.erb +0 -187
  74. data/docs/resources/aws_kms_keys.md.erb +0 -99
  75. data/docs/resources/aws_rds_instance.md.erb +0 -76
  76. data/docs/resources/aws_route_table.md.erb +0 -63
  77. data/docs/resources/aws_route_tables.md.erb +0 -65
  78. data/docs/resources/aws_s3_bucket.md.erb +0 -156
  79. data/docs/resources/aws_s3_bucket_object.md.erb +0 -99
  80. data/docs/resources/aws_s3_buckets.md.erb +0 -69
  81. data/docs/resources/aws_security_group.md.erb +0 -323
  82. data/docs/resources/aws_security_groups.md.erb +0 -107
  83. data/docs/resources/aws_sns_subscription.md.erb +0 -140
  84. data/docs/resources/aws_sns_topic.md.erb +0 -79
  85. data/docs/resources/aws_sns_topics.md.erb +0 -68
  86. data/docs/resources/aws_subnet.md.erb +0 -150
  87. data/docs/resources/aws_subnets.md.erb +0 -142
  88. data/docs/resources/aws_vpc.md.erb +0 -135
  89. data/docs/resources/aws_vpcs.md.erb +0 -135
  90. data/docs/resources/azure_generic_resource.md.erb +0 -183
  91. data/docs/resources/azure_resource_group.md.erb +0 -294
  92. data/docs/resources/azure_virtual_machine.md.erb +0 -357
  93. data/docs/resources/azure_virtual_machine_data_disk.md.erb +0 -234
  94. data/docs/resources/bash.md.erb +0 -85
  95. data/docs/resources/bond.md.erb +0 -100
  96. data/docs/resources/bridge.md.erb +0 -67
  97. data/docs/resources/bsd_service.md.erb +0 -77
  98. data/docs/resources/chocolatey_package.md.erb +0 -68
  99. data/docs/resources/command.md.erb +0 -176
  100. data/docs/resources/cpan.md.erb +0 -89
  101. data/docs/resources/cran.md.erb +0 -74
  102. data/docs/resources/crontab.md.erb +0 -103
  103. data/docs/resources/csv.md.erb +0 -64
  104. data/docs/resources/dh_params.md.erb +0 -221
  105. data/docs/resources/directory.md.erb +0 -40
  106. data/docs/resources/docker.md.erb +0 -240
  107. data/docs/resources/docker_container.md.erb +0 -113
  108. data/docs/resources/docker_image.md.erb +0 -104
  109. data/docs/resources/docker_plugin.md.erb +0 -80
  110. data/docs/resources/docker_service.md.erb +0 -124
  111. data/docs/resources/elasticsearch.md.erb +0 -252
  112. data/docs/resources/etc_fstab.md.erb +0 -135
  113. data/docs/resources/etc_group.md.erb +0 -85
  114. data/docs/resources/etc_hosts.md.erb +0 -88
  115. data/docs/resources/etc_hosts_allow.md.erb +0 -84
  116. data/docs/resources/etc_hosts_deny.md.erb +0 -84
  117. data/docs/resources/file.md.erb +0 -543
  118. data/docs/resources/filesystem.md.erb +0 -51
  119. data/docs/resources/firewalld.md.erb +0 -117
  120. data/docs/resources/gem.md.erb +0 -108
  121. data/docs/resources/group.md.erb +0 -71
  122. data/docs/resources/grub_conf.md.erb +0 -111
  123. data/docs/resources/host.md.erb +0 -96
  124. data/docs/resources/http.md.erb +0 -207
  125. data/docs/resources/iis_app.md.erb +0 -132
  126. data/docs/resources/iis_site.md.erb +0 -145
  127. data/docs/resources/inetd_conf.md.erb +0 -104
  128. data/docs/resources/ini.md.erb +0 -86
  129. data/docs/resources/interface.md.erb +0 -68
  130. data/docs/resources/iptables.md.erb +0 -74
  131. data/docs/resources/json.md.erb +0 -73
  132. data/docs/resources/kernel_module.md.erb +0 -130
  133. data/docs/resources/kernel_parameter.md.erb +0 -63
  134. data/docs/resources/key_rsa.md.erb +0 -95
  135. data/docs/resources/launchd_service.md.erb +0 -67
  136. data/docs/resources/limits_conf.md.erb +0 -85
  137. data/docs/resources/login_defs.md.erb +0 -81
  138. data/docs/resources/mount.md.erb +0 -79
  139. data/docs/resources/mssql_session.md.erb +0 -78
  140. data/docs/resources/mysql_conf.md.erb +0 -109
  141. data/docs/resources/mysql_session.md.erb +0 -84
  142. data/docs/resources/nginx.md.erb +0 -89
  143. data/docs/resources/nginx_conf.md.erb +0 -148
  144. data/docs/resources/npm.md.erb +0 -78
  145. data/docs/resources/ntp_conf.md.erb +0 -70
  146. data/docs/resources/oneget.md.erb +0 -63
  147. data/docs/resources/oracledb_session.md.erb +0 -103
  148. data/docs/resources/os.md.erb +0 -153
  149. data/docs/resources/os_env.md.erb +0 -101
  150. data/docs/resources/package.md.erb +0 -130
  151. data/docs/resources/packages.md.erb +0 -77
  152. data/docs/resources/parse_config.md.erb +0 -113
  153. data/docs/resources/parse_config_file.md.erb +0 -148
  154. data/docs/resources/passwd.md.erb +0 -151
  155. data/docs/resources/pip.md.erb +0 -77
  156. data/docs/resources/port.md.erb +0 -147
  157. data/docs/resources/postgres_conf.md.erb +0 -89
  158. data/docs/resources/postgres_hba_conf.md.erb +0 -103
  159. data/docs/resources/postgres_ident_conf.md.erb +0 -86
  160. data/docs/resources/postgres_session.md.erb +0 -79
  161. data/docs/resources/powershell.md.erb +0 -112
  162. data/docs/resources/processes.md.erb +0 -119
  163. data/docs/resources/rabbitmq_config.md.erb +0 -51
  164. data/docs/resources/registry_key.md.erb +0 -197
  165. data/docs/resources/runit_service.md.erb +0 -67
  166. data/docs/resources/security_policy.md.erb +0 -57
  167. data/docs/resources/service.md.erb +0 -131
  168. data/docs/resources/shadow.md.erb +0 -267
  169. data/docs/resources/ssh_config.md.erb +0 -83
  170. data/docs/resources/sshd_config.md.erb +0 -93
  171. data/docs/resources/ssl.md.erb +0 -129
  172. data/docs/resources/sys_info.md.erb +0 -52
  173. data/docs/resources/systemd_service.md.erb +0 -67
  174. data/docs/resources/sysv_service.md.erb +0 -67
  175. data/docs/resources/upstart_service.md.erb +0 -67
  176. data/docs/resources/user.md.erb +0 -150
  177. data/docs/resources/users.md.erb +0 -137
  178. data/docs/resources/vbscript.md.erb +0 -65
  179. data/docs/resources/virtualization.md.erb +0 -67
  180. data/docs/resources/windows_feature.md.erb +0 -69
  181. data/docs/resources/windows_hotfix.md.erb +0 -63
  182. data/docs/resources/windows_task.md.erb +0 -95
  183. data/docs/resources/wmi.md.erb +0 -91
  184. data/docs/resources/x509_certificate.md.erb +0 -161
  185. data/docs/resources/xinetd_conf.md.erb +0 -166
  186. data/docs/resources/xml.md.erb +0 -95
  187. data/docs/resources/yaml.md.erb +0 -79
  188. data/docs/resources/yum.md.erb +0 -108
  189. data/docs/resources/zfs_dataset.md.erb +0 -63
  190. data/docs/resources/zfs_pool.md.erb +0 -57
  191. data/docs/shared/matcher_be.md.erb +0 -1
  192. data/docs/shared/matcher_cmp.md.erb +0 -43
  193. data/docs/shared/matcher_eq.md.erb +0 -3
  194. data/docs/shared/matcher_include.md.erb +0 -1
  195. data/docs/shared/matcher_match.md.erb +0 -1
  196. data/docs/shell.md +0 -217
  197. data/docs/style.md +0 -178
  198. data/examples/README.md +0 -8
  199. data/examples/custom-resource/README.md +0 -3
  200. data/examples/custom-resource/controls/example.rb +0 -7
  201. data/examples/custom-resource/inspec.yml +0 -8
  202. data/examples/custom-resource/libraries/batsignal.rb +0 -20
  203. data/examples/custom-resource/libraries/gordon.rb +0 -21
  204. data/examples/inheritance/README.md +0 -65
  205. data/examples/inheritance/controls/example.rb +0 -14
  206. data/examples/inheritance/inspec.yml +0 -16
  207. data/examples/kitchen-ansible/.kitchen.yml +0 -25
  208. data/examples/kitchen-ansible/Gemfile +0 -19
  209. data/examples/kitchen-ansible/README.md +0 -53
  210. data/examples/kitchen-ansible/files/nginx.repo +0 -6
  211. data/examples/kitchen-ansible/tasks/main.yml +0 -16
  212. data/examples/kitchen-ansible/test/integration/default/default.yml +0 -5
  213. data/examples/kitchen-ansible/test/integration/default/web_spec.rb +0 -28
  214. data/examples/kitchen-chef/.kitchen.yml +0 -20
  215. data/examples/kitchen-chef/Berksfile +0 -3
  216. data/examples/kitchen-chef/Gemfile +0 -19
  217. data/examples/kitchen-chef/README.md +0 -27
  218. data/examples/kitchen-chef/metadata.rb +0 -7
  219. data/examples/kitchen-chef/recipes/default.rb +0 -6
  220. data/examples/kitchen-chef/recipes/nginx.rb +0 -30
  221. data/examples/kitchen-chef/test/integration/default/web_spec.rb +0 -28
  222. data/examples/kitchen-puppet/.kitchen.yml +0 -23
  223. data/examples/kitchen-puppet/Gemfile +0 -20
  224. data/examples/kitchen-puppet/Puppetfile +0 -25
  225. data/examples/kitchen-puppet/README.md +0 -53
  226. data/examples/kitchen-puppet/manifests/site.pp +0 -33
  227. data/examples/kitchen-puppet/metadata.json +0 -11
  228. data/examples/kitchen-puppet/modules/.gitkeep +0 -0
  229. data/examples/kitchen-puppet/test/integration/default/web_spec.rb +0 -28
  230. data/examples/meta-profile/README.md +0 -37
  231. data/examples/meta-profile/controls/example.rb +0 -13
  232. data/examples/meta-profile/inspec.yml +0 -13
  233. data/examples/plugins/inspec-resource-lister/Gemfile +0 -12
  234. data/examples/plugins/inspec-resource-lister/LICENSE +0 -13
  235. data/examples/plugins/inspec-resource-lister/README.md +0 -62
  236. data/examples/plugins/inspec-resource-lister/Rakefile +0 -40
  237. data/examples/plugins/inspec-resource-lister/inspec-resource-lister.gemspec +0 -45
  238. data/examples/plugins/inspec-resource-lister/lib/inspec-resource-lister.rb +0 -16
  239. data/examples/plugins/inspec-resource-lister/lib/inspec-resource-lister/cli_command.rb +0 -70
  240. data/examples/plugins/inspec-resource-lister/lib/inspec-resource-lister/plugin.rb +0 -55
  241. data/examples/plugins/inspec-resource-lister/lib/inspec-resource-lister/version.rb +0 -10
  242. data/examples/plugins/inspec-resource-lister/test/fixtures/README.md +0 -24
  243. data/examples/plugins/inspec-resource-lister/test/functional/README.md +0 -18
  244. data/examples/plugins/inspec-resource-lister/test/functional/inspec_resource_lister_test.rb +0 -110
  245. data/examples/plugins/inspec-resource-lister/test/helper.rb +0 -26
  246. data/examples/plugins/inspec-resource-lister/test/unit/README.md +0 -17
  247. data/examples/plugins/inspec-resource-lister/test/unit/cli_args_test.rb +0 -64
  248. data/examples/plugins/inspec-resource-lister/test/unit/plugin_def_test.rb +0 -51
  249. data/examples/profile-attribute.yml +0 -2
  250. data/examples/profile-attribute/README.md +0 -14
  251. data/examples/profile-attribute/controls/example.rb +0 -11
  252. data/examples/profile-attribute/inspec.yml +0 -8
  253. data/examples/profile-aws/controls/iam_password_policy_expiration.rb +0 -8
  254. data/examples/profile-aws/controls/iam_password_policy_max_age.rb +0 -8
  255. data/examples/profile-aws/controls/iam_root_user_mfa.rb +0 -8
  256. data/examples/profile-aws/controls/iam_users_access_key_age.rb +0 -8
  257. data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +0 -8
  258. data/examples/profile-aws/inspec.yml +0 -11
  259. data/examples/profile-azure/controls/azure_resource_group_example.rb +0 -24
  260. data/examples/profile-azure/controls/azure_vm_example.rb +0 -29
  261. data/examples/profile-azure/inspec.yml +0 -11
  262. data/examples/profile-sensitive/README.md +0 -29
  263. data/examples/profile-sensitive/controls/sensitive-failures.rb +0 -9
  264. data/examples/profile-sensitive/controls/sensitive.rb +0 -9
  265. data/examples/profile-sensitive/inspec.yml +0 -8
  266. data/examples/profile/README.md +0 -48
  267. data/examples/profile/controls/example.rb +0 -24
  268. data/examples/profile/controls/gordon.rb +0 -36
  269. data/examples/profile/controls/meta.rb +0 -36
  270. data/examples/profile/inspec.yml +0 -11
  271. data/examples/profile/libraries/gordon_config.rb +0 -59
@@ -1,101 +0,0 @@
1
- ---
2
- title: About the aws_cloudwatch_alarm Resource
3
- platform: aws
4
- ---
5
-
6
- # aws\_cloudwatch\_alarm
7
-
8
- Use the `aws_cloudwatch_alarm` InSpec audit resource to test properties of a single Cloudwatch Alarm.
9
-
10
- Cloudwatch Alarms are currently identified using the metric name and metric namespace. Future work may allow other approaches to identifying alarms.
11
-
12
- <br>
13
-
14
- ## Availability
15
-
16
- ### Installation
17
-
18
- This resource is distributed along with InSpec itself. You can use it automatically.
19
-
20
- ### Version
21
-
22
- This resource first became available in v2.0.16 of InSpec.
23
-
24
- ## Syntax
25
-
26
- An `aws_cloudwatch_alarm` resource block searches for a Cloudwatch Alarm, specified by several search options. If more than one Alarm matches, an error occurs.
27
-
28
- # Look for a specific alarm
29
- aws_cloudwatch_alarm(
30
- metric_name: 'my-metric-name',
31
- metric_namespace: 'my-metric-namespace',
32
- ) do
33
- it { should exist }
34
- end
35
-
36
- <br>
37
-
38
- ## Examples
39
-
40
- The following examples show how to use this InSpec audit resource.
41
-
42
- ### Ensure an Alarm has at least one alarm action
43
-
44
- describe aws_cloudwatch_alarm(
45
- metric: 'my-metric-name',
46
- metric_namespace: 'my-metric-namespace',
47
- ) do
48
- its('alarm_actions') { should_not be_empty }
49
- end
50
-
51
- <br>
52
-
53
- ## Properties
54
-
55
- * `alarm_actions`
56
-
57
- ## Property Examples
58
-
59
- ### alarm\_actions
60
-
61
- `alarm_actions` returns a list of strings. Each string is the ARN of an action that will be taken should the alarm be triggered.
62
-
63
- # Ensure that the alarm has at least one action
64
- describe aws_cloudwatch_alarm(
65
- metric: 'bed-metric',
66
- metric_namespace: 'my-metric-namespace',
67
- ) do
68
- its('alarm_actions') { should_not be_empty }
69
- end
70
-
71
- <br>
72
-
73
- ## Matchers
74
-
75
- This InSpec audit resource has the following special matchers. For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
76
-
77
- ### exists
78
-
79
- The control will pass if a Cloudwatch Alarm could be found. Use `should_not` if you expect zero matches.
80
-
81
- # Expect good metric
82
- describe aws_cloudwatch_alarm(
83
- metric: 'good-metric',
84
- metric_namespace: 'my-metric-namespace',
85
- ) do
86
- it { should exist }
87
- end
88
-
89
- # Disallow alarms based on bad-metric
90
- describe aws_cloudwatch_alarm(
91
- metric: 'bed-metric',
92
- metric_namespace: 'my-metric-namespace',
93
- ) do
94
- it { should_not exist }
95
- end
96
-
97
- ## AWS Permissions
98
-
99
- Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `cloudwatch:DescribeAlarmsForMetric` action with Effect set to Allow.
100
-
101
- You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon CloudWatch](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html).
@@ -1,164 +0,0 @@
1
- ---
2
- title: About the aws_cloudwatch_log_metric_filter Resource
3
- platform: aws
4
- ---
5
-
6
- # aws\_cloudwatch\_log\_metric\_filter
7
-
8
- Use the `aws_cloudwatch_log_metric_filter` InSpec audit resource to search for and test properties of individual AWS Cloudwatch Log Metric Filters.
9
-
10
- A Log Metric Filter (LMF) is an AWS resource that observes log traffic, looks for a specified pattern, and then updates a metric about the number times the match occurs. The metric can also be connected to AWS Cloudwatch Alarms, so that actions can be taken when a match occurs.
11
-
12
- <br>
13
-
14
- ## Availability
15
-
16
- ### Installation
17
-
18
- This resource is distributed along with InSpec itself. You can use it automatically.
19
-
20
- ### Version
21
-
22
- This resource first became available in v2.0.16 of InSpec.
23
-
24
- ## Syntax
25
-
26
- An `aws_cloudwatch_log_metric_filter` resource block searches for an LMF, specified by several search options. If more than one log metric filter matches, an error occurs.
27
-
28
- # Look for an LMF by its filter name and log group name. This combination
29
- # will always either find at most one LMF - no duplicates.
30
- describe aws_cloudwatch_log_metric_filter(
31
- filter_name: 'my-filter',
32
- log_group_name: 'my-log-group'
33
- ) do
34
- it { should exist }
35
- end
36
-
37
- # Search for an LMF by pattern and log group.
38
- # This could result in an error if the results are not unique.
39
- describe aws_cloudwatch_log_metric_filter(
40
- log_group_name: 'my-log-group',
41
- pattern: 'my-filter'
42
- ) do
43
- it { should exist }
44
- end
45
-
46
- <br>
47
-
48
- ## Filter Attributes
49
-
50
- * `filter_name`, `log_group_name`, `pattern`
51
-
52
- <br>
53
-
54
- ## Filter Examples
55
-
56
- ### filter\_name
57
-
58
- This is the identifier of the log metric filter within its log group. To ensure you have a unique result, you must also provide the `log_group_name`.
59
-
60
- describe aws_cloudwatch_log_metric_filter(
61
- filter_name: 'my-filter'
62
- ) do
63
- it { should exist }
64
- end
65
-
66
- ### log\_group\_name
67
-
68
- The name of the Cloudwatch Log Group that the LMF is watching. Together with `filter_name`, this uniquely identifies an LMF.
69
-
70
- describe aws_cloudwatch_log_metric_filter(
71
- log_group_name: 'my-log-group',
72
- ) do
73
- it { should exist }
74
- end
75
-
76
- ### pattern
77
-
78
- The filter pattern used to match entries from the logs in the log group.
79
-
80
- describe aws_cloudwatch_log_metric_filter(
81
- pattern: '"ERROR" - "Exiting"',
82
- ) do
83
- it { should exist }
84
- end
85
-
86
- <br>
87
-
88
- ## Properties
89
-
90
- * `filter_name`, `log_group_name`,` metric_name`, `metric_namespace`, `pattern`
91
-
92
- <br>
93
-
94
- ## Property Examples
95
-
96
- ### filter\_name
97
-
98
- The name of the LMF within the `log_group`.
99
-
100
- # Check the name of the LMF that has a certain pattern
101
- describe aws_cloudwatch_log_metric_filter(
102
- log_group_name: 'app-log-group',
103
- pattern: 'KERBLEWIE',
104
- ) do
105
- its('filter_name') { should cmp 'kaboom_lmf' }
106
- end
107
-
108
- ### log\_group\_name
109
-
110
- The name of the log group that the LMF is watching.
111
-
112
- # Check which log group the LMF 'error-watcher' is watching
113
- describe aws_cloudwatch_log_metric_filter(
114
- filter_name: 'error-watcher',
115
- ) do
116
- its('log_group_name') { should cmp 'app-log-group' }
117
- end
118
-
119
- ### metric\_name, metric\_namespace
120
-
121
- The name and namespace of the Cloudwatch Metric that will be updated when the LMF matches. You also need the `metric_namespace` to uniquely identify the metric.
122
-
123
- # Ensure that the LMF has the right metric name
124
- describe aws_cloudwatch_log_metric_filter(
125
- filter_name: 'my-filter',
126
- log_group_name: 'my-log-group',
127
- ) do
128
- its('metric_name') { should cmp 'MyMetric' }
129
- its('metric_namespace') { should cmp 'MyFantasticMetrics' }
130
- end
131
-
132
- ### pattern
133
-
134
- The pattern used to match entries from the logs in the log group.
135
-
136
- # Ensure that the LMF is watching for errors
137
- describe aws_cloudwatch_log_metric_filter(
138
- filter_name: 'error-watcher',
139
- log_group_name: 'app-log-group',
140
- ) do
141
- its('pattern') { should cmp 'ERROR' }
142
- end
143
-
144
- <br>
145
-
146
- ## Matchers
147
-
148
- This InSpec audit resource has the following special matchers. For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
149
-
150
- ### exist
151
-
152
- Matches (i.e., passes the test) if the resource parameters (search criteria) were able to locate exactly one LMF.
153
-
154
- describe aws_cloudwatch_log_metric_filter(
155
- log_group_name: 'my-log-group',
156
- ) do
157
- it { should exist }
158
- end
159
-
160
- ## AWS Permissions
161
-
162
- Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `cloudwatch:DescribeAlarmsForMetric` action with Effect set to Allow.
163
-
164
- You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon CloudWatch](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html).
@@ -1,111 +0,0 @@
1
- ---
2
- title: About the aws_config_delivery_channel Resource
3
- ---
4
-
5
- # aws_config_delivery_channel
6
-
7
- The AWS Config service can monitor and record changes to your AWS resource configurations. A Delivery Channel can record the changes
8
- to an S3 Bucket, an SNS or both.
9
-
10
- Use the `aws_config_delivery_channel` InSpec audit resource to examine how the AWS Config service delivers those change notifications.
11
-
12
- As of April 2018, each AWS region may have only one Delivery Channel.
13
-
14
- <br>
15
-
16
- ## Availability
17
-
18
- ### Installation
19
-
20
- This resource is distributed along with InSpec itself. You can use it automatically.
21
-
22
- ### Version
23
-
24
- This resource first became available in v2.1.21 of InSpec.
25
-
26
- ## Resource Parameters
27
-
28
- An `aws_config_delivery_channel` resource block declares the tests for a single AWS Config Delivery Channel.
29
-
30
- You may specify the Delivery Channel name:
31
-
32
- describe aws_config_delivery_channel('my_channel') do
33
- it { should exist }
34
- end
35
-
36
- describe aws_config_delivery_channel(channel_name: 'my-channel') do
37
- it { should exist }
38
- end
39
-
40
- However, since you may only have one Delivery Channel per region, and InSpec connections are per-region, you may also omit the `channel_name` to obtain the one Delivery Channel (if any) that exists:
41
-
42
- describe aws_config_delivery_channel do
43
- it { should exist }
44
- end
45
-
46
- <br>
47
-
48
- ## Examples
49
-
50
- The following examples show how to use this InSpec audit resource.
51
-
52
- ### Test how frequently the channel writes configuration changes to the s3 bucket.
53
-
54
- describe aws_config_delivery_channel(channel_name: 'my-recorder') do
55
- its(delivery_frequency_in_hours) { should be > 3 }
56
- end
57
-
58
- ## Properties
59
-
60
- ### channel\_name
61
-
62
- Returns the name of the Delivery Channel.
63
-
64
- describe aws_config_delivery_channel do
65
- its('channel_name') { should cmp 'my-channel' }
66
- end
67
-
68
- ### delivery\_frequency\_in\_hours
69
-
70
- Provides how often the AWS Config sends configuration changes to the s3 bucket in the delivery channel.
71
-
72
- describe aws_config_delivery_channel(channel_name: 'my_channel')
73
- its('delivery_frequency_in_hours') { should eq 24 }
74
- its('delivery_frequency_in_hours') { should be > 24 }
75
- end
76
-
77
- ### s3\_bucket\_name
78
-
79
- Provides the name of the s3 bucket that the channel sends configuration changes to. This is an optional value since a Delivery Channel can also talk to an SNS.
80
-
81
- describe aws_config_delivery_channel(channel_name: 'my_channel')
82
- its('s3_bucket_name') { should eq 'my_bucket' }
83
- end
84
-
85
- ### s3\_key\_prefix
86
-
87
- Provides the s3 object key prefix (or "path") under which configuration data will be recorded.
88
-
89
- describe aws_config_delivery_channel(channel_name: 'my_channel')
90
- its('s3_key_prefix') { should eq 'log/' }
91
- end
92
-
93
- ### sns\_topic\_arn
94
-
95
- Provides the ARN of the SNS topic for which the channel sends notifications about configuration changes.
96
-
97
- describe aws_config_delivery_channel(channel_name: 'my_channel')
98
- its('sns_topic_arn') { should eq 'arn:aws:sns:us-east-1:721741954427:sns_topic' }
99
- end
100
-
101
- <br>
102
-
103
- ## Matchers
104
-
105
- This resource provides no matchers, aside from the standard `exist` matcher.
106
-
107
- ## AWS Permissions
108
-
109
- Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `config:DescribeDeliveryChannels` action with Effect set to Allow.
110
-
111
- You can find detailed documentation at [Actions, Resources, and Condition Keys for AWS Config](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsconfig.html).
@@ -1,96 +0,0 @@
1
- ---
2
- title: About the aws_config_recorder Resource
3
- ---
4
-
5
- # aws\_config\_recorder
6
-
7
- Use the `aws_config_recorder` InSpec audit resource to test properties of your AWS Config Service.
8
-
9
- The AWS Config service can monitor and record changes to your AWS resource configurations. The Aws Config Recorder is used to detect changes in resource configurations and capture these changes as configuration items.
10
-
11
- As of April 2018, you are only permitted one configuration recorder per region.
12
-
13
- <br>
14
-
15
- ## Availability
16
-
17
- ### Installation
18
-
19
- This resource is distributed along with InSpec itself. You can use it automatically.
20
-
21
- ### Version
22
-
23
- This resource first became available in v2.0.32 of InSpec.
24
-
25
- ## Resource Parameters
26
-
27
- An `aws_config_recorder` resource block declares the tests for a single AWS configuration recorder.
28
-
29
- You may specify a recorder by name:
30
-
31
- describe aws_config_recorder('my_recorder') do
32
- it { should exist }
33
- end
34
-
35
- describe aws_config_recorder(recorder_name: 'my-recorder') do
36
- it { should exist }
37
- end
38
-
39
- However, since you may only have one recorder per region, and InSpec connections are per-region, you may also omit the `recorder_name` to obtain the one recorder (if any) that exists:
40
-
41
- describe aws_config_recorder do
42
- it { should exist }
43
- end
44
-
45
- <br>
46
-
47
- ## Examples
48
-
49
- The following examples show how to use this InSpec audit resource.
50
-
51
- ### Test if the recorder is active and recording.
52
-
53
- describe aws_config_recorder(recorder_name: 'my-recorder') do
54
- it { should be_recording }
55
- end
56
-
57
- ## Properties
58
-
59
- ### role\_arn
60
-
61
- Provides the IAM role arn associated with the configuration recorder. The role is used to grant permissions to S3 Buckets, SNS topics and to get configuration details for supported AWS resources.
62
-
63
- describe aws_config_recorder(username: 'bob')
64
- its('role_arn') { should eq 'arn:aws:iam::721741954427:role/My_Recorder' }
65
- end
66
-
67
- ### resource\_types
68
-
69
- Provides a list of AWS resource types for which the AWS Config records configuration will change. Note that if be_recording_all_resource_types is true than this property is meaningless and will return and empty array.
70
-
71
- describe aws_config_recorder(username: 'bob')
72
- its('resource_types') { should include 'AWS::EC2::CustomerGateway' }
73
- its('resource_types') { should include 'AWS::EC2::EIP' }
74
- end
75
-
76
- <br>
77
-
78
- ## Matchers
79
-
80
- ### be\_recording\_all\_resource\_types
81
-
82
- Indicates if the ConfigurationRecorder will record changes for all resources, regardless of type. If this is true, resource_types is ignored.
83
-
84
- it { should be_recording_all_resource_types }
85
-
86
- ### be\_recording\_all\_global\_types
87
-
88
- Indicates whether the ConfigurationRecorder will record changes for global resource types (such as [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal)s).
89
-
90
- it { should be_recording_all_global_types }
91
-
92
- ## AWS Permissions
93
-
94
- Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `config:DescribeConfigurationRecorders` action with Effect set to Allow.
95
-
96
- You can find detailed documentation at [Actions, Resources, and Condition Keys for AWS Config](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsconfig.html).