On This Page

Home / Lake/ Set Up Storage Locations/BYOS Azure ARM Template Reference

BYOS Azure ARM Template Reference

This topic is a reference guide for the Azure ARM template generated during Azure BYOS setup.


Overview

When you create an Azure Storage Location in Cribl Lake, the system generates a customized Azure Resource Manager (ARM) template for your environment. This template provisions the Azure infrastructure required for Cribl Lake BYOS, including the storage account, inventory reporting, lifecycle management, and role assignments for the Cribl service principal.

Deploying this template is a required step in the Azure BYOS onboarding flow. It ensures your Azure environment is configured correctly before Cribl Lake begins writing or reading data.

Prerequisites

Before deploying the ARM template, ensure you have:

  • An active Azure subscription.
  • A resource group in the Azure region where you want to store data.
  • Permissions to create storage accounts and assign roles within the target resource group (typically Owner or User Access Administrator + Contributor).
  • The ARM template JSON file downloaded from the Cribl Lake UI. See Authenticate the Storage Account Access.

The resource group location determines where the storage account is created. Choose a region that aligns >with your data residency requirements.

Resources Created

The template creates the following resources in your Azure subscription:

ResourceTypePurpose
Storage accountMicrosoft.Storage/storageAccountsPrimary storage for Cribl Lake Datasets
Blob serviceMicrosoft.Storage/storageAccounts/blobServicesConfigures blob storage settings
Inventory containerMicrosoft.Storage/storageAccounts/blobServices/containersStores daily inventory reports used for billing
Inventory policyMicrosoft.Storage/storageAccounts/inventoryPoliciesGenerates daily Parquet reports of all blobs
Lifecycle policyMicrosoft.Storage/storageAccounts/managementPoliciesAuto-deletes inventory reports after 7 days
Role assignment (data)Microsoft.Authorization/roleAssignmentsGrants Cribl read/write access to blob data
Role assignment (management)Microsoft.Authorization/roleAssignmentsGrants Cribl management access to the storage account

Storage Account Configuration

The storage account is created with the following security settings:

  • SKU: Standard_LRS (locally redundant storage)
  • Kind: StorageV2
  • Minimum TLS version: 1.2
  • Public blob access: Disabled
  • HTTPS only: Enabled
  • Access tier: Hot
  • Encryption: Enabled (Microsoft-managed keys)

The template does not create a data container for your Datasets. Cribl Lake creates Dataset containers automatically when you configure Datasets against this storage location.

Role Assignments

The template assigns two Azure RBAC roles to the Cribl service principal:

RoleScopePurpose
Storage Blob Data ContributorStorage accountRead, write, and delete blob data (Dataset operations)
Storage Account ContributorStorage accountManage storage account settings, lifecycle policies, and inventory configuration

The service principal ID is unique to your Cribl Workspace and is embedded in the template when you download it. This principal is authorized in your tenant when you visit the consent URL during onboarding.

Do not modify the servicePrincipalObjectId value. This is the Cribl-managed identity that your Workspace uses to access your storage. {.box. danger}

Inventory Policy

The inventory policy generates a daily Parquet report containing metadata for all block blobs in the storage account:

  • Schedule: Daily
  • Format: Parquet
  • Fields captured: Name, Content-Length, Creation-Time
  • Destination: inventoryreports container
  • Exclusions: Blobs within the inventoryreports/ prefix (avoids self-referencing)

Cribl uses these inventory reports to meter storage usage for billing. The reports are stored in your storage account – the billing pipeline reads them from there.

The first inventory report may take 24-48 hours to appear after deployment. Azure may skip a daily run if the previous report is still being generated.

Inventory Cleanup

A lifecycle management policy automatically deletes inventory reports older than 7 days.

Outputs

The template returns the following values after successful deployment:

OutputDescriptionUsed For
storageAccountNameName of the created storage accountCribl Lake storage location configuration
subscriptionIdAzure subscription IDAzure SDK authentication
resourceGroupNameResource group nameAzure SDK authentication
tenantIdAzure AD tenant IDReference and validation

These values are used by Cribl Lake to connect to your storage account. If you deploy via the Azure Portal, you can find them in the deployment Outputs tab.

Safe to Customize

  • Resource group and region: Deploy to any resource group in a supported Azure region.

Do Not Modify

  • Service principal object ID: Must match your Cribl Workspace identity.
  • Role assignments: Required for Cribl Lake to operate. Removing or narrowing these will cause connectivity failures.
  • Inventory policy: Required for billing - disabling this will prevent Cribl from metering usage.
  • Storage account name: Generated by Cribl to match your storage location configuration.

Security Considerations

The template follows Azure security best practices:

  • No public blob access: All blob access requires authentication.
  • TLS 1.2 enforced: Connections using older TLS versions are rejected.
  • HTTPS only: Unencrypted HTTP traffic is not accepted.
  • Encryption at rest: All blob data is encrypted with Microsoft-managed keys by default.
  • Scoped permissions: Role assignments are scoped to the storage account, not the subscription or resource group.
  • No shared keys or SAS tokens: Access is controlled entirely through Entra ID and RBAC.

If your organization requires customer-managed encryption keys (CMK), you can configure Azure Key Vault integration on the storage account after deployment. See Microsoft’s documentation on customer-managed keys for Azure Storage for details.