<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: forsyth famous</title>
    <description>The latest articles on DEV Community by forsyth famous (@forsyth_famous_).</description>
    <link>https://dev.to/forsyth_famous_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881270%2F27db0fb1-4493-4bf4-83fd-8d86710e5ff8.png</url>
      <title>DEV Community: forsyth famous</title>
      <link>https://dev.to/forsyth_famous_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/forsyth_famous_"/>
    <language>en</language>
    <item>
      <title>How to Secure Azure Storage Using Managed Identities and RBAC</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Sat, 30 May 2026 07:22:39 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-secure-azure-storage-using-managed-identities-and-rbac-57m</link>
      <guid>https://dev.to/forsyth_famous_/how-to-secure-azure-storage-using-managed-identities-and-rbac-57m</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Modern cloud applications require secure ways to access storage resources without exposing sensitive credentials or access keys.&lt;/p&gt;

&lt;p&gt;In Microsoft Azure, developers can secure storage accounts using Managed Identities, Role-Based Access Control (RBAC), and immutable storage policies.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll configure secure Azure Storage access while exploring identity-based authentication and protected immutable storage.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you’ll know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configure secure Azure Storage access&lt;/li&gt;
&lt;li&gt;Use Managed Identities for authentication&lt;/li&gt;
&lt;li&gt;Implement Azure RBAC&lt;/li&gt;
&lt;li&gt;Configure immutable blob storage policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build a more secure Azure storage environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Managed Identities and RBAC?
&lt;/h3&gt;

&lt;p&gt;Managed Identities allow Azure resources to securely authenticate to other Azure services without storing credentials inside application code.&lt;/p&gt;

&lt;p&gt;Azure Role-Based Access Control (RBAC) helps manage who or what can access Azure resources and what actions they can perform.&lt;/p&gt;

&lt;p&gt;Together, these features help organizations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eliminate hardcoded credentials&lt;/li&gt;
&lt;li&gt;Control access permissions centrally&lt;/li&gt;
&lt;li&gt;Improve cloud security&lt;/li&gt;
&lt;li&gt;Support least-privilege access principles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Immutable storage adds another layer of protection by preventing critical data from being modified or deleted during a retention period.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Before we begin, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Microsoft Azure account&lt;/li&gt;
&lt;li&gt;An active Azure subscription&lt;/li&gt;
&lt;li&gt;A stable internet connection&lt;/li&gt;
&lt;li&gt;Access to the Azure Portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now come with me, let’s build a secure Azure storage environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the storage account and managed identity
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Provide a storage account for the web app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3lqbo8wip71mwtdh9rb.png" alt="storage" width="674" height="299"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nfuxe10j5v16z97aueb.png" alt="create" width="783" height="508"&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Resource group&lt;/strong&gt; select &lt;strong&gt;Create new.&lt;/strong&gt; Give your resource group a &lt;strong&gt;name&lt;/strong&gt; and select &lt;strong&gt;OK&lt;/strong&gt; to save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhbkkks3ggtvlnb6sddz.png" alt="new rg" width="777" height="695"&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account name.&lt;/strong&gt; Ensure the name is unique and meets the naming requirements.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5nc16c9e6wrr3cnkp56.png" alt="unique" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Move to the &lt;strong&gt;Encryption&lt;/strong&gt; tab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F770ngjmc467zaa8b1a08.png" alt="encrypt" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Check the box for &lt;strong&gt;Enable infrastructure encryption.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh5vmr7kkuywefp83nx3.png" alt="check" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Notice the warning, This option cannot be changed after this storage account is created.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdiy8gwz6vb3y85hzl8dt.png" alt="warning" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiseo17pv726ufzixeb6b.png" alt="Rev" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the resource to deploy.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdqu29tcbqb4c3ohlaxg.png" alt="wait" width="799" height="465"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provide a managed identity for the web app to use. Learn more about managed identities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Managed identities.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqccptxzg3aqzp5y6zzrl.png" alt="Man" width="654" height="278"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrhfkxd8nft1z6c9rhbp.png" alt="create" width="604" height="578"&gt;

&lt;ul&gt;
&lt;li&gt;Select your &lt;strong&gt;resource group.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ji7rx7u559p90v3wg4u.png" alt="RG" width="735" height="656"&gt;
&lt;/li&gt;
&lt;li&gt;Give your managed identity a name.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9joyqdu72cjx0r1klzv.png" alt="name" width="735" height="656"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review and create,&lt;/strong&gt; and then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fng1ct1nhbelc2v9bg2mm.png" alt="rve" width="735" height="656"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Assign the correct permissions to the managed identity. The identity only needs to read and list containers and blobs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select your &lt;strong&gt;storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cpx6cdm3oay1rqnz6tr.png" alt="storage" width="800" height="575"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Access Control (IAM)&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0y6ik3ouxexn3ag4rs1.png" alt="IAM" width="745" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add role assignment&lt;/strong&gt; (center of the page).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkstheezuznf4lg5jizx2.png" alt="role" width="745" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Job functions roles&lt;/strong&gt; page, search for and select the &lt;strong&gt;Storage Blob Data Reader&lt;/strong&gt; role.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpv7n332wptde1vychwx.png" alt="JB" width="784" height="581"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Members&lt;/strong&gt; page, select &lt;strong&gt;Managed identity.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvdg0k3dmmjjbhorw63d.png" alt="MI" width="718" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Select members,&lt;/strong&gt; in the &lt;strong&gt;Managed identity&lt;/strong&gt; drop-down select &lt;strong&gt;User-assigned managed identity.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmz4t0dddelk1hx2rva9.png" alt="members" width="718" height="655"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme6wx3r1j4g9ddg10mwx.png" alt="UMI" width="570" height="405"&gt;
&lt;/li&gt;
&lt;li&gt;Select the managed identity you created in the previous step.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmooa6c01kgs00gtuk64w.png" alt="prevmi" width="578" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Select&lt;/strong&gt; and then &lt;strong&gt;Review + assign&lt;/strong&gt; the role.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuq3rebdbxl2lm8sbui9.png" alt="select" width="578" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + assign&lt;/strong&gt; a second time to add the role assignment.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81zeew00v1z313x0ef48.png" alt="create" width="800" height="611"&gt;
&lt;/li&gt;
&lt;li&gt;Your storage account can now be accessed by a managed identity with the Storage Data Blob Reader permissions.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffaf9463qqni4ssrlemec.png" alt="now" width="800" height="516"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Secure access to the storage account with a key vault and key
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To create the key vault and key needed for this part of the lab, your user account must have Key Vault Administrator permissions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Resource groups.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpunne2wv8pgcbvqbxzye.png" alt="RG" width="692" height="283"&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;resource group,&lt;/strong&gt; and then the &lt;strong&gt;Access Control (IAM)&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6t3md0t8aeodebkxfh1.png" alt="IAM" width="800" height="607"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add role assignment&lt;/strong&gt; (center of the page).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhjq4spkahxgaxv3lzo3.png" alt="role" width="800" height="607"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Job functions roles&lt;/strong&gt; page, search for and select the &lt;strong&gt;Key Vault Administrator&lt;/strong&gt; role.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyek78pljw6on6cq8pgyn.png" alt="KVA" width="800" height="622"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Members&lt;/strong&gt; page, select &lt;strong&gt;User, group, or service principal.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtdqub0t2nhs59icsgw0.png" alt="USER" width="800" height="613"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Select members.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6jlxyi3bpy2brvk6zfl.png" alt="mem" width="800" height="613"&gt;
&lt;/li&gt;
&lt;li&gt;Search for and select your user account. Your user account is shown in the top right of the portal.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrwgnxv9uewrgg6q3kch.png" alt="search" width="568" height="653"&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Select&lt;/strong&gt; and then &lt;strong&gt;Review + assign.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwdy46l980mruwmjy8hi.png" alt="revv" width="800" height="613"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + assign&lt;/strong&gt; a second time to add the role assignment.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9yy1fbt4nwt54wg2fo0d.png" alt="again" width="800" height="614"&gt;
&lt;/li&gt;
&lt;li&gt;You are now ready to continue with the lab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup2q4lppgz9jom9nk9ww.png" alt="A" width="800" height="596"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a key vault to store the access keys.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Key vaults.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwdags5za78efaqqztvf.png" alt="b" width="663" height="281"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpikecmy9iaqltyhsa7g.png" alt="c" width="734" height="567"&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;resource group.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5czt8bsk2ooy053ueqo.png" alt="d" width="800" height="631"&gt;
&lt;/li&gt;
&lt;li&gt;Provide the &lt;strong&gt;name&lt;/strong&gt; for the key vault. The name must be unique.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yp7mz95b5359rjqdryb.png" alt="d" width="800" height="631"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure on the &lt;strong&gt;Access configuration&lt;/strong&gt; tab that &lt;strong&gt;Azure role-based access control (recommended)&lt;/strong&gt; is selected.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfgashf1ohyxwfra0u2f.png" alt="R" width="800" height="626"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekrnoasyoxta2kymwmvb.png" alt="c" width="800" height="626"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the validation checks to complete and then select &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9oo7ongkxnhnc31hli4c.png" alt="c" width="800" height="622"&gt;
&lt;/li&gt;
&lt;li&gt;After the deployment, select &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl72wali715y4ysa1vouu.png" alt="g" width="799" height="615"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; blade ensure both &lt;strong&gt;Soft-delete&lt;/strong&gt; and &lt;strong&gt;Purge protection&lt;/strong&gt; are enabled.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvygmqv74zyxkb89kqrpq.png" alt="P" width="799" height="585"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a customer-managed key in the key vault.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your &lt;strong&gt;key vault,&lt;/strong&gt; in the &lt;strong&gt;Objects&lt;/strong&gt; section, select the &lt;strong&gt;Keys&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbx4jbrwvwhq525ffcd1.png" alt="K" width="800" height="596"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Generate/Import&lt;/strong&gt; and &lt;strong&gt;Name&lt;/strong&gt; the key.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq10hvi1480wenxr2atjm.png" alt="G" width="800" height="596"&gt;
&lt;/li&gt;
&lt;li&gt;Take the defaults for the rest of the parameters, and &lt;strong&gt;Create&lt;/strong&gt; the key.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdcbzl1enemyl64pyghou.png" alt="ke" width="800" height="610"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure the storage account to use the customer managed key in the key vault
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Before you can complete the next steps, you must assign the Key Vault Crypto Service Encryption User role to the managed identity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Resource groups.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpunne2wv8pgcbvqbxzye.png" alt="RG" width="692" height="283"&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;resource group,&lt;/strong&gt; and then the &lt;strong&gt;Access Control (IAM)&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6t3md0t8aeodebkxfh1.png" alt="IAM" width="800" height="607"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add role assignment&lt;/strong&gt; (center of the page).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhjq4spkahxgaxv3lzo3.png" alt="role" width="800" height="607"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Job functions roles&lt;/strong&gt; page, search for and select the &lt;strong&gt;Key Vault Crypto Service Encryption User&lt;/strong&gt; role.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkftq4d4puryimu9kvz1x.png" alt="k" width="799" height="501"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Members&lt;/strong&gt; page, select &lt;strong&gt;Managed identity.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi03zqmry10co425t8jpr.png" alt="m" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Select Select members, in the Managed identity drop-down select User-assigned managed identity.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07wfsxbt8ip2b7wxgr8q.png" alt="d" width="569" height="651"&gt;
&lt;/li&gt;
&lt;li&gt;Select your managed identity.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nk46gijk5z5hkay7et2.png" alt="y" width="569" height="651"&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Select&lt;/strong&gt; and then &lt;strong&gt;Review + assign.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4ob4aalkxd6rmyf51hn.png" alt="rr" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + assign&lt;/strong&gt; a second time to add the role assignment.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjybvk705rxg7vnl8p1su.png" alt="rrr" width="800" height="619"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage account to use the customer managed key in your key vault.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to your the storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50eu5z9pkys4zged3a0q.png" alt="r" width="800" height="586"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking&lt;/strong&gt; section, select the &lt;strong&gt;Encryption&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fk4cwf9cqbaasge6gb8.png" alt="en" width="800" height="539"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Customer-managed keys.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi03ipnj5xafgopgvs6f9.png" alt="c" width="800" height="539"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select a key vault and key.&lt;/strong&gt; Select your key vault and key.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6r6z2q1fsriaq5zibn4.png" alt="k" width="800" height="614"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select&lt;/strong&gt; to confirm your choices.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxu41ps41mwfzu0svwau.png" alt="s" width="800" height="643"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Identity type&lt;/strong&gt; is &lt;strong&gt;User-assigned.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwj0fem3lir7bqjl9uky.png" alt="us" width="800" height="615"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select an identity.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36v4votqcfmvelw1p2pp.png" alt="i" width="800" height="612"&gt;
&lt;/li&gt;
&lt;li&gt;Select your managed identity then select &lt;strong&gt;Add.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj908sl9txxmvaditehxg.png" alt="ss" width="575" height="654"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feefbo3bydbkn1i3rixqr.png" alt="s" width="800" height="612"&gt;
&lt;/li&gt;
&lt;li&gt;If you receive an error that your identity does not have the correct permissions, wait a minute and try again.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure an time-based retention policy and an encryption scope.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The developers require a storage container where files can’t be modified, even by the administrator.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your &lt;strong&gt;storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50eu5z9pkys4zged3a0q.png" alt="r" width="800" height="586"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F61durtix63g3wl0dwokf.png" alt="cb" width="800" height="579"&gt;
&lt;/li&gt;
&lt;li&gt;Create a container called &lt;strong&gt;hold.&lt;/strong&gt; Take the defaults. Be sure to &lt;strong&gt;Create&lt;/strong&gt; the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7i90tosod898jlfvbfi.png" alt="n" width="800" height="616"&gt;
&lt;/li&gt;
&lt;li&gt;Upload a file to the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dvpzady54qbudboabaj.png" alt="f" width="800" height="434"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fso8dxlwgvg5vhwl4hl79.png" alt="s" width="800" height="398"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Access policy&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgtsp5srxm2i59cpt6ht9.png" alt="a" width="800" height="509"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Immutable blob storage&lt;/strong&gt; section, select &lt;strong&gt;+ Add policy.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlkvsj92m27izr20ycsy.png" alt="ad" width="800" height="509"&gt;
&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Policy type,&lt;/strong&gt; select &lt;strong&gt;time-based retention.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffiotmcnhlxbl5awro9dm.png" alt="tb" width="577" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Retention period&lt;/strong&gt; to &lt;strong&gt;5&lt;/strong&gt; days.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fag41xxah6f6fa5st2ypr.png" alt="5" width="577" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febhmk2r0gbhmkl84mi2g.png" alt="s" width="577" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Try to &lt;strong&gt;delete&lt;/strong&gt; the file in the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fso8dxlwgvg5vhwl4hl79.png" alt="s" width="800" height="398"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Figcmq8xydgbqjh3lr8cd.png" alt="d" width="800" height="368"&gt;
&lt;/li&gt;
&lt;li&gt;Verify you are notified &lt;strong&gt;failed to delete blobs&lt;/strong&gt; due to policy.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsw5ms41mv4kn60k8ftlm.png" alt="e" width="344" height="171"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The developers require an encryption scope that enables infrastructure encryption.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate back to your storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50eu5z9pkys4zged3a0q.png" alt="r" width="800" height="586"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking&lt;/strong&gt; blade, select &lt;strong&gt;Encryption.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu7qulcqwl2mhqyr51ik.png" alt="e" width="800" height="608"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Encryption scopes&lt;/strong&gt; tab, select &lt;strong&gt;Add.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj93ohv0yx9jr9dfzonb.png" alt="s" width="800" height="608"&gt;
&lt;/li&gt;
&lt;li&gt;Give your encryption scope a &lt;strong&gt;name.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2s2j0j6dzk016laomi0.png" alt="n" width="576" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Encryption type&lt;/strong&gt; is &lt;strong&gt;Microsoft-managed key.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8w2fe87v4kk8ug5y5m0.png" alt="mm" width="576" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Infrastructure encryption&lt;/strong&gt; to &lt;strong&gt;Enable.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdh3k1lv7lg5syzgtwgna.png" alt="e" width="576" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create&lt;/strong&gt; the encryption scope.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3scusox11zrxmwbs2ze4.png" alt="c" width="576" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Return to your storage account and create a new container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdzwmau43rlwsenh9epe.png" alt="cc" width="800" height="549"&gt;
&lt;/li&gt;
&lt;li&gt;Give the &lt;strong&gt;New container&lt;/strong&gt;, a &lt;strong&gt;Name.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fui8sapj8620j6i3oj12u.png" alt="n" width="428" height="663"&gt;
&lt;/li&gt;
&lt;li&gt;Notice in the &lt;strong&gt;Advanced&lt;/strong&gt; section you can select the &lt;strong&gt;Encryption scope&lt;/strong&gt; you created and apply it to all blobs in the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmepx475tpbr4ketxti5e.png" alt="ad" width="424" height="655"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Cleanup your resources
&lt;/h3&gt;

