Deploy an Azure Storage Account with Terraform

30 minutes
  • 2 Learning Objectives

About this Hands-on Lab

In this lab, we will deploy a simple storage account and add some tagging. Setting up storage accounts is a routine task in Azure and is an integral part of storage-related activities. Automating its deployment with Terraform offers the Azure admin an easy way to duplicate accounts with static environment variables or business-related standards, necessitating only that the storage account’s name is customized for each deployment. Storage accounts are also mandatory prerequisites for any new blob storage or file shares that may be created within the same Terraform deployment file.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Log In to the Azure Portal and Set Up the Azure CLI for Use
  1. In the Azure portal, select the Command Line button at the top of the screen. Open the CLI. Here, select Bash when prompted. We then want to choose Show Advanced Settings. Use the same location as your lab provided resource group. Leave both the Resource Group and Storage Account as the provided defaults. In the File share section, enter a name for the account (for this example, we are using console) and click the Attach Storage button. Once finished, we can continue.
  2. Click the Create Storage button.
  3. Once the command prompt is initialized, proceed to the next task.
Create an Azure Storage Account with Terraform via the Azure CLI
  1. Use the code block found in the Additional Information and Resources section to create a file and upload it to the CLI.
  2. In the resource "azurerm_storage_account" "lab" declaration, you’ll need to edit the resource_group_name value with the name generated by the lab. Additionally, you’ll need to enter a unique name for the storage account that will be used for the file share. The "provider" statement has been added to the code, so you won’t need to create a file to deploy the storage account.
  3. Once the file has been uploaded, run terraform init.
  4. Run terraform plan and review the output to confirm that Terraform will create the desired resource. Green plus signs will indicate the resources that need to be added.
  5. Run terraform apply, answering yes to the prompt to continue.
  6. Once Terraform completes the deployment, check the Azure Portal to confirm.

You’re done! Go ahead and shut down the lab.

Additional Resources

Note: Use the updated code shown below for this lab.

Let's set up a basic storage account with Terraform. The location, account tier, and replication type are already in place. You'll need to determine the resource group and account name for this lab. Additionally, we'll add a couple of tags to this deployment. They're pre-named, but feel free to change them if you like.

Code for the file follows

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "2.93.0"
    azuread = {
      source = "hashicorp/azuread"

provider "azurerm" {
  features {}
  skip_provider_registration = true
resource "azurerm_storage_account" "lab" {
  name                     = "[Insert unique storage account name here]"
  resource_group_name      = "[Insert your Resource Group's name here]"
  location                 = "East US"
  account_tier             = "Standard"
  account_replication_type = "LRS"

  tags = {
    environment = "Terraform Storage"
    CreatedBy   = "Admin"

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?