<?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: Werneline Nashilongo</title>
    <description>The latest articles on DEV Community by Werneline Nashilongo (@dev_werne).</description>
    <link>https://dev.to/dev_werne</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%2F3874963%2F39b83e76-a26d-4f1a-9fa9-575319739318.png</url>
      <title>DEV Community: Werneline Nashilongo</title>
      <link>https://dev.to/dev_werne</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dev_werne"/>
    <language>en</language>
    <item>
      <title>Providing private storage for internal company documents using Azure cloud</title>
      <dc:creator>Werneline Nashilongo</dc:creator>
      <pubDate>Sun, 24 May 2026 15:10:02 +0000</pubDate>
      <link>https://dev.to/dev_werne/providing-private-storage-for-internal-company-documents-using-azure-cloud-179m</link>
      <guid>https://dev.to/dev_werne/providing-private-storage-for-internal-company-documents-using-azure-cloud-179m</guid>
      <description>&lt;p&gt;In this article, we will be providing private storage to different departments of an online content hosting company. The content is private to the company and shouldn’t be shared without consent. The storage will also be used as a backup to the public website. Thus, the storage requires high availability in case of a disaster occurrence. &lt;/p&gt;

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

&lt;h2&gt;
  
  
  1. Create a storage account for the internal private company documents.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Storage accounts.&lt;/li&gt;
&lt;li&gt;Select + Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fr6ugc3lalmbt4hwfn0v5.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%2Fr6ugc3lalmbt4hwfn0v5.png" alt="Create Storage" width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the Storage account name to private. Add an identifier to the name to ensure the name is unique.&lt;/li&gt;
&lt;li&gt;Select Review, and then Create the storage account.&lt;/li&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select Go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fe27xo2uu6i2h4jdmxdkl.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%2Fe27xo2uu6i2h4jdmxdkl.png" alt="Storage Account" width="800" height="929"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F5xd0m4t6nxe5cr0owfap.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%2F5xd0m4t6nxe5cr0owfap.png" alt="Storage account created" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. 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 redundancy.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data management section, select the Redundancy blade.&lt;/li&gt;
&lt;li&gt;Ensure Geo-redundant storage (GRS) is selected.&lt;/li&gt;
&lt;li&gt;Refresh the page.&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.&lt;/li&gt;
&lt;li&gt;Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GRS replicates data to a secondary region without read access.&lt;/p&gt;

&lt;p&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%2Fz12ymf3e1py82a08gl9q.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%2Fz12ymf3e1py82a08gl9q.png" alt="Redundancy" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  1. Create a private storage container for the corporate data.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data storage section, select the Containers blade.&lt;/li&gt;
&lt;li&gt;Select + Container.&lt;/li&gt;
&lt;li&gt;Ensure the Name of the container is private.&lt;/li&gt;
&lt;li&gt;Ensure the Public access level is Private (no anonymous access).&lt;/li&gt;
&lt;li&gt;As you have time, review the Advanced settings, but take the defaults.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F34e8gf93yted78qtzyo5.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%2F34e8gf93yted78qtzyo5.png" alt="Private storage container" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Upload a file to the private container to test that the file isn’t publicly accessible.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Select the container.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;li&gt;Browse to files and select a file.&lt;/li&gt;
&lt;li&gt;Upload the file.&lt;/li&gt;
&lt;li&gt;Select the uploaded file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fj7pg3ajycn6c0hzvqypn.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%2Fj7pg3ajycn6c0hzvqypn.png" alt="Uploading a blob into a container" width="799" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Overview tab, copy the URL.&lt;/li&gt;
&lt;li&gt;Paste the URL into a new browser tab.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fcnbadvgbhx3alooh67x8.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%2Fcnbadvgbhx3alooh67x8.png" alt="Blob URL" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the file doesn’t display, and you receive an error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fe43p6gc0j00sy9k69hn3.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%2Fe43p6gc0j00sy9k69hn3.png" alt="Image error message" width="800" height="183"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The error message displays that "Public access is not permitted on this storage account." This means that the storage is only accessible to employees' devices/ IP addresses.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. An external partner requires read access to the file for at least the next 24 hours. Configure and test a shared access signature (SAS).
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SAS (Shared Access Signature)&lt;/strong&gt; enables secure, delegated access to storage account resources with detailed control over permissions and access duration. Thus, enhancing data security while allowing clients to interact with storage without needing full account permissions.&lt;/p&gt;