&lt;p&gt;If you are working with &lt;strong&gt;your own subscription&lt;/strong&gt; and have completed these labs, take a minute to delete the lab resources. This will ensure resources are freed up and cost is minimized. The easiest way to delete the lab resources is to delete the lab resource group.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, select the resource group, select &lt;strong&gt;Delete the resource group, Enter resource group name,&lt;/strong&gt; and then click &lt;strong&gt;Delete.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhervp0mmu80asgguqc8.png" alt="rg" width="800" height="335"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4fe9ouvs89r9kgdztbu.png" alt="nae" width="800" height="713"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gt1t79rteceumw77v63.png" alt="delete" width="800" height="715"&gt;
&lt;/li&gt;
&lt;li&gt;Using Azure PowerShell, &lt;code&gt;Remove-AzResourceGroup -Name resourceGroupName&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Using the CLI, &lt;code&gt;az group delete --name resourceGroupName&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations on successfully configuring secure Azure Storage access using Managed Identities, RBAC, and immutable storage policies.&lt;/p&gt;

&lt;p&gt;In this lab, we explored how Azure security features can help organizations protect storage resources while simplifying authentication and access management.&lt;/p&gt;

&lt;p&gt;Some key takeaways from this lab include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managed Identities eliminate the need for hardcoded credentials&lt;/li&gt;
&lt;li&gt;Azure RBAC enables centralized access management&lt;/li&gt;
&lt;li&gt;Immutable storage helps protect critical data from modification or deletion&lt;/li&gt;
&lt;li&gt;Identity-based authentication improves cloud security posture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By completing this exercise, you have taken another important step in building practical Azure security and cloud administration skills.&lt;/p&gt;

&lt;p&gt;See you in the next article.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoft</category>
      <category>security</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to Configure Azure File Shares for Secure Enterprise File Storage</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Tue, 19 May 2026 10:44:05 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-configure-azure-file-shares-for-secure-enterprise-file-storage-1hp4</link>
      <guid>https://dev.to/forsyth_famous_/how-to-configure-azure-file-shares-for-secure-enterprise-file-storage-1hp4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Organizations with multiple office locations often require a centralized and secure way to share files across departments and teams.&lt;/p&gt;

&lt;p&gt;With Azure File Shares, businesses can store and access files in the cloud while maintaining scalability, availability, and secure network access.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll configure Azure File Shares in Microsoft Azure and explore how organizations can securely share files across distributed environments.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you’ll know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create and configure Azure File Shares&lt;/li&gt;
&lt;li&gt;Upload and manage files in Azure Storage&lt;/li&gt;
&lt;li&gt;Configure secure network access&lt;/li&gt;
&lt;li&gt;Understand Azure Files networking and access controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build a secure enterprise cloud file sharing solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Azure File Shares?
&lt;/h3&gt;

&lt;p&gt;Azure File Shares provide cloud-based file storage that can be accessed across multiple devices and locations using the SMB protocol.&lt;/p&gt;

&lt;p&gt;Organizations can use Azure File Shares to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share files across departments and office locations&lt;/li&gt;
&lt;li&gt;Centralize enterprise file storage&lt;/li&gt;
&lt;li&gt;Improve scalability and availability&lt;/li&gt;
&lt;li&gt;Restrict access using networking and identity controls&lt;/li&gt;
&lt;li&gt;Replace or extend traditional on-premises file servers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as a cloud-based network drive hosted securely inside Microsoft Azure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario
&lt;/h3&gt;

&lt;p&gt;The company is geographically dispersed with offices in different locations. These offices need a way to share files and disseminate information.&lt;/p&gt;

&lt;p&gt;For example, the Finance department needs to confirm cost information for auditing and compliance.&lt;/p&gt;

