turbot/steampipe-mod-kubernetes-compliance

Control: PodTemplate containers should run with a read only root file system

Description

Containers in a PodTemplate should always run with a read only root file system. Using an immutable root filesystem and a verified boot mechanism prevents against attackers from owning the machine through permanent local changes. An immutable root filesystem can also prevent malicious binaries from writing to the host system.

Usage

Run the control in your terminal:

powerpipe control run kubernetes_compliance.control.pod_template_immutable_container_filesystem

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run kubernetes_compliance.control.pod_template_immutable_container_filesystem --share

SQL

This control uses a named query:

select
coalesce(uid, concat(path, ':', start_line)) as resource,
case
when (c -> 'securityContext' ->> 'readOnlyRootFilesystem')::bool then 'ok'
else 'alarm'
end as status,
case
when (c -> 'securityContext' ->> 'readOnlyRootFilesystem')::bool then c ->> 'name' || ' running with read-only root file system.'
else c ->> 'name' || ' not running with read-only root file system.'
end as reason,
name as pod_template_name
, coalesce(context_name, '') as context_name, namespace, source_type, coalesce(path || ':' || start_line || '-' || end_line, '') as path
from
kubernetes_pod_template,
jsonb_array_elements(template -> 'spec' -> 'containers') as c;

Tags