1. Answers
  2. Configure CORS rules for Azure Blob Storage

How do I configure CORS rules for Azure Blob Storage?

In this guide, we will configure Cross-Origin Resource Sharing (CORS) rules for Azure Blob Storage using Pulumi. CORS is a security feature that allows or restricts resources on a web page to be requested from another domain outside the domain from which the resource originated. By setting up CORS rules, you can control which domains can access your Azure Blob Storage resources.

Steps to Configure CORS Rules for Azure Blob Storage

  1. Create an Azure Resource Group: This is a container that holds related resources for an Azure solution.
  2. Create a Storage Account: This is where your blobs will be stored.
  3. Configure CORS Rules: Define the allowed origins, methods, headers, and other settings for CORS.

Code Implementation

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure-native";

// Create an Azure Resource Group
const resourceGroup = new azure.resources.ResourceGroup("resourceGroup", {
    resourceGroupName: "exampleResourceGroup",
    location: "WestUS",
});

// Create an Azure Storage Account
const storageAccount = new azure.storage.StorageAccount("storageAccount", {
    resourceGroupName: resourceGroup.name,
    accountName: "examplestorageacct",
    location: resourceGroup.location,
    sku: {
        name: "Standard_LRS",
    },
    kind: "StorageV2",
});

// Configure CORS rules for the Storage Account Blob service
const blobServiceProperties = new azure.storage.BlobServiceProperties("blobServiceProperties", {
    accountName: storageAccount.name,
    resourceGroupName: resourceGroup.name,
    cors: {
        corsRules: [{
            allowedOrigins: ["https://example.com"], // Replace with your allowed origins
            allowedMethods: ["GET", "POST"], // HTTP methods allowed
            allowedHeaders: ["*"], // Headers allowed in the request
            exposedHeaders: ["*"], // Headers exposed in the response
            maxAgeInSeconds: 3600, // How long the results of a preflight request can be cached
        }],
    },
});

Key Points

  • Resource Group: A logical container for Azure resources.
  • Storage Account: A storage account to hold blobs, files, and other data.
  • CORS Configuration: Rules that specify which domains can access your storage account and how they can interact with it.

Summary

In this guide, we configured CORS rules for an Azure Blob Storage account using Pulumi. We created a resource group and a storage account, and then set up CORS rules to allow specific domains to access the storage account with defined methods and headers. This setup helps control cross-origin requests to your Azure Blob Storage resources.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up