turbot/steampipe-mod-kubernetes-compliance

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

Description

Containers in a ReplicaSet 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.replicaset_immutable_container_filesystem

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run kubernetes_compliance.control.replicaset_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 replicaset_name
, coalesce(context_name, '') as context_name, namespace, source_type, coalesce(path || ':' || start_line || '-' || end_line, '') as path
from
kubernetes_replicaset,
jsonb_array_elements(template -> 'spec' -> 'containers') as c;

Tags