Back to Blog
2 min read

Azure Blueprints: Repeatable Environment Templates

Azure Blueprints package policies, role assignments, ARM templates, and resource groups into deployable templates for consistent environments.

Blueprint Components

  • Role Assignments: RBAC permissions
  • Policy Assignments: Governance rules
  • ARM Templates: Infrastructure definitions
  • Resource Groups: Organizational structure

Creating a Blueprint

{
  "properties": {
    "displayName": "Data Platform Blueprint",
    "description": "Standard data platform environment",
    "targetScope": "subscription",
    "parameters": {
      "environment": {
        "type": "string",
        "allowedValues": ["dev", "test", "prod"]
      },
      "costCenter": {
        "type": "string"
      }
    },
    "resourceGroups": {
      "DataPlatform-RG": {
        "name": "[concat('data-platform-', parameters('environment'), '-rg')]",
        "location": "australiaeast"
      }
    }
  }
}

Adding Artifacts

# Add ARM template
New-AzBlueprintArtifact -Blueprint $blueprint -Name 'StorageAccount' -Type TemplateArtifact `
    -TemplateFile ./storage.json -ResourceGroupName 'DataPlatform-RG'

# Add policy assignment
New-AzBlueprintArtifact -Blueprint $blueprint -Name 'RequireTags' -Type PolicyAssignmentArtifact `
    -PolicyDefinitionId '/providers/Microsoft.Authorization/policyDefinitions/...'

# Add role assignment
New-AzBlueprintArtifact -Blueprint $blueprint -Name 'ContributorAccess' -Type RoleAssignmentArtifact `
    -RoleDefinitionId '/providers/Microsoft.Authorization/roleDefinitions/...' `
    -PrincipalIds @('group-object-id')

Publishing and Assigning

# Publish version
Publish-AzBlueprint -Blueprint $blueprint -Version '1.0'

# Assign to subscription
New-AzBlueprintAssignment -Blueprint $blueprint -Name 'DataPlatformDev' `
    -Location 'australiaeast' -SubscriptionId 'xxx' `
    -Parameter @{environment='dev'; costCenter='IT'}

Locking

Blueprints support resource locking:

  • Don’t Lock: Normal operation
  • Read Only: Prevent modifications
  • Do Not Delete: Prevent deletion

Blueprints ensure every environment starts from a known, compliant state.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.