&lt;p&gt;There are three types of SAS:&lt;br&gt;
&lt;strong&gt;User delegation SAS&lt;/strong&gt; - Secured with Microsoft Entra credentials.&lt;br&gt;
&lt;strong&gt;Service SAS&lt;/strong&gt; - Secured with the storage account key, limited to one service.&lt;br&gt;
&lt;strong&gt;Account SAS&lt;/strong&gt; - Secured with the storage account key, allows access across multiple services.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded blob file and move to the Generate SAS tab.&lt;/li&gt;
&lt;li&gt;In the Permissions drop-down, ensure the partner has only Read permissions.&lt;/li&gt;
&lt;li&gt;Verify the Start and expiry date/time is for the next 24 hours.&lt;/li&gt;
&lt;li&gt;Select Generate SAS token and URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fo0rscpjroqunncmmum8b.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%2Fo0rscpjroqunncmmum8b.png" alt="SAS Config" width="799" height="395"&gt;&lt;/a&gt;&lt;br&gt;
In the image above &lt;strong&gt;Allowed IP address&lt;/strong&gt; allows you to control which external devices can have access to the company's private content.&lt;/p&gt;

&lt;ul&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;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fqfkkewalk0fcjtaqtb0i.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%2Fqfkkewalk0fcjtaqtb0i.png" alt="view private content" width="800" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;Implementing lifecycle management policies optimizes storage costs by automating the management of blob data according to its lifecycle, enhancing efficiency and reducing expenses&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to the storage account.&lt;/li&gt;
&lt;li&gt;In the Overview section, notice the Default access tier is set to &lt;strong&gt;Hot&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fyb8yfnq42lcqpbumxzfs.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%2Fyb8yfnq42lcqpbumxzfs.png" alt="Hot Access Tier" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Data management section, select the Lifecycle management blade.&lt;/li&gt;
&lt;li&gt;Select Add rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fckfz22gy4zftd6xp9qhn.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%2Fckfz22gy4zftd6xp9qhn.png" alt="Create new rule" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the Rule name to movetocool.&lt;/li&gt;
&lt;li&gt;Set the Rule scope to Apply rule to all blobs in the storage account.&lt;/li&gt;
&lt;li&gt;Select Next.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F88yif50kttk4v6mjartb.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%2F88yif50kttk4v6mjartb.png" alt="movetocool rule" width="750" height="915"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure Last modified is selected.&lt;/li&gt;
&lt;li&gt;Set More than (days ago) to 30.&lt;/li&gt;
&lt;li&gt;In the Then drop-down select Move to cool storage.&lt;/li&gt;
&lt;li&gt;Add the rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule is added as an IF THEN condition.&lt;/p&gt;

&lt;p&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%2Fosxf89j6pfh92t1cx6q6.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%2Fosxf89j6pfh92t1cx6q6.png" alt="Rule" width="800" height="811"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fahwkhweuq4stjsikbfs1.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%2Fahwkhweuq4stjsikbfs1.png" alt="created rule" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The public website files need to be backed up to another storage account.
&lt;/h2&gt;

&lt;p&gt;In your storage account, create a new container called backup. Use the default values. &lt;/p&gt;

&lt;p&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%2Frdun34lr4bc93ef7dazo.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%2Frdun34lr4bc93ef7dazo.png" alt="backup container" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Navigate to your publicwebsite storage account. This storage account was created in the previous post, "Providing storage for a public website".&lt;/p&gt;

&lt;p&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%2Fuhkbg39afpw780ty9251.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%2Fuhkbg39afpw780ty9251.png" alt="publicwebsite" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Data management section, select the Object replication blade.&lt;/li&gt;
&lt;li&gt;Select Create replication rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fign7pcaeujxugtg9xmpg.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%2Fign7pcaeujxugtg9xmpg.png" alt="replicaation rules" width="799" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the Destination storage account to the private storage account.&lt;/li&gt;
&lt;li&gt;Set the Source container to public and the Destination container to backup.&lt;/li&gt;
&lt;li&gt;Create the replication rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F7mxfxglhaq9n3i60yq31.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%2F7mxfxglhaq9n3i60yq31.png" alt="replicated" width="800" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fo518te17ctwmvp2y39fu.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%2Fo518te17ctwmvp2y39fu.png" alt="show list" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whenever a blob is uploaded on the public storage account, it will be replicated in the private backup storage account. This is how data can be backed up in Azure Cloud.&lt;/p&gt;

