Skip to main content

azStorage

Deploy an Azure Storage account.

Attributes

AttributeTypeMandatoryValuesDefaultNotes
NameString
ResourceGroupNameString
LocationString
KindStringStorage
StorageV2 (D)
BlobStorage
BlockBlobStorage
FileStorage
SkuStringStandard_LRS
Standard_ZRS
Standard_GRS
Standard_RAGRS
Premium_LRS
Premium_ZRS
EnableAzureActiveDirectoryBooleanNoFalse
NetworkObjectNo
SecurityObjectNo
DiagnosticObjectNo
TagObjectNo
LockObjectNo
BlobObjectNo
FileShareObjectNo

Network

AttributeTypeMandatoryValuesDefaultNotes
PublicNetworkAccessStringNoEnabled, Selected, DisabledSelected
VNetObjectNo
FirewallObjectNo
ResourcesObjectNo
ExceptionsObjectNo
RoutingPreferenceStringNoMicrosoftRouting (D)
InternetRouting
PrivateEndpointObjectNo

Network VNet

AttributeTypeMandatoryValuesDefaultNotes
SubnetNameStringYes
VNetNameStringYes
ResourceGroupNameStringYes

Network Firewall

AttributeTypeMandatoryValuesDefaultNotes
IPAddressOrRangeArrayNo

Network Resources

AttributeTypeMandatoryValuesDefaultNotes
TypeStringYes
ScopeStringYes

Network Exceptions

AttributeTypeMandatoryValuesDefaultNotes
AllowAzureServicesBooleanNoTrue
AllowReadAccessLoggingBooleanNoFalse
AllowReadAccessMetricsBooleanNoFalse

Security

AttributeTypeMandatoryValuesDefaultNotes
EnableHttpsTrafficOnlyBooleanFalse
AllowSharedKeyAccessBooleanTrue
MinimumTlsVersionStringNoTLS1_0, TLS1_1, TLS1_2 (D)TLS1_2
InfrastructureEncryptionBooleanNoFalse

Diagnostic

AttributeTypeMandatoryValuesDefaultNotes
NameStringYes
MetricObjectNo
TargetObjectNo

Diagnostic Metric

AttributeTypeMandatoryValuesDefaultNotes
EnabledBooleanYes *True, False** Defaults to true if Category is not null
CategoryArrayTransaction

Blob

AttributeTypeMandatoryValuesDefaultNotes
AccessTierString
EnableNfsV3BooleanFalse
AllowPublicAccessBooleanNoTrue
AllowCrossTenantReplicationBooleanNoTrue
EnableHierarchicalNamespaceBooleanNoFalse
EnableContainerSoftDeleteBooleanNoFalseNumber of days
ContainerSoftDeleteRetentionNumberNo
EnableBlobSoftDeleteBooleanNoFalse
BlobSoftDeleteRetentionNumberNoNumber of days
EnableVersioningBooleanNoFalse
EnableChangeFeedBooleanNoFalse
ContainerObjectNo
DiagnosticObjectNo

Blob Container

AttributeTypeMandatoryValuesDefaultNotes
NameStringYes
PublicAccessStringYesNone, List, ReadEquals MS Off/Private, Blob, Container

Blob Diagnostic

AttributeTypeMandatoryValuesDefaultNotes
NameString
LogObject
MetricObject
TargetObject

Blob Diagnostic Log

AttributeTypeMandatoryValuesDefaultNotes
EnabledBooleanDefaults to true if Category is not null
CategoryArrayStorageRead
StorageWrite
StorageDelete

Blob Diagnostic Metric

AttributeTypeMandatoryValuesDefaultNotes
EnabledBooleanTrue, False** Defaults to true if Category is not null
CategoryArrayTransaction

File Share

AttributeTypeMandatoryValuesDefaultNotes
EnableLargeFileShareBooleanNoFalse

Input by YAML

Object model for YAML deployment:

---
azStorage:
# Mandatory
- Name: 'string'
ResourceGroupName: 'string'
Location: 'string'
# Optional
Kind: 'string' # Storage, StorageV2 (D), BlobStorage, BlockBlobStorage, FileStorage
Sku: 'string' # Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS
EnableAzureActiveDirectory: boolean # False (D), True

Network:
PublicNetworkAccess: 'string' # Enabled, Selected (D), Disabled
VNet:
- SubnetName: 'string'
VNetName: 'string'
ResourceGroupName: 'string'
Firewall:
IPAddressOrRange: [array]
Resources:
- Type: 'string'
Scope: 'string'
Exceptions:
AllowAzureServices: boolean # True (D), False
AllowReadAccessLogging: boolean # True, False (D)
AllowReadAccessMetrics: boolean # True, False (D)
RoutingPreference: 'string' # MicrosoftRouting (D), InternetRouting

PrivateEndPoint:
- Name: 'string'
Location: 'string'
PrivateLinkName: 'string' # Defaults to pl-resource
NetworkInterfaceName: 'string' # Defaults to 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

Security:
EnableHttpsTrafficOnly: boolean # False (D), True
AllowSharedKeyAccess: boolean # False, True (D)
MinimumTlsVersion: 'string' # TLS1_0, TLS1_1, TLS1_2 (D)
InfrastructureEncryption: boolean # False (D), True

