|
1 | 1 | title '1.1 Master Node: Configuration Files' |
2 | 2 |
|
| 3 | +apiserver_manifest = attribute('apiserver-manifest') |
| 4 | +controller_manager_manifest = attribute('controller_manager-manifest') |
| 5 | +scheduler_manifest = attribute('scheduler-manifest') |
| 6 | +etcd_manifest = attribute('etcd-manifest') |
| 7 | +etcd_regex = Regexp.new(attribute('etcd')) |
| 8 | +admin_conf = attribute('admin-conf') |
| 9 | +scheduler_conf = attribute('scheduler-conf') |
| 10 | +controller_manager_conf = attribute('controller_manager-conf') |
| 11 | +kubernetes_pki = attribute('kubernetes-pki') |
| 12 | + |
3 | 13 | control 'cis-kubernetes-benchmark-1.1.1' do |
4 | 14 | title 'Ensure that the API server pod specification file permissions are set to 644 or more restrictive' |
5 | 15 | desc "Ensure that the API server pod specification file has permissions of `644` or more restrictive.\n\nRationale: The API server pod specification file controls various parameters that set the behavior of the API server. You should restrict its file permissions to maintain the integrity of the file. The file should be writable by only the administrators on the system." |
|
9 | 19 | tag level: 1 |
10 | 20 |
|
11 | 21 | only_if do |
12 | | - file('/etc/kubernetes/manifests/kube-apiserver.yaml').exist? |
| 22 | + file(apiserver_manifest).exist? |
13 | 23 | end |
14 | 24 |
|
15 | | - describe file('/etc/kubernetes/manifests/kube-apiserver.yaml').mode.to_s(8) do |
| 25 | + describe file(apiserver_manifest).mode.to_s(8) do |
16 | 26 | it { should match(/[0246][024][024]/) } |
17 | 27 | end |
18 | 28 | end |
|
26 | 36 | tag level: 1 |
27 | 37 |
|
28 | 38 | only_if do |
29 | | - file('/etc/kubernetes/manifests/kube-apiserver.yaml').exist? |
| 39 | + file(apiserver_manifest).exist? |
30 | 40 | end |
31 | 41 |
|
32 | | - describe file('/etc/kubernetes/manifests/kube-apiserver.yaml') do |
| 42 | + describe file(apiserver_manifest) do |
33 | 43 | it { should be_owned_by 'root' } |
34 | 44 | it { should be_grouped_into 'root' } |
35 | 45 | end |
|
44 | 54 | tag level: 1 |
45 | 55 |
|
46 | 56 | only_if do |
47 | | - file('/etc/kubernetes/manifests/kube-controller-manager.yaml').exist? |
| 57 | + file(controller_manager_manifest).exist? |
48 | 58 | end |
49 | 59 |
|
50 | | - describe file('/etc/kubernetes/manifests/kube-controller-manager.yaml').mode.to_s(8) do |
| 60 | + describe file(controller_manager_manifest).mode.to_s(8) do |
51 | 61 | it { should match(/[0246][024][024]/) } |
52 | 62 | end |
53 | 63 | end |
|
61 | 71 | tag level: 1 |
62 | 72 |
|
63 | 73 | only_if do |
64 | | - file('/etc/kubernetes/manifests/kube-controller-manager.yaml').exist? |
| 74 | + file(controller_manager_manifest).exist? |
65 | 75 | end |
66 | 76 |
|
67 | | - describe file('/etc/kubernetes/manifests/kube-controller-manager.yaml') do |
| 77 | + describe file(controller_manager_manifest) do |
68 | 78 | it { should be_owned_by 'root' } |
69 | 79 | it { should be_grouped_into 'root' } |
70 | 80 | end |
|
79 | 89 | tag level: 1 |
80 | 90 |
|
81 | 91 | only_if do |
82 | | - file('/etc/kubernetes/manifests/kube-scheduler.yaml').exist? |
| 92 | + file(scheduler_manifest).exist? |
83 | 93 | end |
84 | 94 |
|
85 | | - describe file('/etc/kubernetes/manifests/kube-scheduler.yaml').mode.to_s(8) do |
| 95 | + describe file(scheduler_manifest).mode.to_s(8) do |
86 | 96 | it { should match(/[0246][024][024]/) } |
87 | 97 | end |
88 | 98 | end |
|
96 | 106 | tag level: 1 |
97 | 107 |
|
98 | 108 | only_if do |
99 | | - file('/etc/kubernetes/manifests/kube-scheduler.yaml').exist? |
| 109 | + file(scheduler_manifest).exist? |
100 | 110 | end |
101 | 111 |
|
102 | | - describe file('/etc/kubernetes/manifests/kube-scheduler.yaml') do |
| 112 | + describe file(scheduler_manifest) do |
103 | 113 | it { should be_owned_by 'root' } |
104 | 114 | it { should be_grouped_into 'root' } |
105 | 115 | end |
|
114 | 124 | tag level: 1 |
115 | 125 |
|
116 | 126 | only_if do |
117 | | - file('/etc/kubernetes/manifests/etcd.yaml').exist? |
| 127 | + file(etcd_manifest).exist? |
118 | 128 | end |
119 | 129 |
|
120 | | - describe file('/etc/kubernetes/manifests/etcd.yaml').mode.to_s(8) do |
| 130 | + describe file(etcd_manifest).mode.to_s(8) do |
121 | 131 | it { should match(/[0246][024][024]/) } |
122 | 132 | end |
123 | 133 | end |
|
131 | 141 | tag level: 1 |
132 | 142 |
|
133 | 143 | only_if do |
134 | | - file('/etc/kubernetes/manifests/etcd.yaml').exist? |
| 144 | + file(etcd_manifest).exist? |
135 | 145 | end |
136 | 146 |
|
137 | | - describe file('/etc/kubernetes/manifests/etcd.yaml') do |
| 147 | + describe file(etcd_manifest) do |
138 | 148 | it { should be_owned_by 'root' } |
139 | 149 | it { should be_grouped_into 'root' } |
140 | 150 | end |
|
223 | 233 | tag cis: 'kubernetes:1.1.12' |
224 | 234 | tag level: 1 |
225 | 235 |
|
226 | | - etcd_process = processes(Regexp.new(%r{/usr/bin/etcd})) |
| 236 | + etcd_process = processes(etcd_regex) |
227 | 237 | data_dir = '' |
228 | 238 |
|
229 | 239 | catch(:stop) do |
|
260 | 270 | tag level: 1 |
261 | 271 |
|
262 | 272 | only_if do |
263 | | - file('/etc/kubernetes/admin.conf').exist? |
| 273 | + file(admin_conf).exist? |
264 | 274 | end |
265 | 275 |
|
266 | | - describe file('/etc/kubernetes/admin.conf').mode.to_s(8) do |
| 276 | + describe file(admin_conf).mode.to_s(8) do |
267 | 277 | it { should match(/[0246][024][024]/) } |
268 | 278 | end |
269 | 279 | end |
|
277 | 287 | tag level: 1 |
278 | 288 |
|
279 | 289 | only_if do |
280 | | - file('/etc/kubernetes/admin.conf').exist? |
| 290 | + file(admin_conf).exist? |
281 | 291 | end |
282 | 292 |
|
283 | | - describe file('/etc/kubernetes/admin.conf') do |
| 293 | + describe file(admin_conf) do |
284 | 294 | it { should be_owned_by 'root' } |
285 | 295 | it { should be_grouped_into 'root' } |
286 | 296 | end |
|
295 | 305 | tag level: 1 |
296 | 306 |
|
297 | 307 | only_if do |
298 | | - file('/etc/kubernetes/scheduler.conf').exist? |
| 308 | + file(scheduler_conf).exist? |
299 | 309 | end |
300 | 310 |
|
301 | | - describe file('/etc/kubernetes/scheduler.conf').mode.to_s(8) do |
| 311 | + describe file(scheduler_conf).mode.to_s(8) do |
302 | 312 | it { should match(/[0246][024][024]/) } |
303 | 313 | end |
304 | 314 | end |
|
312 | 322 | tag level: 1 |
313 | 323 |
|
314 | 324 | only_if do |
315 | | - file('/etc/kubernetes/scheduler.conf').exist? |
| 325 | + file(scheduler_conf).exist? |
316 | 326 | end |
317 | 327 |
|
318 | | - describe file('/etc/kubernetes/scheduler.conf') do |
| 328 | + describe file(scheduler_conf) do |
319 | 329 | it { should be_owned_by 'root' } |
320 | 330 | it { should be_grouped_into 'root' } |
321 | 331 | end |
|
330 | 340 | tag level: 1 |
331 | 341 |
|
332 | 342 | only_if do |
333 | | - file('/etc/kubernetes/controller-manager.conf').exist? |
| 343 | + file(controller_manager_conf).exist? |
334 | 344 | end |
335 | 345 |
|
336 | | - describe file('/etc/kubernetes/controller-manager.conf').mode.to_s(8) do |
| 346 | + describe file(controller_manager_conf).mode.to_s(8) do |
337 | 347 | it { should match(/[0246][024][024]/) } |
338 | 348 | end |
339 | 349 | end |
|
347 | 357 | tag level: 1 |
348 | 358 |
|
349 | 359 | only_if do |
350 | | - file('/etc/kubernetes/controller-manager.conf').exist? |
| 360 | + file(controller_manager_conf).exist? |
351 | 361 | end |
352 | 362 |
|
353 | | - describe file('/etc/kubernetes/controller-manager.conf') do |
| 363 | + describe file(controller_manager_conf) do |
354 | 364 | it { should be_owned_by 'root' } |
355 | 365 | it { should be_grouped_into 'root' } |
356 | 366 | end |
|
365 | 375 | tag level: 1 |
366 | 376 |
|
367 | 377 | only_if do |
368 | | - directory('/etc/kubernetes/pki').exist? |
| 378 | + directory(kubernetes_pki).exist? |
369 | 379 | end |
370 | 380 |
|
371 | | - describe directory('/etc/kubernetes/pki') do |
| 381 | + describe directory(kubernetes_pki) do |
372 | 382 | it { should be_owned_by 'root' } |
373 | 383 | it { should be_grouped_into 'root' } |
374 | 384 | end |
|
383 | 393 | tag level: 1 |
384 | 394 |
|
385 | 395 | only_if do |
386 | | - directory('/etc/kubernetes/pki').exist? |
| 396 | + directory(kubernetes_pki).exist? |
387 | 397 | end |
388 | 398 |
|
389 | 399 | cert_files = command('find /etc/kubernetes/pki -type f -name *.crt').stdout.split |
|
409 | 419 | tag level: 1 |
410 | 420 |
|
411 | 421 | only_if do |
412 | | - directory('/etc/kubernetes/pki').exist? |
| 422 | + directory(kubernetes_pki).exist? |
413 | 423 | end |
414 | 424 |
|
415 | 425 | key_files = command('find /etc/kubernetes/pki -type f -name *.key').stdout.split |
|
0 commit comments