inspec 4.22.1

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.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +63 -0
  3. data/inspec.gemspec +36 -0
  4. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +11 -0
  5. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +43 -0
  6. data/lib/plugins/inspec-init/templates/profiles/aws/README.md +192 -0
  7. data/lib/plugins/inspec-init/templates/profiles/aws/attributes.yml +2 -0
  8. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +39 -0
  9. data/lib/plugins/inspec-init/templates/profiles/aws/inspec.yml +22 -0
  10. data/lib/plugins/inspec-init/templates/profiles/azure/README.md +56 -0
  11. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +14 -0
  12. data/lib/plugins/inspec-init/templates/profiles/azure/inspec.yml +14 -0
  13. data/lib/plugins/inspec-init/templates/profiles/gcp/README.md +66 -0
  14. data/lib/plugins/inspec-init/templates/profiles/gcp/attributes.yml +2 -0
  15. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +27 -0
  16. data/lib/plugins/inspec-init/templates/profiles/gcp/inspec.yml +19 -0
  17. data/lib/resource_support/aws.rb +76 -0
  18. data/lib/resource_support/aws/aws_backend_base.rb +12 -0
  19. data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -0
  20. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +24 -0
  21. data/lib/resource_support/aws/aws_resource_mixin.rb +69 -0
  22. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +27 -0
  23. data/lib/resources/aws/aws_billing_report.rb +107 -0
  24. data/lib/resources/aws/aws_billing_reports.rb +74 -0
  25. data/lib/resources/aws/aws_cloudtrail_trail.rb +97 -0
  26. data/lib/resources/aws/aws_cloudtrail_trails.rb +51 -0
  27. data/lib/resources/aws/aws_cloudwatch_alarm.rb +67 -0
  28. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +105 -0
  29. data/lib/resources/aws/aws_config_delivery_channel.rb +74 -0
  30. data/lib/resources/aws/aws_config_recorder.rb +99 -0
  31. data/lib/resources/aws/aws_ebs_volume.rb +127 -0
  32. data/lib/resources/aws/aws_ebs_volumes.rb +69 -0
  33. data/lib/resources/aws/aws_ec2_instance.rb +162 -0
  34. data/lib/resources/aws/aws_ec2_instances.rb +69 -0
  35. data/lib/resources/aws/aws_ecs_cluster.rb +88 -0
  36. data/lib/resources/aws/aws_eks_cluster.rb +105 -0
  37. data/lib/resources/aws/aws_elb.rb +85 -0
  38. data/lib/resources/aws/aws_elbs.rb +84 -0
  39. data/lib/resources/aws/aws_flow_log.rb +106 -0
  40. data/lib/resources/aws/aws_iam_access_key.rb +112 -0
  41. data/lib/resources/aws/aws_iam_access_keys.rb +153 -0
  42. data/lib/resources/aws/aws_iam_group.rb +62 -0
  43. data/lib/resources/aws/aws_iam_groups.rb +56 -0
  44. data/lib/resources/aws/aws_iam_password_policy.rb +121 -0
  45. data/lib/resources/aws/aws_iam_policies.rb +57 -0
  46. data/lib/resources/aws/aws_iam_policy.rb +311 -0
  47. data/lib/resources/aws/aws_iam_role.rb +60 -0
  48. data/lib/resources/aws/aws_iam_root_user.rb +82 -0
  49. data/lib/resources/aws/aws_iam_user.rb +145 -0
  50. data/lib/resources/aws/aws_iam_users.rb +160 -0
  51. data/lib/resources/aws/aws_kms_key.rb +100 -0
  52. data/lib/resources/aws/aws_kms_keys.rb +58 -0
  53. data/lib/resources/aws/aws_rds_instance.rb +74 -0
  54. data/lib/resources/aws/aws_route_table.rb +67 -0
  55. data/lib/resources/aws/aws_route_tables.rb +64 -0
  56. data/lib/resources/aws/aws_s3_bucket.rb +142 -0
  57. data/lib/resources/aws/aws_s3_bucket_object.rb +87 -0
  58. data/lib/resources/aws/aws_s3_buckets.rb +52 -0
  59. data/lib/resources/aws/aws_security_group.rb +314 -0
  60. data/lib/resources/aws/aws_security_groups.rb +71 -0
  61. data/lib/resources/aws/aws_sns_subscription.rb +82 -0
  62. data/lib/resources/aws/aws_sns_topic.rb +57 -0
  63. data/lib/resources/aws/aws_sns_topics.rb +60 -0
  64. data/lib/resources/aws/aws_sqs_queue.rb +66 -0
  65. data/lib/resources/aws/aws_subnet.rb +92 -0
  66. data/lib/resources/aws/aws_subnets.rb +56 -0
  67. data/lib/resources/aws/aws_vpc.rb +77 -0
  68. data/lib/resources/aws/aws_vpcs.rb +55 -0
  69. data/lib/resources/azure/azure_backend.rb +379 -0
  70. data/lib/resources/azure/azure_generic_resource.rb +55 -0
  71. data/lib/resources/azure/azure_resource_group.rb +151 -0
  72. data/lib/resources/azure/azure_virtual_machine.rb +262 -0
  73. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +131 -0
  74. metadata +202 -0
