Control: App Service apps should have Client Certificates (Incoming client certificates) enabled
Description
Client certificates allow for the app to request a certificate for incoming requests. Only clients that have a valid certificate will be able to reach the app.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.appservice_api_app_client_certificates_on
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_api_app_client_certificates_on --share
SQL
This control uses a named query:
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 client_cert_enabled then 'ok' else 'alarm' end as status, case when b.id is null then a.title || ' is ' || a.kind || ' kind.' when client_cert_enabled then a.name || ' client certificate enabled.' else a.name || ' client certificate disabled.' end as reason , a.resource_group as resource_group , sub.display_name as subscriptionfrom azure_app_service_web_app as a left join all_api_app as b on a.id = b.id, azure_subscription as subwhere sub.subscription_id = a.subscription_id;