Control: Diagnostic logs in App Services should be enabled
Description
Audit enabling of diagnostic logs on the app. This enables you to recreate activity trails for investigation purposes if a security incident occurs or your network is compromised.
Usage
Run the control in your terminal:
powerpipe control run terraform_azure_compliance.control.appservice_web_app_diagnostic_logs_enabled
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_azure_compliance.control.appservice_web_app_diagnostic_logs_enabled --share
SQL
This control uses a named query:
select address as resource, case when (attributes_std -> 'logs') is null then 'alarm' when (attributes_std -> 'logs' ->> 'detailed_error_messages_enabled')::boolean and (attributes_std -> 'logs' ->> 'failed_request_tracing_enabled')::boolean and (attributes_std -> 'logs' -> 'http_logs') is not null then 'ok' else 'alarm' end status, split_part(address, '.', 2) || case when (attributes_std -> 'logs') is null then ' ''logs'' not defined' when (attributes_std -> 'logs' ->> 'detailed_error_messages_enabled')::boolean and (attributes_std -> 'logs' ->> 'failed_request_tracing_enabled')::boolean and (attributes_std -> 'logs' -> 'http_logs' -> 'file_system') is not null then ' diagnostic logs enabled' else ' diagnostic logs disabled' end || '.' reason , path || ':' || start_linefrom terraform_resourcewhere type = 'azurerm_app_service';