Control: Ensure that 'Auditing' Retention is 'greater than 90 days'
Description
SQL Server Audit Retention should be configured to be greater than 90 days.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.sql_server_auditing_retention_period_90
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.sql_server_auditing_retention_period_90 --share
SQL
This control uses a named query:
select s.id as resource, case when (audit -> 'properties' ->> 'retentionDays')::integer = 0 then 'ok' when (audit -> 'properties' ->> 'retentionDays')::integer >= 90 then 'ok' else 'alarm' end as status, case when (audit -> 'properties' ->> 'retentionDays')::integer = 0 then name || ' audit retention set to unlimited days.' when (audit -> 'properties' ->> 'retentionDays')::integer >= 90 then name || ' audit retention greater than 90 days.' else name || ' audit retention less than 90 days.' end as reason , s.resource_group as resource_group , sub.display_name as subscriptionfrom azure_sql_server s, jsonb_array_elements(server_audit_policy) audit, azure_subscription subwhere sub.subscription_id = s.subscription_id;