&lt;p&gt;In this walkthrough, you configured a private Azure storage solution covering geo redundancy, access restriction, SAS tokens for external partners, lifecycle cost management, and cross account replication for backup. These foundational Azure Blob Storage features work together to keep company data secure, available, and cost efficient, even at scale.&lt;/p&gt;

&lt;p&gt;Feel free to leave a reaction, drop a comment with any questions, or share it with someone who's just getting started with Azure storage!&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>infrastructure</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Providing storage for a public website using Azure cloud</title>
      <dc:creator>Werneline Nashilongo</dc:creator>
      <pubDate>Mon, 18 May 2026 19:45:25 +0000</pubDate>
      <link>https://dev.to/dev_werne/providing-storage-for-a-public-website-3moa</link>
      <guid>https://dev.to/dev_werne/providing-storage-for-a-public-website-3moa</guid>
      <description>&lt;p&gt;In this article, we will be providing Azure cloud storage for a company website that hosts product images, videos, marketing literature, and customer success stories. Customers are located worldwide and demand is rapidly growing. The content is mission-critical and requires low latency load times. It’s important to keep track of the document versions and to quickly restore documents if they’re deleted. &lt;/p&gt;

&lt;h1&gt;
  
  
  Creating a storage account with high availability
&lt;/h1&gt;

&lt;h3&gt;
  
  
  1. Create a storage account to support the public website.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Storage accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fe3a0tj6egdor6qmsqznq.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%2Fe3a0tj6egdor6qmsqznq.png" alt="Storage Account" width="543" height="668"&gt;&lt;/a&gt;&lt;br&gt;
In the dropdown menu, you will also see "classic storage account." Do not use this option, as it is an outdated version.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select + Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fr4ht76045jsqg8oqyxia.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%2Fr4ht76045jsqg8oqyxia.png" alt="Create" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For resource group select new. Give your resource group a name and select OK.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F0c64yff323if1u2plcbe.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%2F0c64yff323if1u2plcbe.png" alt="Resource Group Name" width="800" height="852"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the Storage account name to a unique name with a numeric identifier. &lt;/li&gt;
&lt;li&gt;Take the defaults for other settings.&lt;/li&gt;
&lt;li&gt;Select Review and then Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fs2cb3tb8rll6d71zqth7.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%2Fs2cb3tb8rll6d71zqth7.png" alt="storage created" width="800" height="870"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fa4osqaqsnp06i5172kwi.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%2Fa4osqaqsnp06i5172kwi.png" alt="Final create" width="800" height="842"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select Go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fcqe0yqr1mg8ivoptrhf9.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%2Fcqe0yqr1mg8ivoptrhf9.png" alt="Resource" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. This storage requires high availability in the event of a regional outage. Additionally, enable read access to the secondary region.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Redundancy in Azure Storage&lt;/strong&gt; refers to maintaining multiple copies of data across different locations, ensuring that in the event of a disaster, your data remains accessible and is not lost.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data management section, select the Redundancy blade.&lt;/li&gt;
&lt;li&gt;Ensure Read-access Geo-redundant storage is selected.&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fz0e7bce0fdrgm8jv7exf.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%2Fz0e7bce0fdrgm8jv7exf.png" alt="high avavailability" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As shown in the image above, there are different Azure Storage redundancy options:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locally Redundant Storage (LRS):&lt;/strong&gt; Replicates data within a single datacenter, offering lower cost and durability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zone-Redundant Storage (ZRS):&lt;/strong&gt; Replicates data across multiple availability zones for higher availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geo-Redundant Storage (GRS):&lt;/strong&gt; Asynchronously replicates data to a secondary region for disaster recovery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geo-Zone-Redundant Storage (GZRS):&lt;/strong&gt; Combines ZRS and geo-replication for maximum durability and availability.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Information on the public website should be accessible without requiring customers to login.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Blob Storage&lt;/strong&gt; allows users to effectively store and manage large volume of unstructured data, enhancing data accessibility and analysis capabilities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure the Allow blob anonymous access setting is enabled.&lt;/li&gt;
&lt;li&gt;Be sure to save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fpemb0n7idbuhq57popy9.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%2Fpemb0n7idbuhq57popy9.png" alt="Blob anonymous" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are three types of blobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Block blob&lt;/strong&gt;, which stores text and binary data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Append blobs&lt;/strong&gt; are made up of blocks like block blobs, and are ideal for scenarios such as logging data from virtual machines. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Page blobs&lt;/strong&gt; store large random access files. Page blobs store virtual hard drive (VHD) files and serve as disks for Azure virtual machines. &lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;ul&gt;
&lt;li&gt;In your storage account, in the Data storage section, select the Containers blade.
-Select + Container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fvsa63nnhprdyjzcpqskc.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%2Fvsa63nnhprdyjzcpqskc.png" alt="Create container" width="799" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Name of the container is public.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fljdzgpm8t608dwvgfiie.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%2Fljdzgpm8t608dwvgfiie.png" alt="Container Name" width="293" height="950"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Customers should be able to view the images without being authenticated. Configure anonymous read access for the public container blobs.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your public container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Foxdtogbzdf4wg3hsw2ma.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%2Foxdtogbzdf4wg3hsw2ma.png" alt="Public container" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Overview blade, select Change access level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fzggb5xnk4fs97n0mtyy0.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%2Fzggb5xnk4fs97n0mtyy0.png" alt="Change access level" width="800" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Public access level is Blob (anonymous read access for blobs only).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Read Access&lt;/strong&gt; helps users secure their data while allowing necessary access to specific content, thereby balancing usability and security.&lt;/p&gt;