&lt;p&gt;These file shares should be easy to access and load without delay. Some content should only be accessed from selected corporate virtual networks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Before we begin, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Microsoft Azure account&lt;/li&gt;
&lt;li&gt;An active Azure subscription&lt;/li&gt;
&lt;li&gt;A stable internet connection&lt;/li&gt;
&lt;li&gt;Access to the Azure Portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now come with me, let’s build a secure cloud file-sharing solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create and configure a storage account for Azure Files.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a storage account for the finance department’s shared files.

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3lqbo8wip71mwtdh9rb.png" alt="storage" width="674" height="299"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nfuxe10j5v16z97aueb.png" alt="create" width="783" height="508"&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Resource group&lt;/strong&gt; select &lt;strong&gt;Create new.&lt;/strong&gt; Give your resource group a &lt;strong&gt;name&lt;/strong&gt; and select &lt;strong&gt;OK&lt;/strong&gt; to save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhbkkks3ggtvlnb6sddz.png" alt="new rg" width="777" height="695"&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account name.&lt;/strong&gt; Ensure the name meets the naming requirements.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5nc16c9e6wrr3cnkp56.png" alt="unique" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Performance&lt;/strong&gt; to &lt;strong&gt;Premium.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faipqo84k6s2t16rixccg.png" alt="premium" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Premium account type&lt;/strong&gt; to &lt;strong&gt;File shares.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzj73xak8whetse9wceg.png" alt="fileshare" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Redundancy&lt;/strong&gt; to &lt;strong&gt;Zone-redundant storage.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aj4avxxzhmws9dui43r.png" alt="ZRS" width="800" height="623"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&gt; the storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrurrt2i6ytejhcgvac1.png" alt="review" width="800" height="623"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92r6xjki4oyfok8jfic4.png" alt="create" width="800" height="641"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the resource to deploy.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flpdktqw5t2qosbrk75j9.png" alt="deploy" width="800" height="459"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwn7l01hn4n1l6ic6yw05.png" alt="resource" width="733" height="463"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Create and configure a file share with directory.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a file share for the corporate office.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;File shares&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit6wqcd2jopd3tzmw0vs.png" alt="data storage" width="800" height="545"&gt;
&lt;/li&gt;
&lt;li&gt;Select + &lt;strong&gt;File share&lt;/strong&gt; and provide a &lt;strong&gt;Name.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39sili2or25l0oxjv5es.png" alt="+" width="800" height="545"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2gu5zw73uemw6tp938gw.png" alt="name" width="751" height="640"&gt;
&lt;/li&gt;
&lt;li&gt;Review the other options, but take the defaults.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvs3720aazjffpgcg09g.png" alt="default" width="751" height="640"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4y9h9g1dwv7z312vjjp4.png" alt="Reviw" width="751" height="640"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6258u1d203m1zjv84x3q.png" alt="Ima" width="671" height="645"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add a directory to the file share for the finance department. For future testing, upload a file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your file share and select &lt;strong&gt;+ Add directory.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0uke7rpj8ugoxfd7s1dc.png" alt="add" width="800" height="602"&gt;
&lt;/li&gt;
&lt;li&gt;Name the new directory &lt;strong&gt;finance.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhf3y0xm18rpnvf1nj2je.png" alt="finance" width="800" height="573"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Browse&lt;/strong&gt; and then select the &lt;strong&gt;finance&lt;/strong&gt; directory.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofws5lu174cjf86m4r79.png" alt="browse" width="800" height="359"&gt;
&lt;/li&gt;
&lt;li&gt;Notice you can &lt;strong&gt;Add directory&lt;/strong&gt; to further organize your file share.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihpy3x6p4my9ce5xz691.png" alt="dire" width="800" height="367"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; a file of your choosing.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yc1slszux9igr9lol2i.png" alt="upload" width="800" height="367"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzs6pgnzzsft7gzyv1na.png" alt="uploaddd" width="799" height="369"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure and test snapshots.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Similar to blob storage, you need to protect against accidental deletion of files. You decide to use snapshots.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your file share.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiysbw5w86l7ec7njb00.png" alt="fileshare" width="800" height="602"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Operations&lt;/strong&gt; section, select the &lt;strong&gt;Snapshots&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5sckyxqroad35lypdlq.png" alt="operation" width="799" height="394"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Add snapshot.&lt;/strong&gt; The comment is optional. Select &lt;strong&gt;OK.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkrlvo4ev6wjajtpnp1w.png" alt="addok" width="800" height="413"&gt;
&lt;/li&gt;
&lt;li&gt;Select your snapshot and verify your file directory and uploaded file are included.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F980a5v5c265dvh66xvgs.png" alt="snapshotss" width="800" height="403"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8h3vd0dbglujd88xdl4c.png" alt="director" width="800" height="330"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6xsa6svsijnd5xsvgqow.png" alt="files" width="800" height="342"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Practice using snapshots to restore a file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to your &lt;strong&gt;file share.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiysbw5w86l7ec7njb00.png" alt="fileshare" width="800" height="602"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse&lt;/strong&gt; to your file directory.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzguqo0oxpc60i28p2fgs.png" alt="file dir" width="799" height="400"&gt;
&lt;/li&gt;
&lt;li&gt;Locate your uploaded file and in the &lt;strong&gt;Properties&lt;/strong&gt; pane select &lt;strong&gt;Delete.&lt;/strong&gt; Select &lt;strong&gt;Yes&lt;/strong&gt; to confirm the deletion.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu39lv5mdcb6g44xthze.png" alt="locate" width="800" height="455"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu34joc99z8rndp7d75p.png" alt="delete" width="800" height="507"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdot7t06cgb7d5fgt3c9r.png" alt="confirm" width="800" height="367"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Snapshots&lt;/strong&gt; blade and then select your snapshot.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsmj1s62ie7ypvqqfaow.png" alt="snap" width="800" height="394"&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to the file you want to restore,
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ncho11rtmxup5xat9v8.png" alt="restore" width="799" height="320"&gt;
&lt;/li&gt;
&lt;li&gt;Select the file and the select &lt;strong&gt;Restore.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotxj8lz4vyjvlktjtdr2.png" alt="clIck" width="800" height="515"&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Restored file name.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcv9f5l1zav1roa0dkvz6.png" alt="name" width="426" height="382"&gt;
&lt;/li&gt;
&lt;li&gt;Verify your file directory has the restored file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d4flvpwzesg3pn6pj0w.png" alt="verify" width="799" height="326"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure restricting storage access to selected virtual networks.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;This tasks in this section require a virtual network with subnet. In a production environment these resources would already be created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Virtual networks.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0f9n8c8vd16tbgkex40.png" alt="vnet" width="648" height="267"&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create.&lt;/strong&gt; Select your resource group. and give the virtual network a &lt;strong&gt;name.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23trcbla5dbceql32kba.png" alt="create" width="756" height="576"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8o0xuibm7289rhuadaml.png" alt="vnet" width="771" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Take the defaults for other parameters, select &lt;strong&gt;Review + create,&lt;/strong&gt; and then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1njzdfa69i0gudlowj8k.png" alt="default" width="771" height="655"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjc9ffv93frcpkmoy32gu.png" alt="review" width="771" height="655"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkal46np6kjd4eo6alv05.png" alt="create" width="638" height="654"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the resource to deploy.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cd0r03rl56hwwi0pnog.png" alt="wait" width="431" height="213"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3c69inenub3j757ocak.png" alt="goto" width="752" height="481"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Subnets&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1cpulpnhgrw004kenmg.png" alt="subnets" width="800" height="546"&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;strong&gt;default&lt;/strong&gt; subnet.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56nmwaend4bwbl7qffki.png" alt="default" width="800" height="371"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Service endpoints&lt;/strong&gt; section choose &lt;strong&gt;Microsoft.Storage&lt;/strong&gt; in the &lt;strong&gt;Services&lt;/strong&gt; drop-down.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1si3wf8trun0gkdjur5.png" alt="mst" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Do not make any other changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7oixq11g8him67yk5reo.png" alt="nochange" width="800" height="617"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu77llod3v76rz52iumor.png" alt="save" width="800" height="617"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The storage account should only be accessed from the virtual network you just created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to your &lt;strong&gt;files storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flj2st9lokhjnoe6p43tq.png" alt="filestorage" width="800" height="431"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking&lt;/strong&gt; section, select the &lt;strong&gt;Networking&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1ntthpbpwktgl4pmpan.png" alt="networking" width="800" height="627"&gt;

&lt;ul&gt;
&lt;li&gt;Change the &lt;strong&gt;Public network access&lt;/strong&gt; to &lt;strong&gt;Enabled from selected virtual networks and IP addresses.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8a1rmwc4jpabnpytvaub.png" alt="vnets" width="800" height="432"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Virtual networks&lt;/strong&gt; section, select &lt;strong&gt;Add existing virtual network.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jx168b4zjx7sckouehh.png" alt="existing" width="800" height="569"&gt;
&lt;/li&gt;
&lt;li&gt;Select your virtual network and subnet, select &lt;strong&gt;Add.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futejc2gspfxp7d77m0bo.png" alt="Add" width="298" height="655"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxu9pkvesr2ox7vydtbn.png" alt="Save" width="800" height="597"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Storage browser&lt;/strong&gt; and navigate to your file share.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fzxm40k5bykp26orrkl.png" alt="browser" width="800" height="589"&gt;
&lt;/li&gt;
&lt;li&gt;Verify the message not authorized to perform this operation. You are not connecting from the virtual network.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffg16st6mcgnzxe631ae1.png" alt="not authorized" width="558" height="525"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations on successfully configuring Azure File Shares in Microsoft Azure.&lt;/p&gt;

&lt;p&gt;In this lab, we explored how Azure File Shares can provide centralized, scalable, and secure cloud-based file storage for geographically distributed organizations.&lt;/p&gt;

&lt;p&gt;We also configured network restrictions to help protect sensitive organizational data and control access from approved virtual networks.&lt;/p&gt;

&lt;p&gt;Some key takeaways from this lab include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure File Shares provide centralized cloud file storage&lt;/li&gt;
&lt;li&gt;Azure networking controls help secure sensitive data&lt;/li&gt;
&lt;li&gt;Azure Files supports distributed enterprise workloads&lt;/li&gt;
&lt;li&gt;Cloud-based file services improve accessibility and scalability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By completing this exercise, you have taken another important step in building practical Azure storage and cloud administration skills.&lt;/p&gt;

&lt;p&gt;See you in the next article.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoft</category>
      <category>cloud</category>
      <category>networking</category>
    </item>
    <item>
      <title>How to Deploy a Linux Virtual Machine in Microsoft Azure and Connect Using SSH</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Fri, 15 May 2026 17:02:08 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-deploy-a-linux-virtual-machine-in-microsoft-azure-and-connect-using-ssh-3ah7</link>
      <guid>https://dev.to/forsyth_famous_/how-to-deploy-a-linux-virtual-machine-in-microsoft-azure-and-connect-using-ssh-3ah7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Linux Virtual Machines&lt;/strong&gt; are widely used in cloud computing for hosting applications, managing servers, running development environments, and practicing cloud administration.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll deploy a Linux Virtual Machine in Microsoft Azure using the Azure Portal and securely connect to it using SSH authentication with a username and password.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you’ll know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy a Linux Virtual Machine in Azure&lt;/li&gt;
&lt;li&gt;Configure SSH access&lt;/li&gt;
&lt;li&gt;Connect securely using SSH&lt;/li&gt;
&lt;li&gt;Understand the basics of Azure Linux Virtual Machines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build your first Linux cloud machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Linux Virtual Machine?
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Linux Virtual Machine (VM)&lt;/strong&gt; is a Linux-based computer running inside the cloud instead of on physical hardware.&lt;/p&gt;