@@ -0,0 +1,262 @@
1
+ require "resources/azure/azure_backend"
2
+
3
+ module Inspec::Resources
4
+ class AzureVirtualMachine < AzureResourceBase
5
+ name "azure_virtual_machine"
6
+
7
+ desc '
8
+ InSpec Resource to test Azure Virtual Machines
9
+ '
10
+
11
+ supports platform: "azure"
12
+
13
+ # Constructor for the resource. This calls the parent constructor to
14
+ # get the generic resource for the specified machine. This will provide
15
+ # static methods that are documented
16
+ #
17
+ # @author Russell Seymour
18
+ def initialize(opts = {})
19
+ # The generic resource needs to pass back a Microsoft.Compute/virtualMachines object so force it
20
+ opts[:type] = "Microsoft.Compute/virtualMachines"
21
+ super(opts)
22
+
23
+ # Find the virtual machines
24
+ resources
25
+
26
+ create_tag_methods
27
+ end
28
+
29
+ # Method to catch calls that are not explicitly defined.
30
+ # This allows the simple attributes of the virtual machine to be read without having
31
+ # to define each one in turn.
32
+ #
33
+ # rubocop:disable Metrics/AbcSize
34
+ #
35
+ # @param symobl method_id The symbol of the method that has been called
36
+ #
37
+ # @return Value of attribute that has been called
38
+ def method_missing(method_id)
39
+ # Depending on the method that has been called, determine what value should be returned
40
+ # These are set as camel case methods to comply with rubocop
41
+ image_reference_attrs = %w{sku publisher offer}
42
+ osdisk_attrs = %w{os_type caching create_option disk_size_gb}
43
+ hardware_profile_attrs = %w{vm_size}
44
+ os_profile_attrs = %w{computer_name admin_username}
45
+ osdisk_managed_disk_attrs = %w{storage_account_type}
46
+
47
+ # determine the method name to call by converting the snake_case to camelCase
48
+ # method_name = self.camel_case(method_id.to_s)
49
+ method_name = method_id.to_s.split("_").inject([]) { |buffer, e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
50
+ method_name.end_with?("Gb") ? method_name.gsub!(/Gb/, &:upcase) : false
51
+
52
+ if image_reference_attrs.include?(method_id.to_s)
53
+ properties.storageProfile.imageReference.send(method_name)
54
+ elsif osdisk_attrs.include?(method_id.to_s)
55
+ properties.storageProfile.osDisk.send(method_name)
56
+ elsif hardware_profile_attrs.include?(method_id.to_s)
57
+ properties.hardwareProfile.send(method_name)
58
+ elsif os_profile_attrs.include?(method_id.to_s)
59
+ properties.osProfile.send(method_name)
60
+ elsif osdisk_managed_disk_attrs.include?(method_id.to_s)
61
+ properties.storageProfile.osDisk.managedDisk.send(method_name)
62
+ end
63
+ end
64
+
65
+ # Return the name of the os disk
66
+ #
67
+ # @return string Name of the OS disk
68
+ def os_disk_name
69
+ properties.storageProfile.osDisk.name
70
+ end
71
+
72
+ # Determine if the OS disk is a managed disk
73
+ #
74
+ # @return boolean
75
+ def has_managed_osdisk?
76
+ defined?(properties.storageProfile.osDisk.managedDisk)
77
+ end
78
+
79
+ # Does the machine have any NICs connected
80
+ #
81
+ # @return boolean
82
+ def has_nics?
83
+ properties.networkProfile.networkInterfaces.count != 0
84
+ end
85
+
86
+ # How many NICs are connected to the machine
87
+ #
88
+ # @return integer
89
+ def nic_count
90
+ properties.networkProfile.networkInterfaces.count
91
+ end
92
+
93
+ # Return an array of the connected NICs so that it can be tested to ensure
94
+ # the machine is connected properly
95
+ #
96
+ # @return array Array of NIC names connected to the machine
97
+ def connected_nics
98
+ nic_names = []
99
+ properties.networkProfile.networkInterfaces.each do |nic|
100
+ nic_names << nic.id.split(%r{/}).last
101
+ end
102
+ nic_names
103
+ end
104
+
105
+ # Whether the machine has data disks or not
106
+ #
107
+ # @return boolean
108
+ def has_data_disks?
109
+ properties.storageProfile.dataDisks.count != 0
110
+ end
111
+
112
+ # How many data disks are connected
113
+ #
114
+ # @return integer
115
+ def data_disk_count
116
+ properties.storageProfile.dataDisks.count
117
+ end
118
+
119
+ # Does the machine allow password authentication
120
+ #
121
+ # This allows the use of
122
+ # it { should have_password_authentication }
123
+ # within the InSpec profile
124
+ #
125
+ # @return boolean
126
+ def has_password_authentication?
127
+ password_authentication?
128
+ end
129
+
130
+ # Deteremine if the machine allows password authentication
131
+ #
132
+ # @return boolean
133
+ def password_authentication?
134
+ # if the osProfile property has a linuxConfiguration section then interrogate that
135
+ # otherwise it is a Windows machine and that always has password auth
136
+ if defined?(properties.osProfile.linuxConfiguration)
137
+ !properties.osProfile.linuxConfiguration.disablePasswordAuthentication
138
+ else
139
+ true
140
+ end
141
+ end
142
+
143
+ # Has the machine been given Custom Data at creation
144
+ #
145
+ # This allows the use of
146
+ # it { should have_custom_data }
147
+ # within the InSpec Profile
148
+ #
149
+ # @return boolean
150
+ def has_custom_data?
151
+ custom_data?
152
+ end
153
+
154
+ # Determine if custom data has been set
155
+ #
156
+ # @return boolean
157
+ def custom_data?
158
+ if defined?(properties.osProfile.CustomData)
159
+ true
160
+ else
161
+ false
162
+ end
163
+ end
164
+
165
+ # Are any SSH Keys assigned to the machine
166
+ #
167
+ # This allows the use of
168
+ # it { should have_ssh_keys }
169
+ # within the InSpec Profile
170
+ #
171
+ # @return boolean
172
+ def has_ssh_keys?
173
+ ssh_keys?
174
+ end
175
+
176
+ # Determine if any ssh keys have been asigned to the machine
177
+ #
178
+ # @return boolean
179
+ def ssh_keys?
180
+ if defined?(properties.osProfile.linuxConfiguration.ssh)
181
+ properties.osProfile.linuxConfiguration.ssh.publicKeys != 0
182
+ else
183
+ false
184
+ end
185
+ end
186
+
187
+ # Return the number of ssh keys that have been assigned to the machine
188
+ #
189
+ # @return integer
190
+ def ssh_key_count
191
+ if defined?(properties.osProfile.linuxConfiguration.ssh)
192
+ properties.osProfile.linuxConfiguration.ssh.publicKeys.count
193
+ else
194
+ 0
195
+ end
196
+ end
197
+
198
+ # Determine is the specified key is in the ssh_keys list
199
+ #
200
+ # @return array Array of the public keys that are assigned to allow for testing of that key
201
+ def ssh_keys
202
+ # iterate around the keys
203
+ keys = []
204
+ properties.osProfile.linuxConfiguration.ssh.publicKeys.each do |key|
205
+ keys << key.keyData
206
+ end
207
+ keys
208
+ end
209
+
210
+ # Does the machine have boot diagnostics enabled
211
+ #
212
+ # @return boolean
213
+ def has_boot_diagnostics?
214
+ if defined?(properties.diagnosticsProfile)
215
+ properties.diagnosticsProfile.bootDiagnostics.enabled
216
+ else
217
+ false
218
+ end
219
+ end
220
+
221
+ # Return the URI that has been set for the boot diagnostics storage
222
+ #
223
+ # @return string
224
+ def boot_diagnostics_storage_uri
225
+ properties.diagnosticsProfile.bootDiagnostics.storageUri
226
+ end
227
+
228
+ # If this is a windows machine, returns whether the agent was provisioned or not
229
+ #
230
+ # @return boolean
231
+ def has_provision_vmagent?
232
+ if defined?(properties.osProfile.windowsConfiguration)
233
+ properties.osProfile.windowsConfiguration.provisionVMAgent
234
+ else
235
+ false
236
+ end
237
+ end
238
+
239
+ # If a windows machine see if automatic updates for the agent are enabled
240
+ #
241
+ # @return boolean
242
+ def has_automatic_agent_update?
243
+ if defined?(properties.osProfile.windowsConfiguration)
244
+ properties.osProfile.windowsConfiguration.enableAutomaticUpdates
245
+ else
246
+ false
247
+ end
248
+ end
249
+
250
+ # If this is a windows machine return a boolean to state of the WinRM options
251
+ # have been set
252
+ #
253
+ # @return boolean
254
+ def has_winrm_options?
255
+ if defined?(properties.osProfile.windowsConfiguration) && defined?(properties.osProfile.windowsConfiguration.winrm)
256
+ properties.osProfile.windowsConfiguration.winrm.protocol
257
+ else
258
+ false
259
+ end
260
+ end
261
+ end
262
+ end
@@ -0,0 +1,131 @@
1
+ require "resources/azure/azure_backend"
2
+ require "uri"
3
+
4
+ module Inspec::Resources
5
+ class AzureVirtualMachineDataDisk < AzureResourceBase
6
+ name "azure_virtual_machine_data_disk"
7
+
8
+ desc '
9
+ InSpec Resource to ensure that the data disks attached to a machine are correct
10
+ '
11
+
12
+ supports platform: "azure"
13
+
14
+ # Create a filter table so that tests on the disk can be performed
15
+ filter = FilterTable.create
16
+ filter.register_custom_matcher(:exists?) { |x| !x.entries.empty? }
17
+ filter.register_column(:disk, field: :disk)
18
+ .register_column(:number, field: :number)
19
+ .register_column(:name, field: :name)
20
+ .register_column(:size, field: :size)
21
+ .register_column(:vhd_uri, field: :vhd_uri)
22
+ .register_column(:storage_account_name, field: :storage_account_name)
23
+ .register_column(:lun, field: :lun)
24
+ .register_column(:caching, field: :caching)
25
+ .register_column(:create_option, field: :create_option)
26
+ .register_column(:is_managed_disk?, field: :is_managed_disk?)
27
+ .register_column(:storage_account_type, field: :storage_account_type)
28
+ .register_column(:subscription_id, field: :subscription_id)
29
+ .register_column(:resource_group, field: :resource_group)
30
+ filter.install_filter_methods_on_resource(self, :datadisk_details)
31
+
32
+ # Constructor for the resource. This calls the parent constructor to
33
+ # get the generic resource for the specified machine. This will provide
34
+ # static methods that are documented
35
+ #
36
+ # @author Russell Seymour
37
+ def initialize(opts = {})
38
+ # The generic resource needs to pass back a Microsoft.Compute/virtualMachines object so force it
39
+ opts[:type] = "Microsoft.Compute/virtualMachines"
40
+ super(opts)
41
+
42
+ # Get the data disks
43
+ resources
44
+ end
45
+
46
+ # Return information about the disks and add to the filter table so that
47
+ # assertions can be performed
48
+ #
49
+ # @author Russell Seymour
50
+ def datadisk_details
51
+ return if failed_resource?
52
+
53
+ # Iterate around the data disks on the machine
54
+ properties.storageProfile.dataDisks.each_with_index.map do |datadisk, index|
55
+ # Call function to parse the data disks and return an object based on the parameters
56
+ parse_datadisk(datadisk, index)
57
+ end
58
+ end
59
+
60
+ # Return boolean to denote if the machine has data disks attached or not
61
+ def has_data_disks?
62
+ !entries.empty?
63
+ end
64
+
65
+ # Return an integer stating how many data disks are attached to the machine
66
+ def count
67
+ entries.count
68
+ end
69
+
70
+ # Return boolean to state if the machine is using managed disks for data disks
71
+ def has_managed_disks?
72
+ # iterate around the entries
73
+ result = entries.each.select { |e| e[:is_managed_disk?] }
74
+ result.empty? ? false : true
75
+ end
76
+
77
+ private
78
+
79
+ # Parse the data disk to determine if these are managed disks or in a storage account
80
+ # for example. The disk index, name and size will be returned
81
+ #
82
+ # params object disk Object containing the details of the disk
83
+ # params integer index Index denoting which disk number this is on the machine
84
+ #
85
+ # return hashtable
86
+ def parse_datadisk(disk, index)
87
+ # Configure parsed hashtable to hold the information
88
+ # Initialise this with common attributes from the different types of disk
89
+ parsed = {
90
+ disk: index,
91
+ number: index + 1,
92
+ lun: disk.lun,
93
+ name: disk.name,
94
+ size: disk.diskSizeGB,
95
+ caching: disk.caching,
96
+ create_option: disk.createOption,
97
+ }
98
+
99
+ # Determine if the current disk is a managed disk or not
100
+ if defined?(disk.vhd)
101
+ # As this is in a storage account this is not a managed disk
102
+ parsed[:is_managed_disk?] = false
103
+
104
+ # Set information about the disk
105
+ # Parse the uri of the disk URI so that the storage account can be retrieved
106
+ uri = URI.parse(disk.vhd.uri)
107
+ parsed[:vhd_uri] = disk.vhd.uri
108
+ parsed[:storage_account_name] = uri.host.split(".").first
109
+
110
+ elsif defined?(disk.managedDisk)
111
+ # State that this is a managed disk
112
+ parsed[:is_managed_disk?] = true
113
+
114
+ # Get information about the managed disk
115
+ parsed[:storage_account_type] = disk.managedDisk.storageAccountType
116
+ parsed[:id] = disk.managedDisk.id
117
+
118
+ # Break up the ID string so that the following information can get retreived
119
+ # - subscription_id
120
+ # - resource_group
121
+ id_parts = parsed[:id].split(%r{/}).reject(&:empty?)
122
+
123
+ parsed[:subscription_id] = id_parts[1]
124
+ parsed[:resource_group] = id_parts[3]
125
+ end
126
+
127
+ # return the parsed object
128
+ parsed
129
+ end
130
+ end
131
+ end
metadata ADDED
@@ -0,0 +1,202 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: inspec
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.22.1
5
+ platform: ruby
6
+ authors:
7
+ - Chef InSpec Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: inspec-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.22.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.22.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: train
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday_middleware
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.12.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.12.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: train-habitat
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: train-aws
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: train-winrm
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.2'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
97
+ description: InSpec provides a framework for creating end-to-end infrastructure tests.
98
+ You can use it for integration or even compliance testing. Create fully portable
99
+ test profiles and use them in your workflow to ensure stability and security. Integrate
100
+ InSpec in your change lifecycle for local testing, CI/CD, and deployment verification.
101
+ email:
102
+ - inspec@chef.io
103
+ executables: []
104
+ extensions: []
105
+ extra_rdoc_files: []
106
+ files:
107
+ - Gemfile
108
+ - inspec.gemspec
109
+ - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile
110
+ - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec
111
+ - lib/plugins/inspec-init/templates/profiles/aws/README.md
112
+ - lib/plugins/inspec-init/templates/profiles/aws/attributes.yml
113
+ - lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb
114
+ - lib/plugins/inspec-init/templates/profiles/aws/inspec.yml
115
+ - lib/plugins/inspec-init/templates/profiles/azure/README.md
116
+ - lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb
117
+ - lib/plugins/inspec-init/templates/profiles/azure/inspec.yml
118
+ - lib/plugins/inspec-init/templates/profiles/gcp/README.md
119
+ - lib/plugins/inspec-init/templates/profiles/gcp/attributes.yml
120
+ - lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb
121
+ - lib/plugins/inspec-init/templates/profiles/gcp/inspec.yml
122
+ - lib/resource_support/aws.rb
123
+ - lib/resource_support/aws/aws_backend_base.rb
124
+ - lib/resource_support/aws/aws_backend_factory_mixin.rb
125
+ - lib/resource_support/aws/aws_plural_resource_mixin.rb
126
+ - lib/resource_support/aws/aws_resource_mixin.rb
127
+ - lib/resource_support/aws/aws_singular_resource_mixin.rb
128
+ - lib/resources/aws/aws_billing_report.rb
129
+ - lib/resources/aws/aws_billing_reports.rb
130
+ - lib/resources/aws/aws_cloudtrail_trail.rb
131
+ - lib/resources/aws/aws_cloudtrail_trails.rb
132
+ - lib/resources/aws/aws_cloudwatch_alarm.rb
133
+ - lib/resources/aws/aws_cloudwatch_log_metric_filter.rb
134
+ - lib/resources/aws/aws_config_delivery_channel.rb
135
+ - lib/resources/aws/aws_config_recorder.rb
136
+ - lib/resources/aws/aws_ebs_volume.rb
137
+ - lib/resources/aws/aws_ebs_volumes.rb
138
+ - lib/resources/aws/aws_ec2_instance.rb
139
+ - lib/resources/aws/aws_ec2_instances.rb
140
+ - lib/resources/aws/aws_ecs_cluster.rb
141
+ - lib/resources/aws/aws_eks_cluster.rb
142
+ - lib/resources/aws/aws_elb.rb
143
+ - lib/resources/aws/aws_elbs.rb
144
+ - lib/resources/aws/aws_flow_log.rb
145
+ - lib/resources/aws/aws_iam_access_key.rb
146
+ - lib/resources/aws/aws_iam_access_keys.rb
147
+ - lib/resources/aws/aws_iam_group.rb
148
+ - lib/resources/aws/aws_iam_groups.rb
149
+ - lib/resources/aws/aws_iam_password_policy.rb
150
+ - lib/resources/aws/aws_iam_policies.rb
151
+ - lib/resources/aws/aws_iam_policy.rb
152
+ - lib/resources/aws/aws_iam_role.rb
153
+ - lib/resources/aws/aws_iam_root_user.rb
154
+ - lib/resources/aws/aws_iam_user.rb
155
+ - lib/resources/aws/aws_iam_users.rb
156
+ - lib/resources/aws/aws_kms_key.rb
157
+ - lib/resources/aws/aws_kms_keys.rb
158
+ - lib/resources/aws/aws_rds_instance.rb
159
+ - lib/resources/aws/aws_route_table.rb
160
+ - lib/resources/aws/aws_route_tables.rb
161
+ - lib/resources/aws/aws_s3_bucket.rb
162
+ - lib/resources/aws/aws_s3_bucket_object.rb
163
+ - lib/resources/aws/aws_s3_buckets.rb
164
+ - lib/resources/aws/aws_security_group.rb
165
+ - lib/resources/aws/aws_security_groups.rb
166
+ - lib/resources/aws/aws_sns_subscription.rb
167
+ - lib/resources/aws/aws_sns_topic.rb
168
+ - lib/resources/aws/aws_sns_topics.rb
169
+ - lib/resources/aws/aws_sqs_queue.rb
170
+ - lib/resources/aws/aws_subnet.rb
171
+ - lib/resources/aws/aws_subnets.rb
172
+ - lib/resources/aws/aws_vpc.rb
173
+ - lib/resources/aws/aws_vpcs.rb
174
+ - lib/resources/azure/azure_backend.rb
175
+ - lib/resources/azure/azure_generic_resource.rb
176
+ - lib/resources/azure/azure_resource_group.rb
177
+ - lib/resources/azure/azure_virtual_machine.rb
178
+ - lib/resources/azure/azure_virtual_machine_data_disk.rb
179
+ homepage: https://github.com/inspec/inspec
180
+ licenses:
181
+ - Apache-2.0
182
+ metadata: {}
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '2.4'
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ requirements: []
198
+ rubygems_version: 3.0.3
199
+ signing_key:
200
+ specification_version: 4
201
+ summary: Infrastructure and compliance testing.
202
+ test_files: []