turbot/steampipe-mod-terraform-gcp-compliance

Control: Cloud Function should not be publicly accessible

Description

This control checks whether Cloud Function is publicly accessible.

Usage

Run the control in your terminal:

powerpipe control run terraform_gcp_compliance.control.cloudfunction_not_publicly_accessible

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run terraform_gcp_compliance.control.cloudfunction_not_publicly_accessible --share

SQL

This control uses a named query:

select
address as resource,
case
when (attributes_std ->> 'member') = 'allUsers' or (attributes_std -> 'members') @> '["allUsers"]' then 'alarm'
else 'ok'
end as status,
split_part(address, '.', 2) || case
when (attributes_std ->> 'member') = 'allUsers' or (attributes_std -> 'members') @> '["allUsers"]' then ' is publicly accessible'
else ' is not publicly accessible'
end || '.' reason
, path || ':' || start_line
from
terraform_resource
where
type in ('google_cloudfunctions_function_iam_member', 'google_cloudfunctions_function_iam_binding', 'google_cloudfunctions2_function_iam_member', 'google_cloudfunctions2_function_iam_binding');

Tags