&lt;p&gt;With Azure Linux Virtual Machines, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host applications and web servers&lt;/li&gt;
&lt;li&gt;Run development and testing environments&lt;/li&gt;
&lt;li&gt;Practice Linux administration&lt;/li&gt;
&lt;li&gt;Access your server remotely from anywhere&lt;/li&gt;
&lt;li&gt;Learn cloud and infrastructure management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as renting a Linux server from Microsoft’s datacenter whenever you need one.&lt;/p&gt;

&lt;p&gt;And today, we’re building one from scratch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario
&lt;/h3&gt;

&lt;p&gt;A company requires a Linux-based cloud server for administration, testing, and application hosting.&lt;/p&gt;

&lt;p&gt;The solution must allow administrators to securely connect remotely using SSH while maintaining proper networking and security configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Before we begin, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Microsoft Azure account&lt;/li&gt;
&lt;li&gt;An active Azure subscription&lt;/li&gt;
&lt;li&gt;A stable internet connection&lt;/li&gt;
&lt;li&gt;A terminal application

&lt;ul&gt;
&lt;li&gt;Windows Terminal / PowerShell&lt;/li&gt;
&lt;li&gt;macOS Terminal&lt;/li&gt;
&lt;li&gt;Linux Terminal&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Now come with me, let’s build your first Linux cloud machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the Linux Virtual Machine.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Use the top search box to search for and select &lt;strong&gt;Virtual machines.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtrccpndbnmioibz7re2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtrccpndbnmioibz7re2.png" alt="search" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;+ Create,&lt;/strong&gt; and then select in the drop-down &lt;strong&gt;virtual machine.&lt;/strong&gt; Notice your other choices.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faay9nhds0asp9m2iycvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faay9nhds0asp9m2iycvo.png" alt="create" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the Basics tab, continue completing the configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription: Select the name of your &lt;strong&gt;Azure subscription&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbe6bwyn1y7ohkxsl6ckf.png" alt="sub" width="783" height="574"&gt;
&lt;/li&gt;
&lt;li&gt;Resource group: &lt;strong&gt;Click Create new,&lt;/strong&gt; give the resource group a name and click &lt;strong&gt;Ok&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1o2azuyejgkivxsy8q3.png" alt="RG" width="800" height="587"&gt;
&lt;/li&gt;
&lt;li&gt;Virtual machine names: Select any &lt;strong&gt;name&lt;/strong&gt; for your virtual machine.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fiz1q5tjyb9h8h4nwl7.png" alt="Linux" width="800" height="409"&gt;
&lt;/li&gt;
&lt;li&gt;Region: Select a preferred &lt;strong&gt;region&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctpt3oqzn28tdihmaehs.png" alt="Region" width="796" height="400"&gt;
&lt;/li&gt;
&lt;li&gt;Availability options: Select &lt;strong&gt;No infrastructure redundancy required&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow26ncrlx8c2z5ryj58f.png" alt="no az" width="796" height="400"&gt;
&lt;/li&gt;
&lt;li&gt;Security type: Select &lt;strong&gt;Standard&lt;/strong&gt; (review your other choices)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhiotzc2ql0nfh58r0brj.png" alt="standard" width="796" height="400"&gt;
&lt;/li&gt;
&lt;li&gt;Image: Click on see all images, to have an overview and variety of images to choose from and select &lt;strong&gt;Ubuntu Server 24.04 LTS -x64 Gen2&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzuvxc8g22oh4v9tlju5l.png" alt="ubuntu" width="800" height="545"&gt;
&lt;/li&gt;
&lt;li&gt;Size: Choose &lt;strong&gt;Standard_B4as_v2&lt;/strong&gt; (use See all sizes to view the CPU and memory)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczwemdo04brt68snaa4m.png" alt="Size" width="800" height="500"&gt;
Authentication type: Select &lt;strong&gt;Password.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3al3xus0m4lxg6nqjvk.png" alt="Password" width="800" height="559"&gt;
&lt;/li&gt;
&lt;li&gt;Username: Give it a &lt;strong&gt;Username&lt;/strong&gt;. For example "azureuser"
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkms5ka4zlak9ef7n9k6w.png" alt="username" width="799" height="524"&gt;
&lt;/li&gt;
&lt;li&gt;Password: Select a &lt;strong&gt;Password&lt;/strong&gt; you can remember and repeat the password in the confirm password tab below.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldk60fu5y90duewy9g7r.png" alt="passwordn" width="799" height="524"&gt;
&lt;/li&gt;
&lt;li&gt;Public inbound ports: Choose &lt;strong&gt;Allow selected ports&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fez6m89yh6yloa4rd1jjq.png" alt="selected" width="768" height="268"&gt;
&lt;/li&gt;
&lt;li&gt;Select inbound ports: Choose your desired allowed ports, please note that for a linux vm like the one we are creating by &lt;strong&gt;default SSH port 22 is selected,&lt;/strong&gt; you can choose to add HTTP(80) and HTTPS(443)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftluasqz0y3u2z1o6iqbe.png" alt="22" width="799" height="544"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the &lt;strong&gt;monitoring&lt;/strong&gt; tab, and under &lt;strong&gt;boot diagnostics&lt;/strong&gt; of the Diagnostics section, select disable. Leave others with their default values&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmmxuaayl8w1tsn7rb1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmmxuaayl8w1tsn7rb1l.png" alt="monitor" width="739" height="657"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Review + Create.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q640d60myuww24w65sy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q640d60myuww24w65sy.png" alt="Review" width="723" height="657"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the validation passes, &lt;strong&gt;click Create.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr63d5mtw7licj0qv16w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr63d5mtw7licj0qv16w.png" alt="create" width="737" height="649"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Increase the Idle Timeout on the Public IP address of your Virtual Machine.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;select &lt;strong&gt;Go to resource.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijqb9jl0pokn1jhcduzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijqb9jl0pokn1jhcduzp.png" alt="go to" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From the Overview blade, ensure the virtual machine Status is &lt;strong&gt;Running,&lt;/strong&gt; and the &lt;strong&gt;public IP&lt;/strong&gt; address is visible under the Networking section and also on the &lt;strong&gt;Primary NIC public IP&lt;/strong&gt; section.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqejdr86d7urixujdw2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqejdr86d7urixujdw2i.png" alt="PIP" width="799" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Public IP&lt;/strong&gt; under the Networking section on the VM overview page&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwefecnm6jikx3511b2b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwefecnm6jikx3511b2b.png" alt="click pip" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the &lt;strong&gt;Idle timeout&lt;/strong&gt; bar in the configuration section to the maximum (30) and click &lt;strong&gt;apply&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flj1p0ybg13m7n6d3kcpf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flj1p0ybg13m7n6d3kcpf.png" alt="timeout" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Connect to the Linux VM Using SSH.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; tab of the VM, in the top menu, select &lt;strong&gt;Connect&lt;/strong&gt; and &lt;strong&gt;Connect&lt;/strong&gt; in the drop-down.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjqa6u2521xd69z7xusz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjqa6u2521xd69z7xusz.png" alt="connect" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Native SSH&lt;/strong&gt; page, select the &lt;strong&gt;Check access&lt;/strong&gt; button to make sure port 22 is available.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyfinhn7wslsvs3wr1y5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyfinhn7wslsvs3wr1y5.png" alt="available" width="566" height="473"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make a note of the &lt;strong&gt;public IP&lt;/strong&gt; address and copy the &lt;strong&gt;SSH command&lt;/strong&gt;. You will need this to connect to the virtual machine. Close the Native SSH page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63tf5cxp17q403ql93mt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63tf5cxp17q403ql93mt.png" alt="copy" width="743" height="352"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open a &lt;strong&gt;CMD/Terminal&lt;/strong&gt; window and paste the SSH command you copied from the azure portal.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mfxl1jg86vzfclpd3o6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mfxl1jg86vzfclpd3o6.png" alt="enter" width="677" height="325"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You'll be prompted with an Are you sure you want to continue connecting? Please type &lt;strong&gt;Yes&lt;/strong&gt; and press enter.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kaj7zzvtauulxratgcj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kaj7zzvtauulxratgcj.png" alt="yes" width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Please type in the &lt;strong&gt;password&lt;/strong&gt; you created while deploying the VM. Please note that in Linux, when you are entering the password the screen is still going to be blank, just continue typing the right password and hit enter and you'll successfully connect to the vm.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgty81qj507j2at3nablj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgty81qj507j2at3nablj.png" alt="password" width="800" height="641"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change to root user: type this command to change to root user &lt;strong&gt;"sudo su."&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7vowjo7xtrb5cvgtqkq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7vowjo7xtrb5cvgtqkq.png" alt="root" width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fetch the list of available OS updates and install updates with &lt;strong&gt;"sudo apt update"&lt;/strong&gt;. When prompted, type &lt;strong&gt;yes&lt;/strong&gt; to continue. Each command must complete successfully.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp353m6m1z1ywp0u7qjr4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp353m6m1z1ywp0u7qjr4.png" alt="OS" width="796" height="92"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Install the Nginx web service and test to ensure it is working
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install the &lt;strong&gt;Nginx&lt;/strong&gt; service with "sudo apt install nginx". When prompted indicate &lt;strong&gt;Y&lt;/strong&gt; to continue the install.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ypexbzqtkb21bhv1u3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ypexbzqtkb21bhv1u3x.png" alt="nginx" width="796" height="92"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start the &lt;strong&gt;Nginx&lt;/strong&gt; service with "sudo systemctl start nginx".&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjq5orxa30hwgldpj08z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjq5orxa30hwgldpj08z.png" alt="start" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure Nginx to launch on boot. This is optional but good practice with "sudo systemctl enable nginx".&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9y9wrj9t75t2ecv4fpor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9y9wrj9t75t2ecv4fpor.png" alt="boot" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check to ensure the Nginx service is &lt;strong&gt;active (running)&lt;/strong&gt; with "service nginx status"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgrua8egxuxzalm5681xq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgrua8egxuxzalm5681xq.png" alt="activen" width="799" height="504"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Launch the Nginx welcome page. Open the Nginx default page in a browser, &lt;strong&gt;&lt;a href="http://public_ip_address" rel="noopener noreferrer"&gt;http://public_ip_address&lt;/a&gt;&lt;/strong&gt;.Be sure to substitute your virtual machine public IP address.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjc0mpjndmh4yfwqdjtj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjc0mpjndmh4yfwqdjtj.png" alt="welcome" width="774" height="512"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations on successfully deploying and connecting to your first Linux Virtual Machine in Microsoft Azure.&lt;/p&gt;

&lt;p&gt;In this lab, we explored the core concepts behind Azure Linux Virtual Machines, including compute provisioning, networking, authentication, and secure remote access using SSH.&lt;/p&gt;

&lt;p&gt;Linux Virtual Machines provide a flexible and scalable way to host applications, practice Linux administration, and build cloud infrastructure without relying on physical hardware.&lt;/p&gt;