&lt;p&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%2Fpsme2k3iliigpzm0zyhf.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%2Fpsme2k3iliigpzm0zyhf.png" alt="anonymous read access for blobs only" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select OK.&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;ul&gt;
&lt;li&gt;Ensure you are viewing your container.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;li&gt;Browse to files and select a file. Browse to a file of your choice.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fidts47iew931dvwukhh4.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%2Fidts47iew931dvwukhh4.png" alt="Blob" width="799" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Close the upload window, Refresh the page and ensure your file was uploaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Ff4082g07cythdavzc0h2.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%2Ff4082g07cythdavzc0h2.png" alt="Uploaded blob" width="799" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Determine the URL for your uploaded file. Open a browser and test the URL.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded file.&lt;/li&gt;
&lt;li&gt;On the Overview tab, copy the URL.&lt;/li&gt;
&lt;li&gt;Paste the URL into a new browser tab.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fg9ea42iohqbdir1fnecz.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%2Fg9ea42iohqbdir1fnecz.png" alt="viewing image" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you have uploaded an image file, it will display in the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fsat7anb4pcitfcf6jeh4.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%2Fsat7anb4pcitfcf6jeh4.png" alt="display image" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;&lt;strong&gt;Soft delete&lt;/strong&gt; protects data from accidental deletion by allowing recovery within a specified retention period. This further enhances data protection, allowing users to recover deleted containers and their contents, thus preventing data loss.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Overview blade of the storage account.&lt;/li&gt;
&lt;li&gt;On the Properties page, locate the Blob service section.&lt;/li&gt;
&lt;li&gt;Select the Blob soft delete setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F59by99kvc46ywz5ek7nw.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%2F59by99kvc46ywz5ek7nw.png" alt="Soft delete" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Enable soft delete for blobs is checked.&lt;/li&gt;
&lt;li&gt;Change the Keep deleted blobs for (in days) setting to 21.&lt;/li&gt;
&lt;li&gt;Notice you can also Enable soft delete for containers.&lt;/li&gt;
&lt;li&gt;Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fzb5v6sh14xxabxcx4z2a.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%2Fzb5v6sh14xxabxcx4z2a.png" alt="Enable soft delete" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. If a file is accidentally deleted, you need to practice using soft delete to restore the file.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your container where you uploaded a file.&lt;/li&gt;
&lt;li&gt;Select the file you uploaded and then select Delete.&lt;/li&gt;
&lt;li&gt;Select OK to confirm deleting the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fdcgdfca8krgl8j1adrms.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%2Fdcgdfca8krgl8j1adrms.png" alt="delete blob" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the container Overview page, toggle the slider Show deleted blobs. This toggle is to the right of the search box.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fb6n31b16xdb1whqtlg4t.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%2Fb6n31b16xdb1whqtlg4t.png" alt="Deleted blob" width="799" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your deleted file, and use the ellipses on the far right, to Undelete the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fw652hup2zvuk0b7h435e.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%2Fw652hup2zvuk0b7h435e.png" alt="Undelete the file" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;ul&gt;
&lt;li&gt;Go to the Overview blade of the storage account.&lt;/li&gt;
&lt;li&gt;In the Properties section, locate the Blob service section.&lt;/li&gt;
&lt;li&gt;Select the Versioning setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fzkxch3qxtih9u4t93tv8.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%2Fzkxch3qxtih9u4t93tv8.png" alt="Versioning" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Enable versioning for blobs checkbox is checked.&lt;/li&gt;
&lt;li&gt;Notice your options to keep all versions or delete versions after.&lt;/li&gt;
&lt;li&gt;Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fwnsrfrkll34uk09mwy7j.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%2Fwnsrfrkll34uk09mwy7j.png" alt="versioning" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blob versioning&lt;/strong&gt; allows users to maintain previous versions of blobs when modified or deleted. This helps users recover data from previous versions, enhancing data protection and management in Azure Blob storage.&lt;/p&gt;

