turbot/steampipe-mod-docker-compliance

Control: 4.5 Ensure Content trust for Docker is Enabled

Description

Content trust is disabled by default and should be enabled in line with organizational security policy.

Content trust provides the ability to use digital signatures for data sent to and received from remote Docker registries. These signatures allow client-side verification of the identity and the publisher of specific image tags and ensures the provenance of container images.

Remediation

To enable content trust in a bash shell, you should enter the following command:

export DOCKER_CONTENT_TRUST=1

Alternatively, you could set this environment variable in your profile file so that content trust in enabled on every login.

Default Value

By default, content trust is disabled.

Usage

Run the control in your terminal:

powerpipe control run docker_compliance.control.cis_v160_4_5

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run docker_compliance.control.cis_v160_4_5 --share

SQL

This control uses a named query:

with hostname as (
select
btrim(stdout_output, E' \n\r\t') as host,
_ctx ->> 'connection_name' as host_conn,
_ctx
from
exec_command
where
command = 'hostname'
),
command_output as (
select
stdout_output,
_ctx ->> 'connection_name' as conn
from
exec_command
where
command = 'echo $DOCKER_CONTENT_TRUST'
)
select
host as resource,
case
when o.stdout_output like '%1%' then 'ok'
else 'alarm'
end as status,
case
when o.stdout_output like '%1%' then host || ' Docker container trust enabled.'
else host || ' Docker container trust disabled.'
end as reason
, h._ctx ->> 'connection_name' as connection_name
from
hostname as h,
command_output as o
where
h.host_conn = o.conn;

Tags