&lt;p&gt;Some key takeaways from this lab include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Linux Virtual Machines provide on-demand cloud computing resources&lt;/li&gt;
&lt;li&gt;SSH enables secure remote administration of Linux servers&lt;/li&gt;
&lt;li&gt;Azure networking and NSGs help control inbound SSH access&lt;/li&gt;
&lt;li&gt;Linux VMs are commonly used for hosting, administration, automation, and development workloads&lt;/li&gt;
&lt;li&gt;Cloud infrastructure can be deployed within minutes using the Azure Portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By completing this exercise, you have taken another important step in building practical cloud engineering and Linux administration skills with Microsoft Azure.&lt;/p&gt;

&lt;p&gt;See you in the next article.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>cloud</category>
      <category>microsoft</category>
      <category>azure</category>
    </item>
    <item>
      <title>How to Deploy a Windows 10 Virtual Machine in Microsoft Azure</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Fri, 15 May 2026 12:32:13 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-deploy-a-windows-10-virtual-machine-in-microsoft-azure-318k</link>
      <guid>https://dev.to/forsyth_famous_/how-to-deploy-a-windows-10-virtual-machine-in-microsoft-azure-318k</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud computing&lt;/strong&gt; doesn’t have to be boring.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll deploy a Windows 10 Virtual Machine (VM) in Microsoft Azure using the Azure Portal, step by step.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you’ll know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a Windows 10 Azure VM&lt;/li&gt;
&lt;li&gt;Configure remote access&lt;/li&gt;
&lt;li&gt;Connect using RDP&lt;/li&gt;
&lt;li&gt;Understand the basics of Azure Virtual Machines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build your first cloud machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Virtual Machine (VM)?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Virtual Machine (VM)&lt;/strong&gt; is a computer that runs inside the cloud instead of physical hardware.&lt;/p&gt;

&lt;p&gt;With Azure Virtual Machines, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run Windows or Linux operating systems&lt;/li&gt;
&lt;li&gt;Install applications&lt;/li&gt;
&lt;li&gt;Test environments&lt;/li&gt;
&lt;li&gt;Practice cloud administration&lt;/li&gt;
&lt;li&gt;Access your machine remotely from anywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as renting a computer from Microsoft’s datacenter whenever you need one.&lt;/p&gt;

&lt;p&gt;And today, we’re building one from scratch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario
&lt;/h3&gt;

&lt;p&gt;A company requires a cloud-hosted Windows 10 environment for remote administration, testing, and secure access to internal applications.&lt;/p&gt;

&lt;p&gt;The solution must allow administrators to securely connect to the machine remotely while maintaining proper network and security configurations.&lt;/p&gt;

&lt;h4&gt;
  
  
  Prerequisites
&lt;/h4&gt;

&lt;p&gt;Before we begin, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Microsoft Azure account&lt;/li&gt;
&lt;li&gt;An active Azure subscription&lt;/li&gt;
&lt;li&gt;A stable internet connection&lt;/li&gt;
&lt;li&gt;A Remote Desktop application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now come with me, let’s build your first cloud machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use the Azure portal to create the Windows 10 Virtual Machine.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Use the top search box to search for and select &lt;strong&gt;Virtual machines.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtrccpndbnmioibz7re2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtrccpndbnmioibz7re2.png" alt="search" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;+ Create,&lt;/strong&gt; and then select in the drop-down &lt;strong&gt;virtual machine.&lt;/strong&gt; Notice your other choices.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faay9nhds0asp9m2iycvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faay9nhds0asp9m2iycvo.png" alt="create" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the Basics tab, continue completing the configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription: Select the name of your &lt;strong&gt;Azure subscription&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbe6bwyn1y7ohkxsl6ckf.png" alt="sub" width="783" height="574"&gt;
&lt;/li&gt;
&lt;li&gt;Resource group: &lt;strong&gt;Click Create new,&lt;/strong&gt; give the resource group a name and click &lt;strong&gt;Ok&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1o2azuyejgkivxsy8q3.png" alt="RG" width="800" height="587"&gt;
&lt;/li&gt;
&lt;li&gt;Virtual machine names: Select any &lt;strong&gt;name&lt;/strong&gt; for your virtual machine.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy89nh1ai8o0p8irag9tf.png" alt="VM" width="780" height="439"&gt;
&lt;/li&gt;
&lt;li&gt;Region: Select a preferred &lt;strong&gt;region&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27cs1nqemzvo2vs2107u.png" alt="Region" width="800" height="480"&gt;
&lt;/li&gt;
&lt;li&gt;Availability options: Select &lt;strong&gt;No infrastructure redundancy required&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftq18x7bwy5gletfmgk48.png" alt="no AZ" width="800" height="480"&gt;
&lt;/li&gt;
&lt;li&gt;Security type: Select &lt;strong&gt;Standard&lt;/strong&gt; (review your other choices)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3sfa0q5k0n1jlq1gv4fp.png" alt="standard" width="800" height="480"&gt;
&lt;/li&gt;
&lt;li&gt;Image: Click on see all images, to have an overview and variety of images to choose from and select &lt;strong&gt;Windows 10 enterprise version 22H2 -x64 Gen2&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2789s01qymsgom6oqjjo.png" alt="image" width="800" height="480"&gt;
&lt;/li&gt;
&lt;li&gt;Size: Choose &lt;strong&gt;Standard_B4as_v2&lt;/strong&gt; (use See all sizes to view the CPU and memory)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zkcuss29j2wkokyrqkl.png" alt="size" width="800" height="500"&gt;
&lt;/li&gt;
&lt;li&gt;Username: Give it a &lt;strong&gt;Username&lt;/strong&gt;. For example "azureuser"
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkms5ka4zlak9ef7n9k6w.png" alt="username" width="799" height="524"&gt;
&lt;/li&gt;
&lt;li&gt;Password: Select a &lt;strong&gt;Password&lt;/strong&gt; you can remember and repeat the password in the confirm password tab below.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldk60fu5y90duewy9g7r.png" alt="passwordn" width="799" height="524"&gt;
&lt;/li&gt;
&lt;li&gt;Public inbound ports: Choose &lt;strong&gt;Allow selected ports&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9rcpwilep5ef4zfje61a.png" alt="port" width="800" height="549"&gt;
&lt;/li&gt;
&lt;li&gt;Select inbound ports: Choose your desired allowed ports, please note that for windows vm like the one we are creating by &lt;strong&gt;default RDP port 3389 is selected,&lt;/strong&gt; you can choose to add HTTP(80) and HTTPS(443)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fog65817fdgr4f3zfuuc7.png" alt="ports" width="800" height="549"&gt;
&lt;/li&gt;
&lt;li&gt;Licensing: Check the &lt;strong&gt;licensing box&lt;/strong&gt; ✅
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdjv1sxq3wbzovoabjyv.png" alt="License" width="800" height="450"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the &lt;strong&gt;monitoring&lt;/strong&gt; tab, and under &lt;strong&gt;boot diagnostics&lt;/strong&gt; of the Diagnostics section, select disable. Leave others with their default values&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmmxuaayl8w1tsn7rb1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmmxuaayl8w1tsn7rb1l.png" alt="monitor" width="739" height="657"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Review + Create.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q640d60myuww24w65sy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q640d60myuww24w65sy.png" alt="Review" width="723" height="657"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the validation passes, &lt;strong&gt;click Create.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr63d5mtw7licj0qv16w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr63d5mtw7licj0qv16w.png" alt="create" width="737" height="649"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Increase the Idle Timeout on the Public IP address of your Windows 10 Virtual Machine.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;select &lt;strong&gt;Go to resource.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqhnjbhewfwak4odewls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqhnjbhewfwak4odewls.png" alt="Go to resource" width="799" height="381"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From the Overview blade, ensure the virtual machine Status is &lt;strong&gt;Running,&lt;/strong&gt; and the &lt;strong&gt;public IP&lt;/strong&gt; address is visible under the Networking section and also on the &lt;strong&gt;Primary NIC public IP&lt;/strong&gt; section.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsajrbg1ap4fz92bigywg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsajrbg1ap4fz92bigywg.png" alt="pip" width="799" height="392"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Public IP&lt;/strong&gt; under the Networking section on the VM overview page&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzrtebyzkc5ec32u7ovw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzrtebyzkc5ec32u7ovw.png" alt="Net PIP" width="799" height="392"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the &lt;strong&gt;Idle timeout&lt;/strong&gt; bar in the configuration section to the maximum (30) and click &lt;strong&gt;apply&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyr59hxbw3n8wjj2bubvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyr59hxbw3n8wjj2bubvp.png" alt="check" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Connect to the virtual machine.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; tab of the VM, in the top menu, select &lt;strong&gt;Connect&lt;/strong&gt; and &lt;strong&gt;Connect&lt;/strong&gt; in the drop-down.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjh0ru0nf4259gef93bb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjh0ru0nf4259gef93bb0.png" alt="connect" width="799" height="305"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Native RDP&lt;/strong&gt; page, select the &lt;strong&gt;Check access&lt;/strong&gt; button to make sure port 3389 is available.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F048cemasyd1as9j3gb37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F048cemasyd1as9j3gb37.png" alt="Access" width="739" height="598"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Download RDP file&lt;/strong&gt; to download the connection file to your computer.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatd08mas05d3n7x5g1it.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatd08mas05d3n7x5g1it.png" alt="Download" width="794" height="658"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the downloaded RDP file and click &lt;strong&gt;Connect/Continue&lt;/strong&gt; when prompted.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ykjnacfhfb1gjglk0e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ykjnacfhfb1gjglk0e1.png" alt="download" width="741" height="102"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faipzos3gw5vmzp9tp4lu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faipzos3gw5vmzp9tp4lu.png" alt="PW" width="430" height="228"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You may receive a certificate warning during the sign-in process. Click &lt;strong&gt;Yes&lt;/strong&gt; or &lt;strong&gt;Continue&lt;/strong&gt; to create the connection.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbyq67p4h5ajjkl664sr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbyq67p4h5ajjkl664sr.png" alt="cert" width="571" height="161"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you have access to your azure &lt;strong&gt;windows 10 VM&lt;/strong&gt;, lets play some super mario.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb5p5sw8kqs5cpxjksty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb5p5sw8kqs5cpxjksty.png" alt="loading" width="800" height="476"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoixh7vhkkr1bwnl8ctw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoixh7vhkkr1bwnl8ctw.png" alt="IP" width="800" height="463"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrsutoirjrxfoqedgios.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrsutoirjrxfoqedgios.png" alt="mario" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations on successfully deploying and connecting to your first Windows 10 Virtual Machine in Microsoft Azure.&lt;/p&gt;

&lt;p&gt;In this lab, we explored the core concepts behind Azure Virtual Machines, including compute provisioning, authentication, and secure remote access using RDP.&lt;/p&gt;

&lt;p&gt;Azure VMs provide a flexible and scalable way to run workloads in the cloud without managing physical hardware, making them ideal for testing, administration, development environments, and enterprise workloads.&lt;/p&gt;

