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