Skip to content

Commit

Permalink
feat(bicep): Add bicep version of policy (#6191)
Browse files Browse the repository at this point in the history
* Add bicep version of policy

* Add test

* Fix test

* Update expected.yaml
  • Loading branch information
tsmithv11 authored Apr 19, 2024
1 parent 717966c commit e1144b6
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
metadata:
id: "CKV_AZURE_24"
name: "Ensure that 'Auditing' Retention is 'greater than 90 days' for SQL servers"
category: "LOGGING"
definition:
and:
- cond_type: "filter"
attribute: "resource_type"
value:
- "Microsoft.Sql/servers"
operator: "within"
- cond_type: "connection"
resource_types:
- "Microsoft.Sql/servers"
connected_resource_types:
- "Microsoft.Sql/servers/auditingSettings"
operator: "exists"
- cond_type: "attribute"
resource_types:
- "Microsoft.Sql/servers/auditingSettings"
attribute: "properties.retentionDays"
operator: "exists"
- cond_type: "attribute"
resource_types:
- "Microsoft.Sql/servers/auditingSettings"
attribute: "properties.retentionDays"
operator: "greater_than_or_equal"
value: 90
- cond_type: "attribute"
resource_types:
- "Microsoft.Sql/servers/auditingSettings"
attribute: "properties.state"
operator: "equals"
value: Enabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
pass:
- 'Microsoft.Sql/servers.sqlServer_pass'
fail:
- 'Microsoft.Sql/servers.sqlServer_fail1'
- 'Microsoft.Sql/servers.sqlServer_fail2'
- 'Microsoft.Sql/servers.sqlServer_fail3'
evaluated_keys:
- 'properties/retentionDays'
- 'properties/state'
- 'resource_type'
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resource sqlServer_fail1 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: sqlServerName
}

/// SQL Auditing

resource sql_auditing_fail1 'Microsoft.Sql/servers/auditingSettings@2023-05-01-preview' = {
name: 'default'
parent: sqlServer_fail1
properties: {
isAzureMonitorTargetEnabled: true
retentionDays: 67
state: 'Enabled'
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
resource sqlServer_fail2 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: sqlServerName
}

/// No SQL Audit Settings
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resource sqlServer_fail3 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: sqlServerName
}

/// SQL Auditing

resource sql_auditing_fail3 'Microsoft.Sql/servers/auditingSettings@2023-05-01-preview' = {
name: 'default'
parent: sqlServer_fail3
properties: {
isAzureMonitorTargetEnabled: true
retentionDays: 92
state: 'Disabled'
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resource sqlServer_pass 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: sqlServerName
}

/// SQL Auditing

resource sql_auditing_pass 'Microsoft.Sql/servers/auditingSettings@2023-05-01-preview' = {
name: 'default'
parent: sqlServer_pass
properties: {
isAzureMonitorTargetEnabled: true
retentionDays: 92
state: 'Enabled'
}
}
3 changes: 3 additions & 0 deletions tests/bicep/graph/checks/test_yaml_policies.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ def setUp(self) -> None:
def test_SQLServerAuditingEnabled(self):
self.go("SQLServerAuditingEnabled")

def test_SQLServerAuditingRetention90Days(self):
self.go("SQLServerAuditingRetention90Days")

def test_registry_load(self):
registry = self.get_checks_registry()
self.assertGreater(len(registry.checks), 0)
Expand Down

0 comments on commit e1144b6

Please sign in to comment.