&lt;p&gt;Some key takeaways from this lab include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Virtual Machines provide on-demand cloud computing resources&lt;/li&gt;
&lt;li&gt;Remote Desktop Protocol (RDP) enables secure remote administration&lt;/li&gt;
&lt;li&gt;Virtual Machines can be used for learning, testing, development, and production workloads&lt;/li&gt;
&lt;li&gt;Cloud infrastructure can be deployed within minutes using the Azure Portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By completing this exercise, you have taken another important step in building practical cloud engineering skills with Microsoft Azure.&lt;/p&gt;

&lt;p&gt;See you in the next article.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>microsoft</category>
      <category>learning</category>
    </item>
    <item>
      <title>How to Secure Private Documents with Azure Blob Storage | Step-by-Step Azure Guide</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Tue, 12 May 2026 08:54:43 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-secure-private-documents-with-azure-blob-storage-step-by-step-azure-guide-1i6i</link>
      <guid>https://dev.to/forsyth_famous_/how-to-secure-private-documents-with-azure-blob-storage-step-by-step-azure-guide-1i6i</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In my previous article, I walked through how to host a public website using Azure Blob Storage. While public access is useful for static websites and publicly available content, not every file stored in the cloud should be accessible to everyone.&lt;/p&gt;

&lt;p&gt;In many real-world environments, organizations need a secure way to store internal documents, sensitive files, backups, and private company data while still maintaining scalability and availability in the cloud.&lt;/p&gt;

&lt;p&gt;In this article, we will build on the same Azure environment from the previous lab by reusing the existing Resource Group and Storage Account setup. If you did not follow the previous article, you can access it here: &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad" class="crayons-story__hidden-navigation-link"&gt;How to Host a Public Website Using Azure Blob Storage&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/forsyth_famous_" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881270%2F27db0fb1-4493-4bf4-83fd-8d86710e5ff8.png" alt="forsyth_famous_ profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/forsyth_famous_" class="crayons-story__secondary fw-medium m:hidden"&gt;
              forsyth famous
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                forsyth famous
                
              
              &lt;div id="story-author-preview-content-3561584" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/forsyth_famous_" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881270%2F27db0fb1-4493-4bf4-83fd-8d86710e5ff8.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;forsyth famous&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 29&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad" id="article-link-3561584"&gt;
          How to Host a Public Website Using Azure Blob Storage
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cloud"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cloud&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/microsoft"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;microsoft&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/azure"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;azure&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/microsoftcloud"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;microsoftcloud&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;For this lab, we will configure private Azure Blob Storage, restrict anonymous access, generate secure Shared Access Signature (SAS) access, and implement lifecycle management and replication policies for better storage optimization and resiliency.&lt;/p&gt;

&lt;p&gt;By the end of this guide, you will understand how to securely manage private documents in Azure Blob Storage using industry-standard cloud practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario
&lt;/h3&gt;

&lt;p&gt;A company requires secure cloud storage for internal office and departmental documents. Since the data contains private organizational information, it must not be publicly accessible without authorization.&lt;/p&gt;

&lt;p&gt;The storage solution must also provide high availability in the event of a regional outage while supporting backup and replication for the company’s public website storage.&lt;/p&gt;

&lt;p&gt;In this lab, we will configure Azure Blob Storage to meet these requirements using private containers, Shared Access Signatures (SAS), lifecycle management, and object replication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a storage account and configure high availability.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a storage account for the internal private company documents.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3lqbo8wip71mwtdh9rb.png" alt="storage" width="674" height="299"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nfuxe10j5v16z97aueb.png" alt="create" width="783" height="508"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Resource group&lt;/strong&gt; created in the previous lab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja6dvp30ivmcu2vgtv7l.png" alt="prev lab" width="800" height="622"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Storage account name&lt;/strong&gt; to &lt;strong&gt;private.&lt;/strong&gt; Add an identifier to the name to ensure the name is unique (i added eazi).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpmh4fotf53cwtmquxdv.png" alt="privateeazi" width="800" height="622"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review,&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&gt; the storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj6psgn1tjwnpwfq6gf79.png" alt="Review" width="800" height="622"&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6clcltrjbhsmpuezcwm5.png" alt="create" width="799" height="643"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvwbeldk0ru1j3lvgljj.png" alt="resource" width="800" height="465"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This storage requires high availability if there’s a regional outage. Read access in the secondary region is not required. Configure the appropriate level of &lt;strong&gt;redundancy.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv47upupiys96cz99idzh.png" alt="Redundancy" width="800" height="581"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Geo-redundant storage (GRS)&lt;/strong&gt; is selected.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyg039k9wbynb4se2oype.png" alt="geo" width="800" height="550"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refresh&lt;/strong&gt; the page.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpl21x2ay2tup7fdged6.png" alt="refresh" width="800" height="550"&gt;
&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5yrieiogwop0e8vh6f99.png" alt="location" width="800" height="550"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frko3o6bgtebfzwnlvqp0.png" alt="save" width="800" height="550"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Create a storage container, upload a file, and restrict access to the file.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a private storage container for the corporate data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8xk0xniaqa1wt6j93mu.png" alt="containers" width="800" height="559"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Container.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4ljue7emnelobns4rpr.png" alt="add container" width="800" height="371"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Name&lt;/strong&gt; of the container is &lt;strong&gt;private.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3tpfyp34vii2xihhd5p1.png" alt="name" width="421" height="657"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Public access level&lt;/strong&gt; is &lt;strong&gt;Private (no anonymous access).&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3p6rabch9jt7rmk11fbn.png" alt="private" width="421" height="657"&gt;
&lt;/li&gt;
&lt;li&gt;As you have time, review the &lt;strong&gt;Advanced&lt;/strong&gt; settings, but take the defaults.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hfrkpqs15mxo1zxn8du.png" alt="advance" width="421" height="657"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rww5m6fzp47cfhd0m6a.png" alt="click" width="421" height="657"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For testing, upload a file to the &lt;strong&gt;private&lt;/strong&gt; container. he type of file doesn’t matter. A small image or text file is a good choice. Test to ensure the file isn’t publicly accessible.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuke8h8lxu57cvqnzoeu4.png" alt="container" width="799" height="442"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Upload.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrveelkqvq0q2y878qzm.png" alt="upload" width="799" height="442"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse to files&lt;/strong&gt; and select a file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfvv26ev3siz7idclcda.png" alt="browse" width="800" height="422"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; the file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cyghu6deitm83dxb093.png" alt="upload" width="800" height="422"&gt;
&lt;/li&gt;
&lt;li&gt;Select the uploaded file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl30zg03wf75947gy3xh.png" alt="file" width="800" height="608"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; tab, copy the &lt;strong&gt;URL.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvgm2fetxbogburbm61k.png" alt="URL" width="800" height="608"&gt;
&lt;/li&gt;
&lt;li&gt;Paste the &lt;strong&gt;URL&lt;/strong&gt; into a new browser tab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhghwvasi7kj65yjs30rb.png" alt="Paste" width="697" height="377"&gt;
&lt;/li&gt;
&lt;li&gt;Verify the file doesn’t display and you receive an error.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6es8qb68d6s938j664rg.png" alt="error" width="800" height="290"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An external partner requires read and write access to the file for at least the next 24 hours. Configure and test a shared access signature (SAS).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded blob file and move to the &lt;strong&gt;Generate SAS&lt;/strong&gt; tab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq200vi9xq5u3xa8nsmeh.png" alt="generate" width="800" height="653"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Permissions&lt;/strong&gt; drop-down, ensure the partner has only &lt;strong&gt;Read&lt;/strong&gt; permissions.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9l0ueygq1zvotlv1uitd.png" alt="Read" width="800" height="653"&gt;
&lt;/li&gt;
&lt;li&gt;Verify the &lt;strong&gt;Start and expiry date/time&lt;/strong&gt; is for the next 24 hours.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6vg5rkwiknhy1h3x4bp.png" alt="expiry" width="800" height="653"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Generate SAS token and URL.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F38zzplxb3kdgez873f3s.png" alt="token" width="714" height="657"&gt;
&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Blob SAS URL&lt;/strong&gt; to a new browser tab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fru6f1bwobjerpzodoms9.png" alt="copy" width="800" height="272"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8w09jtfvlly6j1ij7hr5.png" alt="browser" width="688" height="364"&gt;
&lt;/li&gt;
&lt;li&gt;Verify you can access the file. If you have uploaded an image file it will display in the browser. Other file types will be downloaded.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu2oxfi5nz7aso9j5036.png" alt="eazicam" width="800" height="565"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure storage access tiers and content replication.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To save on costs, after 30 days, move blobs from the hot tier to the cool tier.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to the &lt;strong&gt;storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpy2on1fudebihzd9ubi.png" alt="back" width="800" height="602"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Overview&lt;/strong&gt; section, notice the &lt;strong&gt;Default access tier&lt;/strong&gt; is set to &lt;strong&gt;Hot.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4496hcjc2cu7irvma4f.png" alt="hot" width="800" height="602"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Lifecycle management blade.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgnkq2rhf7huljd7raj4.png" alt="lifecycle" width="800" height="597"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add rule.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgatfl2hgcosy2ynogxay.png" alt="add rule" width="800" height="597"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Rule name&lt;/strong&gt; to &lt;strong&gt;movetocool.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ubrjbjff4hxdp37hxlt.png" alt="rule name" width="740" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Rule scope&lt;/strong&gt; to &lt;strong&gt;Apply rule to all blobs in the storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1aupjete676fdd5jkt7.png" alt="Apply" width="740" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Next.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyl81uqvv47oqg72otxs.png" alt="Next" width="740" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Last modified&lt;/strong&gt; is selected.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2p9meblucnos29eou8e.png" alt="Lastn" width="800" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;More than (days ago)&lt;/strong&gt; to &lt;strong&gt;30.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzyx2lwouf1q8fgj41m3.png" alt="30" width="800" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Then&lt;/strong&gt; drop-down select &lt;strong&gt;Move to cool storage.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Farvudbin7kz0s9qivph8.png" alt="to storage" width="800" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;As you have time, review other lifecycle options in the drop-down.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6od9g7gtpg1c7g9u78yy.png" alt="explore" width="800" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add&lt;/strong&gt; the rule.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbifj9bpw1el3cmvxjig.png" alt="add" width="800" height="618"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The public website files need to be backed up to another storage account.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, &lt;strong&gt;create&lt;/strong&gt; a new container called &lt;strong&gt;backup.&lt;/strong&gt; Use the default values. Refer back to Lab 02a if you need detailed instructions.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6i3wlvuhalr76banb1c.png" alt="backup" width="800" height="606"&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to your &lt;strong&gt;publicwebsite&lt;/strong&gt; storage account. This storage account was created in the previous exercise.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4rdtaxg3ncwkc0uunqg.png" alt="public" width="800" height="605"&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Object replication&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fory2g4vywqy6whfkouit.png" alt="object rep" width="800" height="605"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create replication rules.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbee3x3oqethea8zly6v.png" alt="reprun" width="800" height="605"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Destination storage account&lt;/strong&gt; to the &lt;strong&gt;private&lt;/strong&gt; storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Floua2lv4nhs3pc9q4ii9.png" alt="pri" width="800" height="621"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Source container&lt;/strong&gt; to &lt;strong&gt;public&lt;/strong&gt; and the &lt;strong&gt;Destination container&lt;/strong&gt; to &lt;strong&gt;backup.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0z1aanh34rirwteztda.png" alt="desn" width="800" height="621"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create&lt;/strong&gt; the replication rule.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fly4ob6hozl9yk7mbb8gv.png" alt="now" width="800" height="621"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Optionally, as you have time, upload a file to the &lt;strong&gt;public&lt;/strong&gt; container. Return to the &lt;strong&gt;private&lt;/strong&gt; storage account and refresh the &lt;strong&gt;backup&lt;/strong&gt; container. Within a few minutes your public website file will appear in the backup folder.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0z7bjry6198c3r8vy2d5.png" alt="back" width="800" height="406"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowi89ne8vpaijzcw218q.png" alt="upolad" width="800" height="390"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm60l3xtxe67jttssb830.png" alt="view" width="690" height="640"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yf5uqqug4e9um2zl1qw.png" alt="backup" width="800" height="407"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Congratulations on completing the lab.&lt;/p&gt;

