<?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 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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="800" 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>
