turbot/terraform_aws_compliance

Query: apigateway_stage_logging_enabled

Usage

powerpipe query terraform_aws_compliance.query.apigateway_stage_logging_enabled

Steampipe Tables

SQL

with stages_v1 as (
select
*
from
terraform_resource
where
type = 'aws_api_gateway_stage'
),
method_settings as (
select
*
from
terraform_resource
where
type = 'aws_api_gateway_method_settings'
),
all_v1 as (
select
m.attributes_std -> 'settings' ->> 'logging_level' as log_level,
a.attributes_std ->> 'stage_name' as stage_name,
a.type,
a.name,
a.address,
a.path,
a.start_line,
a.attributes_std,
a._ctx
from
stages_v1 as a
left join method_settings as m on (m.attributes_std ->> 'rest_api_id') = (a.attributes_std ->> 'rest_api_id')
),
all_stages as (
select
log_level,
stage_name,
type,
name,
address,
path,
start_line,
attributes_std,
_ctx
from
all_v1
union
select
attributes_std -> 'default_route_settings' ->> 'logging_level' as log_level,
attributes_std ->> 'name' as stage_name,
type,
name,
address,
path,
start_line,
attributes_std,
_ctx
from
terraform_resource
where
type = 'aws_apigatewayv2_stage'
)
select
address as resource,
case
when log_level is null
or log_level = 'OFF' then 'alarm'
else 'ok'
end status,
split_part(address, '.', 2) || case
when log_level is null
or log_level = 'OFF' then ' logging disabled'
else ' logging enabled'
end || '.' reason,
path || ':' || start_line
from
all_stages;

Controls

The query is being used by the following controls: