Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Commit 9c9fedc

Browse files
committed
Delete old audits using a lifecycle policy since built in retention is deprecated
1 parent fa9a00d commit 9c9fedc

1 file changed

Lines changed: 63 additions & 34 deletions

File tree

deploy/bicep/storage-and-kv.bicep

Lines changed: 63 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,49 @@ resource leaseContainer 'Microsoft.Storage/storageAccounts/blobServices/containe
2323
]
2424
}
2525

26-
resource containerPolicy 'Microsoft.Storage/storageAccounts/managementPolicies@2019-06-01' = {
27-
name: '${storageAccountName}/default'
26+
resource keyVault 'Microsoft.KeyVault/vaults@2019-09-01' = {
27+
name: keyVaultName
28+
location: location
29+
properties: {
30+
tenantId: subscription().tenantId
31+
sku: {
32+
family: 'A'
33+
name: 'standard'
34+
}
35+
enableRbacAuthorization: true
36+
accessPolicies: []
37+
}
38+
}
39+
40+
resource keyVaultDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-05-01-preview' = {
41+
scope: keyVault
42+
name: '${keyVaultName}-diagnostics'
43+
properties: {
44+
storageAccountId: storageAccount.id
45+
logs: [
46+
{
47+
category: 'AuditEvent'
48+
enabled: true
49+
}
50+
]
51+
}
52+
}
53+
54+
var auditContainerName = 'insights-logs-auditevent'
55+
56+
resource auditContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2019-06-01' = {
57+
name: '${storageAccountName}/default/${auditContainerName}'
58+
dependsOn: [
59+
storageAccount
60+
]
61+
}
62+
63+
resource leaseContainerPolicy 'Microsoft.Storage/storageAccounts/managementPolicies@2019-06-01' = {
64+
parent: storageAccount
65+
name: 'default'
2866
dependsOn: [
2967
leaseContainer
68+
auditContainer
3069
]
3170
properties: {
3271
policy: {
@@ -52,39 +91,29 @@ resource containerPolicy 'Microsoft.Storage/storageAccounts/managementPolicies@2
5291
}
5392
}
5493
}
94+
{
95+
name: 'DeleteOldAudits'
96+
type: 'Lifecycle'
97+
definition: {
98+
actions: {
99+
baseBlob: {
100+
delete: {
101+
daysAfterModificationGreaterThan: 180
102+
}
103+
}
104+
}
105+
filters: {
106+
blobTypes: [
107+
'blockBlob'
108+
'appendBlob'
109+
]
110+
prefixMatch: [
111+
'${auditContainerName}/'
112+
]
113+
}
114+
}
115+
}
55116
]
56117
}
57118
}
58119
}
59-
60-
resource keyVault 'Microsoft.KeyVault/vaults@2019-09-01' = {
61-
name: keyVaultName
62-
location: location
63-
properties: {
64-
tenantId: subscription().tenantId
65-
sku: {
66-
family: 'A'
67-
name: 'standard'
68-
}
69-
enableRbacAuthorization: true
70-
accessPolicies: []
71-
}
72-
}
73-
74-
resource keyVaultDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-05-01-preview' = {
75-
scope: keyVault
76-
name: '${keyVaultName}-diagnostics'
77-
properties: {
78-
storageAccountId: storageAccount.id
79-
logs: [
80-
{
81-
category: 'AuditEvent'
82-
enabled: true
83-
retentionPolicy: {
84-
enabled: true
85-
days: 30
86-
}
87-
}
88-
]
89-
}
90-
}

0 commit comments

Comments
 (0)