turbot/azure_compliance

Query: appservice_api_app_uses_managed_identity

Usage

powerpipe query azure_compliance.query.appservice_api_app_uses_managed_identity

SQL

with all_api_app as (
select
id
from
azure_app_service_web_app
where
exists (
select
from
unnest(regexp_split_to_array(kind, ',')) elem
where
elem like '%api'
)
)
select
a.id as resource,
case
when b.id is null then 'skip'
when configuration -> 'properties' ->> 'xManagedServiceIdentityId' is not null
or configuration -> 'properties' ->> 'managedServiceIdentityId' is not null then 'ok'
else 'alarm'
end as status,
case
when b.id is null then a.title || ' is ' || a.kind || ' kind.'
when configuration -> 'properties' ->> 'xManagedServiceIdentityId' is not null
or configuration -> 'properties' ->> 'managedServiceIdentityId' is not null then a.name || ' uses managed identity.'
else a.name || ' not uses managed identity'
end as reason,
a.resource_group as resource_group,
sub.display_name as subscription
from
azure_app_service_web_app as a
left join all_api_app as b on a.id = b.id,
azure_subscription as sub
where
sub.subscription_id = a.subscription_id;

Controls

The query is being used by the following controls: