mirror of
https://github.com/bartvdbraak/keyweave.git
synced 2025-04-27 14:51:21 +00:00
121 lines
2.6 KiB
Bicep
121 lines
2.6 KiB
Bicep
param nameFormat string
|
|
param location string
|
|
param tags object
|
|
|
|
param identities array
|
|
|
|
var accessPolicies = [for identity in identities: {
|
|
tenantId: tenant().tenantId
|
|
objectId: identity.id
|
|
permissions: {
|
|
secrets: contains(identity.name, 'get') && contains(identity.name, 'list') ? ['Get', 'List'] : contains(identity.name, 'get') ? ['Get'] : contains(identity.name, 'list') ? ['List'] : []
|
|
}
|
|
}]
|
|
|
|
/*
|
|
Log Analytics Workspace (existing)
|
|
*/
|
|
|
|
resource _logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = {
|
|
name: format(nameFormat, 'LAW', 1)
|
|
}
|
|
|
|
/*
|
|
Key Vault
|
|
*/
|
|
|
|
resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' = {
|
|
name: replace(toLower(format(nameFormat, 'KVT', 1)), '-', '')
|
|
location: location
|
|
tags: tags
|
|
properties: {
|
|
sku: {
|
|
family: 'A'
|
|
name: 'standard'
|
|
}
|
|
tenantId: tenant().tenantId
|
|
enableSoftDelete: true
|
|
enablePurgeProtection: true
|
|
accessPolicies: accessPolicies
|
|
}
|
|
resource testSecret 'secrets' = {
|
|
name: 'testSecret'
|
|
properties: {
|
|
value: 'testSecretValue'
|
|
}
|
|
}
|
|
resource filterTestSecret 'secrets' = {
|
|
name: 'filterTestSecret'
|
|
properties: {
|
|
value: 'filterTestSecretValue'
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
Key Vault
|
|
*/
|
|
|
|
resource keyVaultWithFirewall 'Microsoft.KeyVault/vaults@2023-07-01' = {
|
|
name: replace(toLower(format(nameFormat, 'KVT', 2)), '-', '')
|
|
location: location
|
|
tags: tags
|
|
properties: {
|
|
sku: {
|
|
family: 'A'
|
|
name: 'standard'
|
|
}
|
|
tenantId: tenant().tenantId
|
|
enableSoftDelete: true
|
|
enablePurgeProtection: true
|
|
accessPolicies: accessPolicies
|
|
networkAcls: {
|
|
defaultAction: 'Deny'
|
|
ipRules: []
|
|
}
|
|
}
|
|
resource testSecret 'secrets' = {
|
|
name: 'testSecret'
|
|
properties: {
|
|
value: 'testSecretValue'
|
|
}
|
|
}
|
|
resource filterTestSecret 'secrets' = {
|
|
name: 'filterTestSecret'
|
|
properties: {
|
|
value: 'filterTestSecretValue'
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
Diagnostic Settings for Key Vaults
|
|
*/
|
|
|
|
resource keyVaultDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
|
|
name: 'keyVaultLogging'
|
|
scope: keyVault
|
|
properties: {
|
|
workspaceId: _logAnalyticsWorkspace.id
|
|
logs: [
|
|
{
|
|
category: 'AuditEvent'
|
|
enabled: true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
resource keyVaultWithFirewallDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
|
|
name: 'keyVaultLogging'
|
|
scope: keyVaultWithFirewall
|
|
properties: {
|
|
workspaceId: _logAnalyticsWorkspace.id
|
|
logs: [
|
|
{
|
|
category: 'AuditEvent'
|
|
enabled: true
|
|
}
|
|
]
|
|
}
|
|
}
|