&lt;p&gt;In this exercise, we explored how to secure internal company documents using Azure Blob Storage by implementing private access controls and secure sharing mechanisms. We also looked at additional storage management features such as lifecycle policies and object replication to improve both cost optimization and data resiliency.&lt;/p&gt;

&lt;p&gt;Some key takeaways from this lab include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Blob Storage can securely store private organizational data.&lt;/li&gt;
&lt;li&gt;Containers can be configured to block anonymous public access.&lt;/li&gt;
&lt;li&gt;Shared Access Signatures (SAS) provide controlled and temporary access to files.&lt;/li&gt;
&lt;li&gt;Lifecycle management helps automate storage tier optimization.&lt;/li&gt;
&lt;li&gt;Object replication improves backup and disaster recovery capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This lab also demonstrates the importance of designing cloud storage solutions based on business requirements, balancing security, accessibility, scalability, and cost efficiency.&lt;/p&gt;

&lt;p&gt;If you followed my previous article on hosting a public website using Azure Blob Storage, you have now seen both sides of Azure Storage, public access for web hosting and private access for secure internal storage.&lt;/p&gt;

&lt;p&gt;See you in the next article.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>microsoft</category>
      <category>learning</category>
    </item>
    <item>
      <title>How to Host a Public Website Using Azure Blob Storage</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:00:18 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad</link>
      <guid>https://dev.to/forsyth_famous_/how-to-host-a-public-website-using-azure-blob-storage-17ad</guid>
      <description>&lt;h2&gt;
  
  
  What is Hosting a Website in Azure Storage?
&lt;/h2&gt;

&lt;p&gt;Before deploying a public website, it’s important to understand what this means in the context of Azure.&lt;/p&gt;

&lt;p&gt;In Microsoft Azure, Blob Storage isn’t just for storing files, it can also serve static content directly over the internet.&lt;/p&gt;

&lt;p&gt;This allows you to host content such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML pages&lt;/li&gt;
&lt;li&gt;CSS stylesheets&lt;/li&gt;
&lt;li&gt;JavaScript files&lt;/li&gt;
&lt;li&gt;Images and media&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All without needing to manage a traditional web server.&lt;/p&gt;

&lt;p&gt;Think of it as turning your storage account into a lightweight, globally accessible web host.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;Hosting a static website using Azure Storage is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost-effective – no need for virtual machines or app services&lt;/li&gt;
&lt;li&gt;Scalable – Azure handles traffic automatically&lt;/li&gt;
&lt;li&gt;Simple to deploy – upload files and go live&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here’s the catch, just like we discussed in my previous post, storage accounts are globally accessible by default unless configured otherwise. That means the moment you enable public access, you’re making content available to anyone with the link.&lt;/p&gt;

&lt;p&gt;If you haven’t already, check out my previous article where I break down what a storage account is and how to create one:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p" class="crayons-story__hidden-navigation-link"&gt;Provide storage for the IT department testing and training&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/forsyth_famous_" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881270%2F27db0fb1-4493-4bf4-83fd-8d86710e5ff8.png" alt="forsyth_famous_ profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/forsyth_famous_" class="crayons-story__secondary fw-medium m:hidden"&gt;
              forsyth famous
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                forsyth famous
                
              
              &lt;div id="story-author-preview-content-3545079" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/forsyth_famous_" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881270%2F27db0fb1-4493-4bf4-83fd-8d86710e5ff8.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;forsyth famous&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p" id="article-link-3545079"&gt;
          Provide storage for the IT department testing and training
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cloud"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cloud&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/microsoftcloud"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;microsoftcloud&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/azure"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;azure&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;That foundation will make the concepts in this guide much easier to follow, especially when working with containers and access levels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting Up the Scenario
&lt;/h3&gt;

&lt;p&gt;Now that we understand the concept, let’s get practical.&lt;/p&gt;

&lt;p&gt;The goal isn’t just to get a website running or exposing a file or image to the internet from a storage account, it’s about understanding how to do it securely and responsibly in a real-world cloud environment.&lt;/p&gt;

&lt;p&gt;Now let’s walk through how to actually set this up step by step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a storage account with high availability.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a storage account to support the public website.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3lqbo8wip71mwtdh9rb.png" alt="storage" width="674" height="299"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nfuxe10j5v16z97aueb.png" alt="create" width="783" height="508"&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;resource group&lt;/strong&gt; select &lt;strong&gt;new.&lt;/strong&gt; Give your resource group a &lt;strong&gt;name&lt;/strong&gt; and select &lt;strong&gt;OK.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhbkkks3ggtvlnb6sddz.png" alt="new rg" width="777" height="695"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Storage account name&lt;/strong&gt; to &lt;strong&gt;publicwebsite.&lt;/strong&gt; Make sure the storage account name is unique by adding an identifier.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5e600co2n7thttwbnth.png" alt="storage name" width="782" height="697"&gt;
&lt;/li&gt;
&lt;li&gt;Take the defaults for other settings.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr11qote2lr6bpm8t193z.png" alt="defaults" width="779" height="707"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt; and then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqo5f6ccj7yzh4crn7if.png" alt="Review" width="781" height="708"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fannzvmbi2z9021ed6pp3.png" alt="Create" width="800" height="690"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvs5gicqm5vopsow4dfah.png" alt="resource" width="749" height="563"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This storage requires high availability if there’s a regional outage. Additionally, enable read access to the secondary region.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkleay5dc6cavr4wqcnsr.png" alt="redundancy" width="800" height="633"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Read-access Geo-redundant storage&lt;/strong&gt; is selected.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftza2qcvgdzja9c8eq9gl.png" alt="Geo-redund" width="800" height="566"&gt;
&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2af7ducz0l4jqs4qp8th.png" alt="Locations" width="799" height="681"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Information on the public website should be accessible without requiring customers to login.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzsa9z2d1q85wkak1m0c.png" alt="Configurations" width="755" height="683"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Allow blob anonymous access&lt;/strong&gt; setting is &lt;strong&gt;Enabled.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ayq0jn13rvcp4z39it2.png" alt="anonymous" width="800" height="666"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpiiwg3h1c3uhdnxnp70.png" alt="Save" width="800" height="666"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Create a blob storage container with anonymous read access
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The public website has various images and documents. Create a blob storage container for the content.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ac25y9mq2q8hd9a2l25.png" alt="Data storage" width="800" height="649"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Container.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lmelh61alw9rqus29ux.png" alt="+container" width="800" height="649"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Name&lt;/strong&gt; of the container is &lt;strong&gt;public&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F291r2s4623uuj0dzz836.png" alt="Public" width="800" height="619"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxai2klh1sq1zdp1g637g.png" alt="Create" width="800" height="619"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Customers should be able to view the images without being authenticated. Configure anonymous read access for the public container blobs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your &lt;strong&gt;public&lt;/strong&gt; container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl27xp18w15qugot21wth.png" alt="Pub" width="799" height="625"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; blade, select &lt;strong&gt;Change access level.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowx9e1m0cnd8fl7isflk.png" alt="access level" width="800" height="427"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Public access level&lt;/strong&gt; is &lt;strong&gt;Blob (anonymous read access for blobs only).&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvs8c4ye8ybxhce71ypiu.png" alt="Blob" width="800" height="424"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;OK&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypcfzszl2fho87fj8fe4.png" alt="Ok" width="800" height="424"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Practice uploading files and testing access.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;For testing, upload a file to the &lt;strong&gt;public&lt;/strong&gt; container. The type of file doesn’t matter. A small image or text file is a good choice.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you are viewing your container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkliihvchbev0w5txyo9x.png" alt="viewing" width="800" height="505"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Upload.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnya96fejamm05nyjy1m.png" alt="upload" width="800" height="505"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse to files&lt;/strong&gt; and select a file. Browse to a file of your choice.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Figp24jornb73lffpme52.png" alt="to files" width="800" height="485"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Upload.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t0jfoum1z6o052rmrpb.png" alt="upload again" width="800" height="485"&gt;
&lt;/li&gt;
&lt;li&gt;Close the upload window, &lt;strong&gt;Refresh&lt;/strong&gt; the page and ensure your file was uploaded.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgyc0x9u3bntjh8hxfa9.png" alt="refresh and confirm" width="800" height="467"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Determine the URL for your uploaded file. Open a browser and test the URL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndn1weawq7j76il5rnzw.png" alt="uploaded file" width="746" height="707"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; tab, copy the &lt;strong&gt;URL.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fci3c04tspumf9qob6jga.png" alt="URL" width="746" height="707"&gt;
&lt;/li&gt;
&lt;li&gt;Paste the URL into a new browser tab.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fboh21x9550gqcbcymw68.png" alt="Paste" width="689" height="204"&gt;
&lt;/li&gt;
&lt;li&gt;If you have uploaded an image file it will display in the browser. Other file types should be downloaded.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4y747h8ybyadx53fnl1o.png" alt="visible" width="710" height="701"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure soft delete
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;It’s important that the website documents can be restored if they’re deleted. Configure blob soft delete for 21 days.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;strong&gt;Overview&lt;/strong&gt; blade of the &lt;strong&gt;storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe6bzjboofdqxzg99qv0.png" alt="Overview" width="800" height="667"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Properties&lt;/strong&gt; page, locate the &lt;strong&gt;Blob service&lt;/strong&gt; section.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frb42ysyd9zwpst7dylbr.png" alt="Blob service" width="800" height="667"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Blob soft delete&lt;/strong&gt; setting.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fympbopff5jok2xd5s4z2.png" alt="Blob soft delete" width="800" height="667"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Enable soft delete for blobs&lt;/strong&gt; is &lt;strong&gt;checked.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzxs4rq9z1a6ef7i0mx1.png" alt="enable blob" width="800" height="669"&gt;
&lt;/li&gt;
&lt;li&gt;Change the &lt;strong&gt;Keep deleted blobs for (in days)&lt;/strong&gt; setting to &lt;strong&gt;21.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffm1q592wjrkkwt2mz701.png" alt="21" width="800" height="669"&gt;
&lt;/li&gt;
&lt;li&gt;Notice you can also &lt;strong&gt;Enable soft delete for containers.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuin17xxja8iwphrl36zw.png" alt="Container" width="800" height="669"&gt;
&lt;/li&gt;
&lt;li&gt;Don’t forget to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9921pjtkphk7i6nfmkqn.png" alt="save" width="800" height="669"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If something gets deleted, you need to practice using soft delete to restore the files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your container where you uploaded a file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbzolrn5vgkxtzo6t60mv.png" alt="file" width="800" height="551"&gt;
&lt;/li&gt;
&lt;li&gt;Select the file you uploaded and then select &lt;strong&gt;Delete.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdj0fp2fct86p9w07q02j.png" alt="file" width="800" height="423"&gt;
&lt;/li&gt;
&lt;li&gt;then &lt;strong&gt;delete&lt;/strong&gt; the file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv12xnpi2obkzyt9xl54n.png" alt="delete" width="671" height="555"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;OK&lt;/strong&gt; to confirm deleting the file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpovrypjh9ha2a0eg0e2v.png" alt="confirm" width="684" height="541"&gt;
&lt;/li&gt;
&lt;li&gt;On the container &lt;strong&gt;Overview&lt;/strong&gt; page, toggle the slider &lt;strong&gt;Show deleted blobs.&lt;/strong&gt; This toggle is to the right of the search box.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyjpfcvtwzxix5aqb52n3.png" alt="toggle" width="799" height="362"&gt;
&lt;/li&gt;
&lt;li&gt;Select your deleted file, and use the ellipses on the far right, to &lt;strong&gt;Undelete&lt;/strong&gt; the file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5s46snzoiciumeqch6l.png" alt="Undelete" width="800" height="277"&gt;
&lt;/li&gt;
&lt;li&gt;Refresh the container and confirm the file has been restored.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxee2hhrtqpxf7p02uepc.png" alt="Refresh" width="799" height="370"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure blob versioning
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;It’s important to keep track of the different website product document versions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;strong&gt;Overview&lt;/strong&gt; blade of the &lt;strong&gt;storage account.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7uvkm2owejs9f4c5h7dg.png" alt="Over" width="785" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; section, locate the &lt;strong&gt;Blob service&lt;/strong&gt; section.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wlhyrf5daixsmgz0wnv.png" alt="blob services" width="785" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Versioning&lt;/strong&gt; setting.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mqctoksdvdvr4pukbe3.png" alt="versioning" width="785" height="618"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Enable versioning for blobs&lt;/strong&gt; checkbox is checked.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkampykj5ybdrnnjqkk5.png" alt="checked" width="799" height="616"&gt;
&lt;/li&gt;
&lt;li&gt;Notice your options to &lt;strong&gt;keep all versions&lt;/strong&gt; or &lt;strong&gt;delete versions after.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6q1zp469k3rh7s95uo1.png" alt="keep" width="799" height="616"&gt;
&lt;/li&gt;
&lt;li&gt;Don’t forget to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoqykmlir5qwpoy5evki.png" alt="save" width="799" height="616"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As you have time experiment with restoring previous blob versions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; another version of your container file. This overwrites your existing file.&lt;/li&gt;
&lt;li&gt;Your previous file version is listed on &lt;strong&gt;Show deleted blobs&lt;/strong&gt; page.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Hosting a public website with Azure Blob Storage is simple, but doing it the right way is what really matters.&lt;/p&gt;