Diagnostic:
- Name: 'string'
Metric:
Enabled: boolean # True (D if MetricCategory not null), False
Category:
- Transaction # defaults to all if enabled
Target:
Blob:
StorageAccount: 'string'
StorageKeyType: 'string' # Primary, Secondary
RetentionInDays: number
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource
EventHub:
Name: 'string'
Namespace: 'string'
SharedAccessPolicy: 'string' # RootManageSharedAccessKey (D)
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource
LogAnalytics:
Workspace: 'string'
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource

Tag:
<keyvalue-pairs>

Lock:
- Name: 'string'
Level: 'string' # CanNotDelete, ReadOnly
Notes: 'string'

Blob:
EnableHierarchicalNamespace: boolean # False (D), True
AllowPublicAccess: boolean # False, True (D)
AccessTier: 'string' # Hot (D), Cool
EnableContainerSoftDelete: boolean # False (D), True
ContainerSoftDeleteRetention: number # Number of days
EnableBlobSoftDelete: boolean # False (D), True
BlobSoftDeleteRetention: number # Number of days
EnableVersioning: boolean # False (D), True (Only for standard accounts)
EnableChangeFeed: boolean # False (D), True (Only for standard accounts)
ImmutabilityPeriod: number # > 0 will enable account Immutability
ImmutabilityPolicyState: 'string' # Unlocked, Disabled
EnableNfsV3: boolean # False (D), True
AllowCrossTenantReplication: boolean # False, True (D)

Diagnostic:
- Name: 'string'
Log:
Enabled: boolean # True (D if Category not null), False
Category: # defaults to all if enabled
- StorageRead
- StorageWrite
- StorageDelete
Metric:
Enabled: boolean # True (D if MetricCategory not null), False
Category: # defaults to all if enabled
- Transaction
Target:
Blob:
StorageAccount: 'string'
StorageKeyType: 'string' # Primary, Secondary
RetentionInDays: number
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource
EventHub:
Name: 'string'
Namespace: 'string'
SharedAccessPolicy: 'string' # RootManageSharedAccessKey (D)
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource
LogAnalytics:
Workspace: 'string'
ResourceGroupName: 'string' # Defaults to RG of resource
SubscriptionName: 'string' # Defaults to subscription of resource

Container:
- Name: 'string'
PublicAccess: 'string' # None, List, Read (Equals MS Off/Private, Blob, Container)

Input by JSON

Object model for JSON deployment:

{
"azStorage": [
{
"Name": "string",
"ResourceGroupName": "string",
"Location": "string",
"Kind": "string",
"Sku": "string",
"EnableAzureActiveDirectory": boolean,
"Network": {
"PublicNetworkAccess": "string",
"VNet": [
{
"SubnetName": "string",
"VNetName": "string",
"ResourceGroupName": "string"
}
],
"Firewall": {
"IPAddressOrRange": [
"array"
]
},
"Resources": [
{
"Type": "string",
"Scope": "string"
}
],
"Exceptions": {
"AllowAzureServices": boolean,
"AllowReadAccessLogging": boolean,
"AllowReadAccessMetrics": boolean
},
"RoutingPreference": "string",
"PrivateEndPoint": [
{
"Name": "string",
"Location": "string",
"PrivateLinkName": "string",
"NetworkInterfaceName": "string",
"ResourceGroupName": "string",
"VirtualNetwork": {
"VNetName": "string",
"SubnetName": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
}
}
]
},
"Security": {
"EnableHttpsTrafficOnly": boolean,
"AllowSharedKeyAccess": boolean,
"MinimumTlsVersion": "string",
"InfrastructureEncryption": boolean
},
"Diagnostic": [
{
"Name": "string",
"Metric": {
"Enabled": boolean,
"Category": [array]
},
"Target": {
"Blob": {
"StorageAccount": "string",
"StorageKeyType": "string",
"RetentionInDays": number,
"ResourceGroupName": "string",
"SubscriptionName": "string"
},
"EventHub": {
"Name": "string",
"Namespace": "string",
"SharedAccessPolicy": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
},
"LogAnalytics": {
"Workspace": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
}
}
}
],
"Tag": {
"key": "value",
"Lock": [
{
"Name": "string",
"Level": "string",
"Notes": "string"
}
],
"Blob": {
"EnableHierarchicalNamespace": boolean,
"AllowPublicAccess": boolean,
"AccessTier": "string",
"EnableContainerSoftDelete": boolean,
"ContainerSoftDeleteRetention": number,
"EnableBlobSoftDelete": boolean,
"BlobSoftDeleteRetention": number,
"EnableVersioning": boolean,
"EnableChangeFeed": boolean,
"ImmutabilityPeriod": number,
"ImmutabilityPolicyState": "string",
"EnableNfsV3": boolean,
"AllowCrossTenantReplication": boolean,
"Diagnostic": [
{
"Name": "string",
"Log": {
"Enabled": boolean,
"Category": [array]
},
"Metric": {
"Enabled": boolean,
"Category": [array]
},
"Target": {
"Blob": {
"StorageAccount": "string",
"StorageKeyType": "string",
"RetentionInDays": number,
"ResourceGroupName": "string",
"SubscriptionName": "string"
},
"EventHub": {
"Name": "string",
"Namespace": "string",
"SharedAccessPolicy": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
},
"LogAnalytics": {
"Workspace": "string",
"ResourceGroupName": "string",
"SubscriptionName": "string"
}
}
}
],
"Container": [
{
"Name": "string",
"PublicAccess": "string"
}
]
}
}
]
}