&lt;p&gt;In this walkthrough, we configured an Azure Blob Storage account tailored for a high traffic public website with a global audience. By enabling Read Access Geo Redundant Storage, we ensured the content remains available even during a regional outage. Setting up anonymous blob access allows customers worldwide to access images and documents without needing to log in, keeping the experience seamless.&lt;/p&gt;

&lt;p&gt;We also put two important data protection measures in place, soft delete gives a 21-day recovery window in case files are accidentally removed, while blob versioning ensures that previous versions of documents are preserved whenever changes are made. Together, these features provide a resilient, accessible, and well-managed storage solution that meets the demands of a mission-critical public website.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>storage</category>
      <category>dataprotection</category>
    </item>
    <item>
      <title>Creating and Configuring an Azure Storage Account for IT Teams</title>
      <dc:creator>Werneline Nashilongo</dc:creator>
      <pubDate>Tue, 28 Apr 2026 20:52:53 +0000</pubDate>
      <link>https://dev.to/dev_werne/creating-and-configuring-an-azure-storage-account-for-it-teams-33o9</link>
      <guid>https://dev.to/dev_werne/creating-and-configuring-an-azure-storage-account-for-it-teams-33o9</guid>
      <description>&lt;p&gt;Whether you are stepping into cloud computing or looking to move from physical storage infrastructure, Azure Storage is one of the best places to start. Managing data on local hardware comes with constant headaches, hardware failure, maintenance costs, and limited scalability. Azure storage solves all that by providing flexible, internet based storage that you can set up in minutes.&lt;/p&gt;

&lt;p&gt;In this guide, you'll learn how to set up an Azure Storage Account from scratch, the right way. We'll walk through creating a resource group, deploying a storage account, and configuring key security and network settings, all tailored for an IT department running employee training materials. By the end, you'll have a fully configured, secure storage environment ready to use&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Azure Storage
&lt;/h2&gt;

&lt;p&gt;In simple terms, an Azure storage account refers to space in the form of containers that is rented on the internet for the storage of data (mostly unstructured data), instead of having physical servers and storage hardware that need constant maintenance. Examples of unstructured data that can be stored on Azure Storage include PDFs, Images, audio files, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You will need to sign into your Azure account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, you need to &lt;strong&gt;create and deploy a resource group.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating a resource group and a storage account.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create a resource group.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Resource Group&lt;/strong&gt; - this is a space/container that holds related resource solutions. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your Azure portal, search for and select Resource groups&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%2F9rp28tads3kraacypb1w.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%2F9rp28tads3kraacypb1w.png" alt="Its best to select the greyed option" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;+ 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%2Feuvon8cep0vd5d62k4cw.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%2Feuvon8cep0vd5d62k4cw.png" alt="create Resources Groups" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give your resource group a name, select a region. &lt;strong&gt;Select Review and create&lt;/strong&gt; to validate the resource group.&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%2Fa1bg3ecnw42nf49j43gx.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%2Fa1bg3ecnw42nf49j43gx.png" alt="Naming and Resource Region" width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you are satisfied, select Create to deploy the resource group.&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%2Fg2qdebozscbmxvn7ynyf.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%2Fg2qdebozscbmxvn7ynyf.png" alt="Create resource group" width="800" height="1424"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the Resource Group is created, it should look like the image below.&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%2F3ezed7hqb5l96avu6qqs.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%2F3ezed7hqb5l96avu6qqs.png" alt="Saved image" width="800" height="167"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Create and deploy a storage account.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Azure portal, search for and select Storage accounts. When selecting Storage account, you will encounter a &lt;strong&gt;classic storage account&lt;/strong&gt;, this is an old version/build.&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%2F9wy198p66fc1jm42uq9x.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%2F9wy198p66fc1jm42uq9x.png" alt="Storage account" width="800" height="1006"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Create.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the Basics tab, select your Resource group,&lt;br&gt;
and provide a Storage account name. The storage account name must be unique in Azure. Set the Performance to Standard, there is a Premium option that requires more cost because it provides low latency. Select Review, and then Create.&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%2F360ksw36xj5tlo25iyp4.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%2F360ksw36xj5tlo25iyp4.png" alt="Basics Tab" width="800" height="897"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fk8487gfn8sr8opric5ri.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%2Fk8487gfn8sr8opric5ri.png" alt="Create Button" width="800" height="875"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy and then go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F0hs9x9lf01yh6xftxelx.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%2F0hs9x9lf01yh6xftxelx.png" alt="Deploying storage account" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 1: Set redundancy to locally-redundant storage (LRS)
&lt;/h3&gt;