&lt;p&gt;You’ve seen how easy it is to make content accessible over the internet, but also why understanding access levels and data protection features like soft delete and versioning is important.&lt;/p&gt;

&lt;p&gt;At this point, you’re not just uploading files, you’re thinking about security, accessibility, and real-world usage.&lt;/p&gt;

&lt;p&gt;See you in the next one, where we take this a step further.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>microsoft</category>
      <category>azure</category>
      <category>microsoftcloud</category>
    </item>
    <item>
      <title>Provide storage for the IT department testing and training</title>
      <dc:creator>forsyth famous</dc:creator>
      <pubDate>Fri, 24 Apr 2026 20:23:46 +0000</pubDate>
      <link>https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p</link>
      <guid>https://dev.to/forsyth_famous_/provide-storage-for-the-it-department-testing-and-training-4i1p</guid>
      <description>&lt;h2&gt;
  
  
  What is an Azure Storage Account?
&lt;/h2&gt;

&lt;p&gt;Before we dive into creating and securing a storage account, it’s important to understand what it actually is.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Microsoft Azure&lt;/strong&gt;, a storage account is a fundamental resource that acts as a secure, scalable container for your data in the cloud. It provides a unified namespace to store and manage different types of data, all under one roof.&lt;/p&gt;

&lt;p&gt;Think of it as a cloud-based data hub where you can store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blobs → for unstructured data like images, videos, backups, logs&lt;/li&gt;
&lt;li&gt;Files → managed file shares accessible via SMB/NFS&lt;/li&gt;
&lt;li&gt;Queues → for messaging between application components&lt;/li&gt;
&lt;li&gt;Tables → NoSQL structured data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each storage account is uniquely named and globally accessible (unless restricted), making it a critical entry point that must be properly secured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up the Environment.
&lt;/h2&gt;

&lt;p&gt;Now that you know what a storage account is, let’s get our hands dirty.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll create and secure an Azure Storage Account for an IT department testing and training environment, keeping things practical, straightforward, and (hopefully) a bit fun along the way.&lt;/p&gt;

&lt;p&gt;And if you’re the type who likes to dig deeper, I’ve included a link to the official Microsoft documentation so you can explore Azure Storage in more detail. &lt;br&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a resource group and a storage account.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create and deploy a resource group to hold all your project resources.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select &lt;strong&gt;Resource groups.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33vaubgkc67oh1ekay4e.png" alt="Search for resource group" width="799" height="243"&gt;
&lt;/li&gt;
&lt;li&gt;Select + &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtzey5l4ixjkb3b29ih5.png" alt="Select + Create" width="800" height="344"&gt;
&lt;/li&gt;
&lt;li&gt;Give your resource group a &lt;strong&gt;name&lt;/strong&gt;. For example, &lt;strong&gt;storagerg.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9eo4g8zkzrs0ycdexwrw.png" alt="a name please" width="800" height="423"&gt;
&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;region.&lt;/strong&gt; Use this region throughout the project.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuckooaimj2omx5nh5qm8.png" alt="region" width="800" height="546"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review and create&lt;/strong&gt; to validate the resource group.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsegvp9bau4vvpsmshqcf.png" alt="Review and Create" width="760" height="702"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; to deploy the resource group.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiuxz7rfjn2nqmcmw3jvv.png" alt="Create" width="687" height="702"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create and deploy a storage account to support testing and training.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3ryqkx63fzrm4s4uipc.png" alt="search for storage account" width="800" height="282"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgnp7iklvw37pnppcr4q.png" alt="+create storage" width="799" height="383"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Basics&lt;/strong&gt; tab, select your &lt;strong&gt;Resource group.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qyy424c6idsc1x5tldj.png" alt="resource group selection" width="777" height="651"&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account name.&lt;/strong&gt; The storage account name must be unique in Azure.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fky9ty5ndgnndqap3q4du.png" alt="unique name" width="795" height="640"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Performance&lt;/strong&gt; to &lt;strong&gt;Standard.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkb5l8fk9jass0g12qh3w.png" alt="performance" width="796" height="649"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review,&lt;/strong&gt; and then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw05hb6uaprpsci63lnt7.png" alt="review and create" width="759" height="704"&gt;
&lt;/li&gt;
&lt;li&gt;Then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7o170n2kth0zvjazsge.png" alt="create" width="730" height="659"&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the storage account to deploy and then &lt;strong&gt;Go to resource.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ib38l3ct7vproxuw4jf.png" alt="resource" width="753" height="447"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configure simple settings in the storage account.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The data in this storage account doesn’t require high availability or durability. A lowest cost storage solution is desired.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6uya69bju6cjdwlzbi5.png" alt="Redundancy" width="800" height="704"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Locally-redundant storage (LRS)&lt;/strong&gt; in the &lt;strong&gt;Redundancy&lt;/strong&gt; drop-down.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjsdz8bsy0oelutio7l6.png" alt="LRS" width="800" height="644"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66xi8ewzhfjt5c57b9sq.png" alt="Save" width="800" height="609"&gt;
&lt;/li&gt;
&lt;li&gt;Refresh the page and notice the content only exists in the primary location.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcl1z0kusx1q7zt1bofbh.png" alt="Refresh" width="800" height="628"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The storage account should only accept requests from secure connections.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffe0hqyqf9a7jcx92kclu.png" alt="Configuration" width="800" height="665"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Secure transfer required&lt;/strong&gt; is &lt;strong&gt;Enabled.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2lxooxs78d23e5v99el.png" alt="transfer" width="800" height="651"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Developers would like the storage account to use at least TLS version 1.2.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffe0hqyqf9a7jcx92kclu.png" alt="Configuration" width="800" height="665"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Minimal TLS version&lt;/strong&gt; is set to &lt;strong&gt;Version 1.2.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudsyvdtdaore205tfius.png" alt="TLS" width="799" height="646"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Until the storage is needed again, disable requests to the storage account.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffe0hqyqf9a7jcx92kclu.png" alt="Configuration" width="800" height="665"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Allow storage account key access&lt;/strong&gt; is &lt;strong&gt;Disabled.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9qlkfou5edo57dwdz6q.png" alt="disable" width="800" height="664"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcveok051enttn13bf4l.png" alt="Save" width="800" height="663"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure the storage account allows public access from all networks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking&lt;/strong&gt; section, select the &lt;strong&gt;Networking&lt;/strong&gt; blade. 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccub4dmj18playtycwoj.png" alt="Networking" width="800" height="670"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Public network access&lt;/strong&gt; is set to &lt;strong&gt;Enabled from all networks.&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhv3hke6rfbnf6k9jphj.png" alt="Public Network Access" width="800" height="657"&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvakx869p26csnos6g81c.png" alt="Save" width="800" height="669"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;And that’s it, you’ve just deployed and secured your first &lt;strong&gt;Azure Storage Account.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What started as a simple setup turned into a solid foundation for a secure IT department testing and training environment. More importantly, you’ve seen how small configuration choices can make a big difference when it comes to protecting your data.&lt;/p&gt;

&lt;p&gt;Keep experimenting, keep building, and most importantly, keep securing your resources.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>microsoftcloud</category>
      <category>azure</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
