Skip to content
Sarawut Srichana - IT Portfolio
Go back

Créer et sécuriser un compte de stockage Azure et un conteneur Blob privé pour des données sensibles

Table of Contents

Open Table of Contents

Résumé pour la direction

Scenario

Dans le cadre de la consolidation de données sensibles liées à une migration, l’équipe Nautilus DevOps avait besoin d’un référentiel Azure centralisé, durable et strictement contrôlé. L’objectif était de créer un espace de stockage adapté aux usages Blob tout en réduisant le risque d’exposition accidentelle des données.

Les exigences principales étaient les suivantes :

Cette opération répond à un besoin classique de gouvernance cloud : stocker des artefacts de migration dans une plateforme managée, tout en respectant les bonnes pratiques de protection des données.

Resolution

Le déploiement a abouti à la création du compte de stockage xfusionst9844 dans le groupe de ressources kml_rg_main-2e7a526a32b24440 en région East US, ainsi qu’au conteneur Blob xfusion-blob-17812 configuré en accès Private.

La configuration obtenue permet :

La validation fonctionnelle repose sur la présence des ressources attendues et sur le fait que le conteneur n’autorise pas l’accès public.

Technical Implementation

Topology

The deployment was implemented in Azure as a lightweight storage security baseline for sensitive migration artifacts.

Target resources

This is a headless, CLI-first deployment pattern suitable for repeatable administration and future IaC adoption. No complex networking topology was required for this task because the core objective was secure object storage provisioning with restricted blob exposure.

Azure Configuration

Info

Architectural Insight — Defense in Depth Setting the container access level to private is necessary, but enterprise security should also disable Blob anonymous access at the Storage Account level. This creates an additional control boundary that prevents accidental public exposure caused by future container misconfiguration, scripting errors, or policy drift. In practice, account-level anonymous access disablement is a stronger data leakage prevention measure than relying only on container-level privacy.

Action

The implementation used concise command-line automation to provision the storage account and create the private blob container. The approach favors native Azure capabilities and avoids unnecessary scripting complexity.

Azure CLI deployment

RG="kml_rg_main-2e7a526a32b24440"
LOCATION="eastus"
STORAGE_ACCOUNT="xfusionst9844"
CONTAINER_NAME="xfusion-blob-17812"

az storage account create \
  --name "$STORAGE_ACCOUNT" \
  --resource-group "$RG" \
  --location "$LOCATION" \
  --sku Standard_LRS \
  --kind StorageV2 \
  --allow-blob-public-access false

az storage container create \
  --name "$CONTAINER_NAME" \
  --account-name "$STORAGE_ACCOUNT" \
  --auth-mode login \
  --public-access offdeploy-storage.sh

Azure PowerShell deployment

$ResourceGroupName = "kml_rg_main-2e7a526a32b24440"
$Location = "EastUS"
$StorageAccountName = "xfusionst9844"
$ContainerName = "xfusion-blob-17812"

$storageAccount = New-AzStorageAccount `
  -ResourceGroupName $ResourceGroupName `
  -Name $StorageAccountName `
  -Location $Location `
  -SkuName Standard_LRS `
  -Kind StorageV2 `
  -AllowBlobPublicAccess $false

New-AzStorageContainer `
  -Name $ContainerName `
  -Context $storageAccount.Context `
  -Permission Offdeploy-storage.ps1

Validation steps

az storage account show \
  --name "xfusionst9844" \
  --resource-group "kml_rg_main-2e7a526a32b24440" \
  --query "{name:name,kind:kind,allowBlobPublicAccess:allowBlobPublicAccess}" \
  -o table

az storage container show \
  --name "xfusion-blob-17812" \
  --account-name "xfusionst9844" \
  --auth-mode login \
  --query "{name:name,publicAccess:properties.publicAccess}" \
  -o tablevalidate-storage.sh
Success

The final state is compliant with the requested scope: a StorageV2 account was created, blob anonymous access was disabled at the account level, and the container was provisioned with private access.

Warning

If uploads will be automated later through pipelines or applications, prefer Microsoft Entra ID and RBAC over shared keys wherever possible to reduce credential management risk.

This workflow also illustrates a practical shift from portal-driven provisioning to reusable command-based deployment. While this task does not require full Infrastructure as Code, the CLI and PowerShell commands provide a clean foundation for later conversion into Bicep, Terraform, or CI/CD automation.


Share this post:

Previous Post
Provisionner un disque managé Azure autonome pour une migration d’infrastructure
Next Post
Provisionner un conteneur Blob Azure public avec accès anonyme