@@ -414,19 +414,27 @@ minimum value of the first range as the default. Validates against all ranges.
414
414
to be used by hostPath volumes. An empty list means there is no restriction on
415
415
host paths used. This is defined as a list of objects with a single `pathPrefix`
416
416
field, which allows hostPath volumes to mount a path that begins with an
417
- allowed prefix. For example :
417
+ allowed prefix, and a `readOnly` field indicating it must be mounted read-only.
418
+ For example :
418
419
419
420
` ` ` yaml
420
421
allowedHostPaths:
421
422
# This allows "/foo", "/foo/", "/foo/bar" etc., but
422
423
# disallows "/fool", "/etc/foo" etc.
423
424
# "/foo/../" is never valid.
424
425
- pathPrefix: "/foo"
426
+ readOnly: true # only allow read-only mounts
425
427
` ` `
426
428
427
- _Note : There are many ways a container with unrestricted access to the host
429
+ {{< warning >}}**Warning:** There are many ways a container with unrestricted access to the host
428
430
filesystem can escalate privileges, including reading data from other
429
- containers, and abusing the credentials of system services, such as Kubelet._
431
+ containers, and abusing the credentials of system services, such as Kubelet.
432
+
433
+ Writeable hostPath directory volumes allow containers to write
434
+ to the filesystem in ways that let them traverse the host filesystem outside the `pathPrefix`.
435
+ `readOnly : true`, available in Kubernetes 1.11+, must be used on **all** `allowedHostPaths`
436
+ to effectively limit access to the specified `pathPrefix`.
437
+ {{< /warning >}}
430
438
431
439
**ReadOnlyRootFilesystem** - Requires that containers must run with a read-only
432
440
root filesystem (i.e. no writable layer).
0 commit comments