&lt;p&gt;Since this storage account holds employee training materials rather than critical business data, LRS is the most cost effective option, it keeps one copy of your data within a single datacenter without paying for geo-redundancy you don't need.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your storage account, in the Data management section, select the Redundancy blade.&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%2Fsdl1tvgrdk5v8t6j32av.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%2Fsdl1tvgrdk5v8t6j32av.png" alt="Data management Redundancy" width="478" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Locally-redundant storage (LRS) in the Redundancy drop-down. By default, it is set to Read-access geo-redundant storage. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Locally redundant storage (LRS)&lt;/strong&gt; replicates the data within your storage accounts to a single physical datacenter in the primary region of your choice.&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%2Fdmzjpn8j64renkpfcyqu.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%2Fdmzjpn8j64renkpfcyqu.png" alt="Redundant LRS" width="800" height="349"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Save your changes.&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%2Fv226ultzyvoh08kk2zg8.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%2Fv226ultzyvoh08kk2zg8.png" alt="Save button" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refresh the page and notice the content only exists in the primary location.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Enable secure transfer.
&lt;/h3&gt;

&lt;p&gt;Enabling secure transfer ensures that all communication with your storage account happens securely, protecting data from being intercepted in transit, especially important when employees are accessing training files over a corporate network.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Settings section, select the Configuration blade.&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%2F5mjgk3sfbx934zvsjjxy.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%2F5mjgk3sfbx934zvsjjxy.png" alt="Configuration" width="546" height="1428"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure Secure transfer required is Enabled.&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%2Fevyrs1urbvkwsp4h2a1c.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%2Fevyrs1urbvkwsp4h2a1c.png" alt="Secure transfer" width="800" height="983"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Set the minimum TLS version to 1.2
&lt;/h3&gt;

&lt;p&gt;TLS 1.2 ensures that only modern, secure connections are accepted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLS (Transport Layer Security)&lt;/strong&gt; is an encryption protocol between a client application and an Azure Storage account that ensures privacy and data integrity between clients over the internet.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure the Minimal TLS version is set to Version 1.2.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favzfu5oq0gyliv7jn60l.png" alt="TLS version" width="800" height="514"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Disable storage account key access.
&lt;/h3&gt;

&lt;p&gt;Disabling key access temporarily locks down the storage account so no one can read or write data while it's not in active use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure Allow storage account key access is Disabled.&lt;/li&gt;
&lt;li&gt;Save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxk0tzmz38w4pvhmts0m.png" alt="Limiting access" width="800" height="522"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 5: Configure public network access
&lt;/h3&gt;

&lt;p&gt;Since this storage account needs to be reachable by employees across different locations and devices, enabling public network access ensures they can access the training materials over the internet.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Security + networking section, select the Networking blade.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure Public network access is set to Enabled from all networks.&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%2F3slkxnvy635m7mrdw3li.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%2F3slkxnvy635m7mrdw3li.png" alt="Enabling a public network" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you click on manage, you can enable the Public network access. Be sure to save your changes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F20y7ou8b7dprizr9df0k.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%2F20y7ou8b7dprizr9df0k.png" alt="Public network Access" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And just like that, we've set up a fully configured Azure Storage Account. We created a resource group to organise your resources, deployed a storage account for your IT department's training materials, and locked it down with the right security settings: LRS redundancy, enforced HTTPS, TLS 1.2, and controlled network access.&lt;/p&gt;

&lt;p&gt;Let's engage in the comments section and share more knowledge on this topic.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>storage</category>
      <category>cloudcomputing</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
