Skip to main content

azKeyvault

Deploy an Azure KeyVault to the relevant subscription.

Attributes

AttributeTypeMandatoryValuesDefaultNotes
NameStringYes
ResourceGroupNameStringYes
LocationStringYes
ZoneStringNo
SkuStringNo
EnabledForDeploymentBooleanNoFalse
EnabledForTemplateDeploymentBooleanNoFalse
EnabledForDiskEncryptionBooleanNoFalse
EnablePurgeProtectionBooleanNoFalse
NetworkObjectNo
DiagnosticObjectNo
TagObjectNo
LockObjectNo

Network

AttributeTypeMandatoryValuesDefaultNotes
PrivateEndpointObjectNo
PublicAccessObjectNo

PublicAccess

AttributeTypeMandatoryValuesDefaultNotes
EnabledBooleanNoTrue
FirewallObjectNo
VNetObjectNo
Firewall Rule
AttributeTypeMandatoryValuesDefaultNotes
IPRangeArrayYes
VNet Rule
AttributeTypeMandatoryValuesDefaultNotes
SubnetNameStringYes
VNetResourceGroupNameStringYes
VNetNameStringYes

Diagnostic

AttributeTypeMandatoryValuesDefaultNotes
NameStringYesTrue
LogObjectNoTrue
MetricObjectNoTrue
TargetObjectNoTrue

Diagnostic Log

AttributeTypeMandatoryValuesDefaultNotes
EnabledBooleanNoDefaults to true if Category is not null
CategoryArrayNoAuditEvent
AzurePolicyEvaluationDetails

Diagnostic Metric

AttributeTypeMandatoryValuesDefaultNotes
EnabledBoolean
CategoryArrayAllMetrics

Input by YAML

Object model for YAML deployment:

azKeyVault:
# Mandatory
- Name: 'string'
ResourceGroupName: 'string'
Location: 'string'
# Optional
Sku: # Standard (D), Premium
EnabledForDeployment: boolean # True, False (D)
EnabledForTemplateDeployment: boolean # True, False (D)
EnabledForDiskEncryption: boolean # True, False (D)
EnablePurgeProtection: boolean # True, False (D)
Network:
PrivateEndPoint:
Name: 'string'
Location: 'string'
PrivateLinkName: 'string' # Defaults to pl-resource
NetworkInterfaceName: 'string' # Defaults to pe-nic-resource
ResourceGroupName: 'string' # Defaults to RG of the resource
VirtualNetwork:
VNetName: 'string'
SubnetName: 'string'
ResourceGroupName: 'string' # Defaults to RG of the resource
SubscriptionName: 'string' # Defaults to Sub of the resource
PublicAccess:
Enabled: 'string' # True (D), False
Firewall:
IPRange:
- 'string'
VNet:
- SubnetName: 'string'
VnetName: 'string'
VNetResourceGroupName: 'string'
Diagnostic:
- Name: 'string'
Log:
Enabled: boolean # True (D if Category not null), False
Category: [array] # Defaults to all if enabled
Metric:
Enabled: boolean # True (D if MetricCategory not null), False
Category: [array] # Defaults to all if enabled
Target:
Blob:
StorageAccount: 'string'
ResourceGroupName: 'string' # Defaults to RG of resource
Subscription: 'string' # Defaults to Sub of resource
StorageKeyType: 'string' # Primary, Secondary
RetentionInDays: number
EventHub:
Name: 'string'
Namespace: 'string'
ResourceGroupName: 'string' # Defaults to RG of resource
Subscription: 'string' # Defaults to Sub of resource
SharedAccessPolicy: 'string' # RootManageSharedAccessKey (D)
LogAnalytics:
Workspace: 'string'
ResourceGroupName: 'string' # Defaults to RG of resource
Subscription: 'string' # Defaults to Sub of resource
Tag:
'keyvalue-pairs'
Lock:
- Name: 'string'
Level: 'string' # CanNotDelete, ReadOnly
Notes: 'string'

Input by JSON

Object model for JSON deployment:

{
"azKeyVault": [
{
"Name": "string",
"ResourceGroupName": "string",
"Location": "string",
"Sku": "string",
"EnabledForDeployment": boolean,
"EnabledForTemplateDeployment": boolean,
"EnabledForDiskEncryption": boolean,
"EnablePurgeProtection": boolean,
"Network": {
"PrivateEndPoint": {
"Name": "string",
"Location": "string",
"PrivateLinkName": "string",
"NetworkInterfaceName": "string",
"ResourceGroupName": "string",
"VirtualNetwork": {
"VNetName": "string",
"SubnetName": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
}
},
"PublicAccess": {
"Enabled": "string",
"Firewall": {
"IPRange": [
"string"
]
},
"VNet": [
{
"SubnetName": "string",
"VnetName": "string",
"VNetResourceGroupName": "string"
}
]
}
},
"Diagnostic": [
{
"Name": "string",
"Log": {
"Enabled": boolean,
"Category": [array]
},
"Metric": {
"Enabled": boolean,
"Category": [array]
},
"Target": {
"Blob": {
"StorageAccount": "string",
"ResourceGroupName": "string",
"Subscription": "string",
"StorageKeyType": "string",
"RetentionInDays": number
},
"EventHub": {
"Name": "string",
"Namespace": "string",
"ResourceGroupName": "string",
"Subscription": "string",
"SharedAccessPolicy": "string"
},
"LogAnalytics": {
"Workspace": "string",
"ResourceGroupName": "string",
"Subscription": "string"
}
}
}
],
"Tag": {
"key": "value"
},
"Lock": [
{
"Name": "string",
"Level": "string",
"Notes": "string"
}
]
}
]
}

Validation

The following validation is performed by Powershell function Confirm-JDResource.

Attribute: Name
Validation:
Mandatory: cannot be null
Attribute: ResourceGroupName
Validation:
Mandatory: cannot be null
Attribute: Location
Validation:
Mandatory: cannot be null