Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 33 additions & 6 deletions docs/static/includes/interfaces/bicep/int.cmk.udt.schema1.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,39 @@ import { customerManagedKeyType } from 'br/public:avm/utl/types/avm-common-types
@description('Optional. The customer managed key definition.')
param customerManagedKey customerManagedKeyType?

// ============= //
// Variables //
// ============= //

var keyVaultType = !empty(customerManagedKey.?keyVaultResourceId)
? split(customerManagedKey.?keyVaultResourceId!, '/')[7]
: ''
var isHSMKeyVault = contains(keyVaultType, 'managedHSMs')

// ============= //
// Resources //
// ============= //

resource cMKKeyVault 'Microsoft.KeyVault/vaults@2023-02-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId)) {
resource cMKKeyVault 'Microsoft.KeyVault/vaults@2024-11-01' existing = if (!isHSMKeyVault && !empty(customerManagedKey.?keyVaultResourceId)) {
name: last(split((customerManagedKey.?keyVaultResourceId!), '/'))
scope: resourceGroup(
split(customerManagedKey.?keyVaultResourceId!, '/')[2],
split(customerManagedKey.?keyVaultResourceId!, '/')[4]
)

resource cMKKey 'keys@2024-11-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId) && !empty(customerManagedKey.?keyName)) {
name: customerManagedKey.?keyName!
}
}

resource hSMCMKKeyVault 'Microsoft.KeyVault/managedHSMs@2024-11-01' existing = if (isHSMKeyVault && !empty(customerManagedKey.?keyVaultResourceId)) {
name: last(split((customerManagedKey.?keyVaultResourceId!), '/'))
scope: resourceGroup(
split(customerManagedKey.?keyVaultResourceId!, '/')[2],
split(customerManagedKey.?keyVaultResourceId!, '/')[4]
)

resource cMKKey 'keys@2023-02-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId) && !empty(customerManagedKey.?keyName)) {
resource hSMCMKKey 'keys@2024-11-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId) && !empty(customerManagedKey.?keyName)) {
name: customerManagedKey.?keyName!
}
}
Expand All @@ -38,14 +59,20 @@ resource >singularMainResourceType< '>providerNamespace</>resourceType<@>apiVers
? {
keySource: 'Microsoft.KeyVault'
keyVaultProperties: {
keyVaultUri: cMKKeyVault.properties.vaultUri
keyVaultUri: !isHSMKeyVault ? cMKKeyVault!.properties.vaultUri : hSMCMKKeyVault!.properties.hsmUri
keyName: customerManagedKey!.keyName
keyVersion: !empty(customerManagedKey.?keyVersion)
? customerManagedKey!.keyVersion!
: last(split(cMKKeyVault::cMKKey!.properties.keyUriWithVersion, '/'))
: !isHSMKeyVault
? last(split(cMKKeyVault::cMKKey!.properties.keyUriWithVersion, '/'))
: last(split(hSMCMKKeyVault::hSMCMKKey!.properties.keyUriWithVersion, '/'))
keyIdentifier: !empty(customerManagedKey.?keyVersion)
? '${cMKKeyVault::cMKKey!.properties.keyUri}/${customerManagedKey!.keyVersion!}'
: cMKKeyVault::cMKKey!.properties.keyUriWithVersion
? ( !isHSMKeyVault
? '${cMKKeyVault::cMKKey!.properties.keyUri}/${customerManagedKey!.keyVersion!}'
: '${hSMCMKKeyVault::hSMCMKKey!.properties.keyUri}/${customerManagedKey!.keyVersion!}')
: ( !isHSMKeyVault
? cMKKeyVault::cMKKey!.properties.keyUriWithVersion
: hSMCMKKeyVault::hSMCMKKey!.properties.keyUriWithVersion)
identityClientId: !empty(customerManagedKey.?userAssignedIdentityResourceId)
? cMKUserAssignedIdentity!.properties.clientId
: null
Expand Down