Azure Storage Accounts is fundamentele dienste in Microsoft Azure wat skaalbare, veilige en hoog-beskikbare wolk storage vir verskeie datatipes verskaf, insluitend blobs (binary large objects), files, queues, and tables. Hulle dien as houers wat hierdie verskillende storage-dienste saam onder ân enkele namespace groepeer vir maklike bestuur.
Hoof konfigurasie-opsies:
Elke storage account moet ân unieke naam oor alle Azure hĂȘ.
Elke storage account word in ân region of in ân Azure extended zone ontplooi.
Dit is moontlik om die premium weergawe van die storage account te kies vir beter prestasie.
Dit is moontlik om te kies tussen 4 tipes redundansie om te beskerm teen rak-, skyf- en datacentrum-foute.
Sekuriteitskonfigurasie-opsies:
Require secure transfer for REST API operations: Vereis TLS in enige kommunikasie met die storage.
Allows enabling anonymous access on individual containers: As dit nie aangeskakel is nie, sal dit in die toekoms nie moontlik wees om anonieme toegang aan te skakel nie.
Enable storage account key access: As dit nie aangeskakel is nie, sal toegang met Shared Keys verbied wees.
Minimum TLS version
Permitted scope for copy operations: Toelaat vanaf enige storage account, vanaf enige storage account in dieselfde Entra tenant of vanaf storage accounts met private endpoints in dieselfde virtual network.
Blob Storage options:
Allow cross-tenant replication
Access tier: Hot (gereeld toegang tot data), Cool en Cold (selde geraadpleegde data)
Networking options:
Network access:
Allow from all networks
Allow from selected virtual networks and IP addresses
Disable public access and use private access
Private endpoints: Dit laat ân private verbinding toe na die storage account vanaf ân virtual network.
Data protection options:
Point-in-time restore for containers: Maak dit moontlik om containers na ân vroeĂ«r toestand te herstel.
Dit vereis dat versioning, change feed, en blob soft delete aangeskakel is.
Enable soft delete for blobs: Dit stel ân retensieperiode in dae vas vir verwyderde blobs (selfs oorskryfde).
Enable soft delete for containers: Dit stel ân retensieperiode in dae vas vir verwyderde containers.
Enable soft delete for file shares: Dit stel ân retensieperiode in dae vas vir verwyderde file shares.
Enable versioning for blobs: Handhaaf vorige weergawes van jou blobs.
Enable blob change feed: Hou logs van skep-, wysiging- en verwyderingsveranderinge aan blobs by.
Enable version-level immutability support: Laat jou toe om ân tydgebaseerde retensiebeleid op rekeningvlak te stel wat op alle blob-weergawes van toepassing sal wees.
Version-level immutability support en point-in-time restore for containers kan nie gelyktydig aangeskakel word nie.
Encryption configuration options:
Encryption type: Dit is moontlik om Microsoft-managed keys (MMK) of Customer-managed keys (CMK) te gebruik.
Enable infrastructure encryption: Laat toe om die data dubbel te enkodeer âvir meer sekuriteitâ.
Static websites word bedien vanaf die spesiale $web container oor ân region-spesifieke endpoint soos https://<account>.z13.web.core.windows.net/.
Die $web container kan publicAccess: null rapporteer via die blob API, maar lĂȘers is steeds deur die static site endpoint bereikbaar, so die plaas van config/IaC artifacts daar kan leak secrets.
Quick audit workflow:
# Identify storage accounts with static website hosting enabled
az storage blob service-properties show --account-name <acc-name> --auth-mode login
# Enumerate containers (including $web) and their public flags
az storage container list --account-name <acc-name> --auth-mode login
# List files served by the static site even when publicAccess is null
az storage blob list --container-name '$web' --account-name <acc-name> --auth-mode login
# Pull suspicious files directly (e.g., IaC tfvars containing secrets/SAS)
az storage blob download -c '$web' --name iac/terraform.tfvars --file /dev/stdout --account-name <acc-name> --auth-mode login
Lokaliseer storage accounts wat data kan blootstel: az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'. As allowBlobPublicAccess op false gestel is, kan jy nie containers publiek maak nie.
Kontroleer riskante accounts om die vlag en ander swak instellings te bevestig: az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'.
Enumereer container-vlak blootstelling waar die vlag geaktiveer is:
az storage container list --account-name <acc> \
--query '[].{name:name, access:properties.publicAccess}'
"Blob": anonieme lees toegelaat slegs wanneer die blob-naam bekend is (geen listing).
"Container": anonieme list + read van elke blob.
null: privaat; authentication required.
Bewys toegang sonder credentials:
As publicAccess op Container gestel is, werk anonieme listing: curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list".
Vir beide Blob en Container werk anonieme blob-aflaai wanneer die naam bekend is:
az storage blob download -c <container> -n <blob> --account-name <acc> --file /dev/stdout
# or via raw HTTP
curl "https://<acc>.blob.core.windows.net/<container>/<blob>"
Dit is moontlik om generate Shared Keys wat met die toegangsleutels geteken is, te gebruik om toegang tot sekere hulpbronne via ân ondertekende URL te magtig.
Note
Let daarop dat die CanonicalizedResource-gedeelte die storage-dienshulpbron (URI) verteenwoordig. En as enige deel van die URL gekodeer is, moet dit ook binne die CanonicalizedResource gekodeer wees.
Note
Hierdie word standaard deur die az cli gebruik om versoeke te verifieer. Om dit die Entra ID principal-geloofsbriewe te laat gebruik, gee die parameter --auth-mode login aan.
Dit is moontlik om ân shared key for blob, queue and file services te genereer deur die volgende inligting te teken:
Gedeelde Toegangshandtekeninge (SAS) is veilige, tydelike URLâe wat spesifieke toestemmings gee om toegang tot hulpbronne in ân Azure Storage-rekening te kry sonder om die rekenings toegangssleutels bloot te stel. Terwyl toegangssleutels volle administratiewe toegang tot alle hulpbronne bied, laat SAS meer gedetailleerde beheer toe deur toestemmings (bv. lees of skryf) te spesifiseer en ân vervaltyd te definieer.
User delegation SAS: Dit word geskep vanaf ân Entra ID principal wat die SAS sal onderteken en die toestemmings van die gebruiker na die SAS sal delegeer. Dit kan slegs gebruik word met blob and data lake storage (docs). Dit is moontlik om alle gegenereerde user delegated SAS te herroep.
Dit is selfs moontlik om ân delegation SAS te genereer met âmeerâ permissies as wat die gebruiker het. As die principal dit egter nie het nie, sal dit nie werk nie (geen privesc).
Service SAS: Dit word onderteken met een van die storage account access keys. Dit kan gebruik word om toegang tot spesifieke hulpbronne in ân enkele storage service te verleen. As die sleutel hernu word, sal die SAS ophou werk.
Account SAS: Dit word ook onderteken met een van die storage account access keys. Dit verleen toegang tot hulpbronne oor verskeie storage account-dienste (Blob, Queue, Table, File) en kan service-level operasies insluit.
A SAS URL signed by an access key looks like this:
Wanneer ân SAS gegenereer word, moet die toestemmings wat dit behoort te gee aangedui word. Afhangend van die objek waaroor die SAS gegenereer word, kan verskillende permissies ingesluit wees. Byvoorbeeld:
Azure Blob Storage ondersteun nou die SSH File Transfer Protocol (SFTP), wat veilige lĂȘeroorplasing en bestuur direk na Blob Storage moontlik maak sonder dat custom solutions of derdeparty-produkte nodig is.
Protokolondersteuning: SFTP werk met Blob Storage-rekeninge wat met hierarchical namespace (HNS) gekonfigureer is. Dit organiseer blobs in gidse en subgidse vir makliker navigasie.
Sekuriteit: SFTP gebruik plaaslike gebruikersidentiteite vir verifikasie en integreer nie met RBAC of ABAC nie. Elke plaaslike gebruiker kan verifieer via:
Azure-gegenereerde wagwoorde
Openbare-private SSH-sleutelpare
Gedetailleerde toestemmings: Toestemmings soos Lees, Skryf, Verwyder en Lys kan aan plaaslike gebruikers toegeken word vir tot 100 containers.
Netwerkoorwegings: SFTP-verbindinge word deur poort 22 gemaak. Azure ondersteun netwerkkonfigurasies soos firewalls, private endpoints, of virtual networks om SFTP-verkeer te beveilig.
az storage blob show âaccount-name âcontainer-name âsas-token âse=2024-12-31T23%3A59%3A00Z&sp=racwdxyltfmei&sv=2022-11-02&sr=c&sig=ym%2Bu%2BQp5qqrPotIK5/rrm7EMMxZRwF/hMWLfK1VWy6E%3Dâ âname âasd.txtâ