Control: Cloud Run services should not be publicly accessible
Description
This control checks whether Cloud Run services are not publicly accessible.
Usage
Run the control in your terminal:
powerpipe control run terraform_gcp_compliance.control.cloudrun_not_publicly_accessible
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_gcp_compliance.control.cloudrun_not_publicly_accessible --share
SQL
This control uses a named query:
select address as resource, case when (attributes_std ->> 'member') in ('allUsers', 'allAuthenticatedUsers') or (attributes_std -> 'members') @> '["allUsers"]' or (attributes_std -> 'members') @> '["allAuthenticatedUsers"]' then 'alarm' else 'ok' end as status, split_part(address, '.', 2) || case when (attributes_std ->> 'member') in ('allUsers', 'allAuthenticatedUsers') or (attributes_std -> 'members') @> '["allUsers"]' or (attributes_std -> 'members') @> '["allAuthenticatedUsers"]' then ' is publicly accessible' else ' is not publicly accessible' end || '.' reason , path || ':' || start_linefrom terraform_resourcewhere type in ('google_cloud_run_service_iam_member','google_cloud_run_service_iam_binding');