<?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>Forem:      Faith Aneke Adaora</title>
    <description>The latest articles on Forem by      Faith Aneke Adaora (@adaoraa).</description>
    <link>https://forem.com/adaoraa</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%2F3767482%2F9c4570df-7103-4933-afa3-99f816250ee2.jpeg</url>
      <title>Forem:      Faith Aneke Adaora</title>
      <link>https://forem.com/adaoraa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/adaoraa"/>
    <language>en</language>
    <item>
      <title>Part 6: Resource Cleanup &amp; Cost Control -Decommissioning Azure Infrastructure</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Fri, 10 Apr 2026 19:18:54 +0000</pubDate>
      <link>https://forem.com/adaoraa/part-6-resource-cleanup-cost-control-decommissioning-azure-infrastructure-nfn</link>
      <guid>https://forem.com/adaoraa/part-6-resource-cleanup-cost-control-decommissioning-azure-infrastructure-nfn</guid>
      <description>&lt;h2&gt;
  
  
  Overview: 🧹 Clean Up (Avoid Unexpected Azure Costs)
&lt;/h2&gt;

&lt;p&gt;Every good cloud engineer knows this:&lt;br&gt;
&lt;strong&gt;If you don’t clean up, you keep paying and Azure resources continue running and billing until they are deleted.&lt;/strong&gt;&lt;br&gt;
So the final step in this guided project was to properly remove everything i have created.&lt;/p&gt;

&lt;p&gt;This ensures:&lt;br&gt;
&lt;strong&gt;•No unexpected charges&lt;br&gt;
•No orphaned resources&lt;br&gt;
•A clean environment&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Procedure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔓 Step 1: Remove Delete Locks
&lt;/h3&gt;

&lt;p&gt;Earlier in the project,i protected the VM with a Delete lock.&lt;br&gt;
Hence, before deleting anything that lock must be removed.&lt;br&gt;
Here’s what i did:&lt;/p&gt;

&lt;h4&gt;
  
  
  ✔ Removing the VM Lock
&lt;/h4&gt;

&lt;p&gt;1.Navigated to Virtual Machines&lt;br&gt;
2.Selected guided-project-vm&lt;br&gt;
3.Opened Settings → Locks&lt;br&gt;
4.Deleted the VM-delete-lock&lt;br&gt;
5.Confirmed removal&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%2Fuh41552jzzs9ze0quf84.jpeg" 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%2Fuh41552jzzs9ze0quf84.jpeg" alt="delete lock" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the lock was removed,the VM became eligible for deletion.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✔ Removing the Resource Group Lock (If Applied)
&lt;/h4&gt;

&lt;p&gt;Since i also applied a lock at the Resource Group level, i :&lt;br&gt;
1.Navigated to Resource Groups&lt;br&gt;
2.Selected the project 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%2Foqxlhqkfjus666k8f98z.jpeg" 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%2Foqxlhqkfjus666k8f98z.jpeg" alt=" " width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Opened Settings → Locks&lt;br&gt;
4.Deleted the Resource Group delete lock&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%2Fi3l3cnz731kyt5oxvous.jpeg" 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%2Fi3l3cnz731kyt5oxvous.jpeg" alt="Rg lock" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Confirmed removal.&lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Reminder
&lt;/h4&gt;

&lt;p&gt;Always remove locks before attempting to delete resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  🗑️ Step 2: Delete the Resource Group
&lt;/h3&gt;

&lt;p&gt;One of the biggest advantages of using resource groups is that you can delete everything at once.&lt;br&gt;
Where instead of deleting:&lt;br&gt;
•The VM&lt;br&gt;
•The VNet&lt;br&gt;
•The Storage account&lt;br&gt;
•The NSG&lt;br&gt;
•The Subnets individually…&lt;/p&gt;

&lt;p&gt;I simply:&lt;br&gt;
1.Navigated to Resource Groups&lt;br&gt;
2.Selected guided-project-rg&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%2Fmmovxjmc4ffbui7o953q.jpeg" 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%2Fmmovxjmc4ffbui7o953q.jpeg" alt="project-rg" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Chose Delete 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%2Ffcsrfb663lr545liezxm.jpeg" 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%2Ffcsrfb663lr545liezxm.jpeg" alt="Delete rg" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Entered the resource group name to confirm.&lt;br&gt;
5.Confirmed removal&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%2Fdee7xtcwzux4wguhxokr.jpeg" 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%2Fdee7xtcwzux4wguhxokr.jpeg" alt="enter rg name " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Within a few minutes, Azure removed all associated resources.&lt;br&gt;
Clean. Efficient. Complete.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚠️ Important Note: The NetworkWatcherRG Check
&lt;/h3&gt;

&lt;p&gt;🔗 Azure sometimes automatically creates a resource group called &lt;strong&gt;¥NetworkWatcherRG&lt;/strong&gt;,if it already existed before the project, do NOT delete it.&lt;br&gt;
🔗 If it was created during this guided project, then it should also be removed using the same deletion process.&lt;br&gt;
🔗 Always verify before deleting shared system resource groups.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Final Outcome’
&lt;/h3&gt;

&lt;p&gt;At this point:&lt;br&gt;
☑️ •All locks removed&lt;br&gt;
☑️ •All project resources deleted&lt;br&gt;
☑️ •No active billable services remaining&lt;br&gt;
☑️ •Environment fully cleaned&lt;/p&gt;

&lt;p&gt;This concludes the Azure Management Tasks Guided Project.&lt;/p&gt;

&lt;p&gt;From:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✔ Environment setup&lt;br&gt;
✔ Networking updates&lt;br&gt;
✔ VM management&lt;br&gt;
✔ Storage configuration&lt;br&gt;
✔ Tags &amp;amp; governance&lt;br&gt;
✔ Cleanup &amp;amp; cost control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a full administrative lifecycle, end to end.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>devops</category>
      <category>career</category>
    </item>
    <item>
      <title>Part 5 : 🏷️ Managing Tags &amp; Resource Locks in Azure</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Thu, 09 Apr 2026 20:24:41 +0000</pubDate>
      <link>https://forem.com/adaoraa/part-5-managing-tags-resource-locks-in-azure-4o88</link>
      <guid>https://forem.com/adaoraa/part-5-managing-tags-resource-locks-in-azure-4o88</guid>
      <description>&lt;h2&gt;
  
  
  🏷️ Overview
&lt;/h2&gt;

&lt;p&gt;After configuring networking, scaling the VM, and managing storage,the final responsibility was governance.&lt;br&gt;
This is because in real-world environments, deploying resources isn’t enough,you must:&lt;br&gt;
• Organize them&lt;br&gt;
• Monitor ownership&lt;br&gt;
• Prevent accidental deletion&lt;/p&gt;

&lt;p&gt;Hence, this phase focused on tags and resource locks which are two simple but powerful Azure management tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 The Scenario
&lt;/h3&gt;

&lt;p&gt;The Azure admin had two concerns:&lt;br&gt;
1.Prevent accidental deletion of the VM running as an FTP server.&lt;br&gt;
2.Quickly identify which department owns which resource.&lt;br&gt;
This is where governance best practices come in.&lt;/p&gt;

&lt;h3&gt;
  
  
  🖥️ Managing Tags and Locks on the Virtual Machine
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1: 🏷️ Adding Tags to the VM
&lt;/h4&gt;

&lt;p&gt;Tags allow you to categorize and group resources using key-value pairs.&lt;br&gt;
• Where inside the guided-project-vm&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbieetn6wb5cj46p3dhbr.jpeg" 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%2Fbieetn6wb5cj46p3dhbr.jpeg" alt="virtual machine " width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•I added two tags:&lt;br&gt;
Name          Value&lt;br&gt;
Department    Customer Service&lt;br&gt;
Purpose       FTP Server&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%2Fkedxq5cbuycb70xq80hi.jpeg" 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%2Fkedxq5cbuycb70xq80hi.jpeg" alt="Tags" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This makes it easy to:&lt;br&gt;
•Filter resources by department&lt;br&gt;
•Track cost allocation&lt;br&gt;
•Identify resource purpose instantly&lt;br&gt;
Tags are small but powerful for reporting and organization.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: 🔒 Adding a Resource Lock to Prevent Deletion
&lt;/h4&gt;

&lt;p&gt;Next, I secured the VM.&lt;br&gt;
Where inside Settings → Locks, I:&lt;br&gt;
•Selected + Add&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%2Fnzhfovv4nbur2k26bip3.jpeg" 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%2Fnzhfovv4nbur2k26bip3.jpeg" alt="+Add" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Named the lock VM-delete-lock&lt;br&gt;
•Chose Lock type: Delete&lt;br&gt;
•Added a note explaining the reason&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%2F9rcyjtkiqx3ehtkqs7j2.jpeg" 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%2F9rcyjtkiqx3ehtkqs7j2.jpeg" alt="name the locks" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  What this means
&lt;/h6&gt;

&lt;p&gt;The VM can still be modified but it cannot be deleted unless the lock is removed first.&lt;br&gt;
This is critical for production workloads where one accidental click won’t take down the FTP server.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: 🌐 Adding Tags to Network Resources
&lt;/h4&gt;

&lt;p&gt;Governance shouldn’t stop at compute.&lt;br&gt;
Next, I moved to the virtual network (guided-project-vnet) &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%2Fmgc62cxtnqjwuysn7qxt.jpeg" 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%2Fmgc62cxtnqjwuysn7qxt.jpeg" alt="vnet" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and added:&lt;br&gt;
Name             Value&lt;br&gt;
Department       IT&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%2Flr1elbh3bczhu2drjr4z.jpeg" 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%2Flr1elbh3bczhu2drjr4z.jpeg" alt="add tags" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Key Note💡 1:
&lt;/h4&gt;

&lt;p&gt;Now both&lt;br&gt;
•The VM&lt;br&gt;
•The Virtual Network are clearly categorized and traceable and this improves:&lt;br&gt;
•Visibility&lt;br&gt;
•Cost tracking&lt;br&gt;
•Operational clarity&lt;/p&gt;

&lt;h4&gt;
  
  
  Key Note💡 2:
&lt;/h4&gt;

&lt;p&gt;Tags and Locks Matter because:&lt;br&gt;
In large environments with hundreds of resources,&lt;br&gt;
•Tags help with cost management and reporting.&lt;br&gt;
•Locks prevent critical service disruptions.&lt;br&gt;
•Governance reduces operational risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Conclusion
&lt;/h2&gt;

&lt;p&gt;Cloud administration is not just about building infrastructure.&lt;br&gt;
It’s about managing it responsibly.&lt;/p&gt;

&lt;p&gt;Therefore at this stage of the guided project, i have:&lt;br&gt;
•Organized resources using tags.&lt;br&gt;
•Protected critical infrastructure with delete locks.&lt;br&gt;
•Improved visibility across departments.&lt;br&gt;
•Strengthened governance practices.&lt;/p&gt;

&lt;p&gt;This concludes the Azure Management Tasks guided project.&lt;br&gt;
🔗 From networking…&lt;br&gt;
🔗 To compute…&lt;br&gt;
🔗 To storage…&lt;br&gt;
🔗 To governance…&lt;br&gt;
🔑 A full administrative lifecycle.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Part 4 : 📦 Managing Azure Storage - Containers, Access Tiers &amp; Secure Access Control</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Thu, 09 Apr 2026 19:34:33 +0000</pubDate>
      <link>https://forem.com/adaoraa/managing-azure-storage-containers-access-tiers-secure-access-control-g71</link>
      <guid>https://forem.com/adaoraa/managing-azure-storage-containers-access-tiers-secure-access-control-g71</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;With the virtual network and VM fully configured,the next responsibility shifted to storage management.&lt;/p&gt;

&lt;p&gt;This part of the project focused on three critical things:&lt;/p&gt;

&lt;h4&gt;
  
  
  •Storing data efficiently
&lt;/h4&gt;

&lt;h4&gt;
  
  
  •Optimizing storage cost
&lt;/h4&gt;

&lt;h4&gt;
  
  
  •Controlling and revoking access securely
&lt;/h4&gt;

&lt;p&gt;Here’s how I handled it 👇&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure 1: 📦 Creating a Storage Container &amp;amp; Uploading a Blob
&lt;/h3&gt;

&lt;p&gt;Inside the existing storage account (guided-project-rg), I:&lt;br&gt;
•Navigated to Data storage → Containers&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%2Fgz5ca5f76hdulwo01cap.jpeg" 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%2Fgz5ca5f76hdulwo01cap.jpeg" alt="new container " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Created a new container called storage-container&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%2F02qdvtfu3i1k9rg269e3.jpeg" 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%2F02qdvtfu3i1k9rg269e3.jpeg" alt="named the container " width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Uploaded a test image file&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%2Fts59pr95nc3o2q1of7p0.jpeg" 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%2Fts59pr95nc3o2q1of7p0.jpeg" alt="uploaded a file " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once uploaded, Azure automatically assigned it the Hot access tier which is ideal for frequently accessed data.&lt;br&gt;
But since this was just a test file, keeping it in Hot storage wasn’t cost-efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure 2:❄️ Changing the Access Tier (Cost Optimization)
&lt;/h3&gt;

&lt;p&gt;To optimize cost:&lt;br&gt;
•I selected the uploaded blob&lt;br&gt;
•Clicked Change tier&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%2Fnymv693z02loy02av9fr.jpeg" 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%2Fnymv693z02loy02av9fr.jpeg" alt="Change tier" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Switched it from Hot → Cold&lt;br&gt;
•Saved the configuration&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%2Fvlip2428owxqffhduf75.jpeg" 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%2Fvlip2428owxqffhduf75.jpeg" alt="Switch from hot to cold" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This reinforced an important cloud concept (storage tiers directly impacting cost),where not all data needs premium, high-frequency access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure 3: 📁 Creating a File Share
&lt;/h3&gt;

&lt;p&gt;Beyond blob storage, I also needed to configure Azure Files for shared access scenarios.Inside the same storage account:&lt;br&gt;
•I navigated to File shares&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%2Fyos984s9izy2w4nhf8ar.jpeg" 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%2Fyos984s9izy2w4nhf8ar.jpeg" alt="File share" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Created a new share called file-share&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%2Fp4bg5zrmi8mgyopzusdq.jpeg" 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%2Fp4bg5zrmi8mgyopzusdq.jpeg" alt="create a new share" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Enabled backup (for this lab)&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%2Fuy6h6ib32o0gdfxmortl.jpeg" 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%2Fuy6h6ib32o0gdfxmortl.jpeg" alt="Enable backup " width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Uploaded a file into the share&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%2Faddzn0ex8nb008ehrm6q.jpeg" 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%2Faddzn0ex8nb008ehrm6q.jpeg" alt="uploaded a file " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the environment supported both:&lt;br&gt;
•Blob storage (object-based)&lt;br&gt;
•File shares (SMB-style shared storage)&lt;/p&gt;

&lt;p&gt;Which are two different storage solutions and two different use cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure 4: 🔐 Generating a Shared Access Signature (SAS Token)
&lt;/h3&gt;

&lt;p&gt;Next came secure access control, where instead of giving full account access,i generated a Shared Access Signature (SAS) for the uploaded blob.&lt;/p&gt;

&lt;h5&gt;
  
  
  The Configuration included are :
&lt;/h5&gt;

&lt;p&gt;•Signing method: Account key&lt;br&gt;
•Signing key: Key 1&lt;br&gt;
•Permissions: Read only&lt;br&gt;
•Protocol: HTTPS only&lt;br&gt;
•Custom expiration time&lt;/p&gt;

&lt;p&gt;Once generated, i copied the Blob SAS URL into a new browser tab and it successfully displayed the image.&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%2F4kw62vdvd8dyudcyqg3g.jpeg" 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%2F4kw62vdvd8dyudcyqg3g.jpeg" alt="Generate SAS" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That link allowed temporary limited access.&lt;br&gt;
This is powerful because:&lt;br&gt;
•No need to share account keys&lt;br&gt;
•Access is time-bound&lt;br&gt;
•Permissions are granular&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure 5: 🔁 Rotating Access Keys (Revoking Access)
&lt;/h3&gt;

&lt;p&gt;Granting access is only half the story,revoking access is just as important.Since the SAS token was signed using Key 1,i invalidated it by:&lt;br&gt;
•Navigating to Security + networking → Access keys&lt;br&gt;
•Selecting Rotate key for Key 1&lt;br&gt;
•Confirming the regeneration&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%2Feemfr64al3mvr4pacu3r.jpeg" 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%2Feemfr64al3mvr4pacu3r.jpeg" alt="Rotate key " width="800" height="466"&gt;&lt;/a&gt;&lt;br&gt;
After the key rotation, I refreshed the SAS URL tab.&lt;/p&gt;

&lt;h3&gt;
  
  
  ☑️ Result
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Authentication failed,access successfully revoked and this demonstrated a critical Azure security concept.&lt;/li&gt;
&lt;li&gt;Rotating storage account keys immediately invalidates all SAS tokens generated with that key.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📊 Final Outcome
&lt;/h3&gt;

&lt;p&gt;By the end of this exercise, i had:&lt;br&gt;
•Created and configured blob storage&lt;br&gt;
•Optimized cost using access tiers&lt;br&gt;
•Deployed Azure File Shares&lt;br&gt;
•Generated secure, time-limited access&lt;br&gt;
•Revoked access by rotating keys&lt;/p&gt;

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

&lt;p&gt;This part of the guided project strengthened my understanding of:&lt;br&gt;
•Storage architecture&lt;br&gt;
•Access governance&lt;br&gt;
•Cost management&lt;br&gt;
•Real-world administrative control&lt;br&gt;
Where cloud storage isn’t just about uploading files.It’s about managing lifecycle, security, and access responsibly.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>devops</category>
      <category>career</category>
    </item>
    <item>
      <title>🖥️ Part 3: Managing the Virtual Machine - Migration, Scaling &amp; Cost Optimization</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Thu, 09 Apr 2026 13:54:13 +0000</pubDate>
      <link>https://forem.com/adaoraa/managing-the-virtual-machine-migration-scaling-cost-optimization-5507</link>
      <guid>https://forem.com/adaoraa/managing-the-virtual-machine-migration-scaling-cost-optimization-5507</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;As the environment continued to evolve, networking was only one piece of the puzzle.&lt;/p&gt;

&lt;p&gt;With the new &lt;strong&gt;ftpSubnet&lt;/strong&gt; created and secured in Part 2, the next step was ensuring the virtual machine could properly support its workload.&lt;/p&gt;

&lt;p&gt;This phase moved beyond networking and focused on VM management ,i.e aligning subnet placement, compute power,storage and cost optimization to ensure performance, security, and efficiency.&lt;/p&gt;

&lt;p&gt;Here’s how I handled it 👇&lt;/p&gt;

&lt;h3&gt;
  
  
  🔄 Step 1: Migrating the VM to the New Subnet
&lt;/h3&gt;

&lt;p&gt;Since the new subnet had stricter network rules (allowing only SSH – Port 22), the VM had to be placed inside it.&lt;/p&gt;

&lt;p&gt;I navigated to:&lt;br&gt;
•Virtual Machines&lt;br&gt;
•Selected guided-project-vm&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tev20qtftr9d0ivvqkk.jpeg" 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%2F5tev20qtftr9d0ivvqkk.jpeg" alt="virtual machine " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Stopped the VM (Azure requires deallocation for subnet 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%2F12qmkl0e65co0norjelq.jpeg" 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%2F12qmkl0e65co0norjelq.jpeg" alt="stop the vm" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Waited until it showed Stopped (deallocated)&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%2Fchgltg2wpol3mww6zgrx.jpeg" 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%2Fchgltg2wpol3mww6zgrx.jpeg" alt="deallocated " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then:&lt;br&gt;
•Opened Networking&lt;br&gt;
•Selected the Network Interface / IP configuration&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%2Fin4tdqg8n34yhsprspk7.jpeg" 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%2Fin4tdqg8n34yhsprspk7.jpeg" alt="network interface " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Changed the subnet to ftpSubnet&lt;br&gt;
•Clicked Apply&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%2Fdlr9brgqbxz7tglggqe0.jpeg" 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%2Fdlr9brgqbxz7tglggqe0.jpeg" alt="Subnet to ftp" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Note
&lt;/h3&gt;

&lt;p&gt;The VM was now operating inside the secured subnet environment&lt;br&gt;
✅ Network segmentation&lt;br&gt;
✅ Security alignment&lt;/p&gt;

&lt;h3&gt;
  
  
  📈 Step 2: Vertically Scaling the VM
&lt;/h3&gt;

&lt;p&gt;With the VM transitioning into an FTP server role, it needed more processing power.&lt;/p&gt;

&lt;p&gt;From the VM blade:&lt;br&gt;
•I selected Size under Availability + Scale&lt;br&gt;
•Chose a higher SKU (e.g., D2s_v5)&lt;br&gt;
•Clicked Resize&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%2F1t0tl0830ri6nx4oicgy.jpeg" 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%2F1t0tl0830ri6nx4oicgy.jpeg" alt="Resize" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Note
&lt;/h3&gt;

&lt;p&gt;✅ Vertical scaling allows us to increase CPU and memory without redeploying the VM.&lt;br&gt;
✅ Now the machine could handle more concurrent connections and file transfers.&lt;br&gt;
✅ Performance upgraded 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 Step 3: Attaching a New Data Disk
&lt;/h3&gt;

&lt;p&gt;An FTP server without sufficient storage is a problem waiting to happen.&lt;br&gt;
So I attached a new managed disk:&lt;br&gt;
•Opened Disks&lt;br&gt;
•Selected Create and attach a new disk&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%2Ffxnu5pyyn6jjpakwiqo6.jpeg" 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%2Ffxnu5pyyn6jjpakwiqo6.jpeg" alt="new disk" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Named it ftp-data-disk&lt;br&gt;
•Set size to 20 GB&lt;br&gt;
•Applied 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%2Fdf59z5l2ug5x069i06pb.jpeg" 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%2Fdf59z5l2ug5x069i06pb.jpeg" alt="Apply changes" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Note
&lt;/h3&gt;

&lt;p&gt;✅ The VM now had dedicated storage for uploads and file transfers.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⏱️ Step 4: Configuring Automatic Shutdown (Cost Control)
&lt;/h3&gt;

&lt;p&gt;Running a VM 24/7 can quietly increase cloud costs.&lt;br&gt;
Since the admin only needed the FTP server during working hours, I configured automatic shutdown:&lt;br&gt;
•Navigated to Auto-shutdown&lt;br&gt;
•Set scheduled shutdown to 7:15 PM (UTC)&lt;br&gt;
•Saved configuration&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%2Fj8vh1frqjbou4g5hlb51.jpeg" 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%2Fj8vh1frqjbou4g5hlb51.jpeg" alt="Auto shutdown " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Note
&lt;/h3&gt;

&lt;p&gt;✅ Now,the VM automatically powers down daily thereby reducing unnecessary compute charges.&lt;br&gt;
✅ Cost optimization is also in action 💡&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Final Outcome
&lt;/h2&gt;

&lt;p&gt;By the end of this task, I had:&lt;br&gt;
✅•Migrated the VM to a secured subnet&lt;br&gt;
✅•Increased its compute capacity&lt;br&gt;
✅•Expanded its storage&lt;br&gt;
✅•Implemented automated cost control&lt;/p&gt;

&lt;p&gt;This exercise reinforced something important:&lt;br&gt;
Azure management isn’t just about deploying resources,it’s about maintaining,optimizing, and securing them over time.&lt;/p&gt;

&lt;p&gt;That’s what real cloud administration looks like.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>storage</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🔧 Part 2: Azure Management Tasks - Hands-On Guided Project</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Thu, 09 Apr 2026 12:35:07 +0000</pubDate>
      <link>https://forem.com/adaoraa/part-2-azure-management-tasks-hands-on-guided-project-49k7</link>
      <guid>https://forem.com/adaoraa/part-2-azure-management-tasks-hands-on-guided-project-49k7</guid>
      <description>&lt;h2&gt;
  
  
  📝 Overview
&lt;/h2&gt;

&lt;p&gt;After deploying the environment in Part 1, the next phase focused on managing and governing Azure resources.&lt;/p&gt;

&lt;p&gt;Cloud engineering doesn’t stop at deployment,proper administration ensures security, efficiency, and operational stability.&lt;/p&gt;

&lt;p&gt;In this multi-part series (Part 2 – Part 6), I’ll be covering:&lt;/p&gt;

&lt;h4&gt;
  
  
  •Updating the Virtual Network
&lt;/h4&gt;

&lt;h4&gt;
  
  
  •Managing Virtual Machines
&lt;/h4&gt;

&lt;h4&gt;
  
  
  •Controlling Storage Access
&lt;/h4&gt;

&lt;h4&gt;
  
  
  •Managing Tags and Resource Locks
&lt;/h4&gt;

&lt;p&gt;In this article (Part 2), I’ll focus specifically on Updating the Virtual Network, with an emphasis on improving network segmentation for tighter security control.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌐 Updating the Virtual Network: Securing SFTP Traffic with a Dedicated Subnet
&lt;/h2&gt;

&lt;p&gt;When managing cloud environments, security and structure go hand in hand.&lt;br&gt;
As part of my Azure Management Tasks guided project, I needed to improve the network design by creating a dedicated subnet specifically for SFTP traffic. &lt;/p&gt;

&lt;p&gt;Instead of allowing traffic to mix within the main subnet,I segmented the network and applied tighter security controls using a Network Security Group (NSG).&lt;/p&gt;

&lt;p&gt;Here’s how I did it 👇&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 The Goal
&lt;/h3&gt;

&lt;h5&gt;
  
  
  •Create a new subnet inside an existing Virtual Network
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •Restrict traffic using a Network Security Group
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •Allow only secure SFTP (SSH – Port 22) traffic
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •Associate the NSG with the subnet
&lt;/h5&gt;

&lt;p&gt;This ensures better isolation, tighter access control, and improved security posture.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Step 1: Creating a Dedicated Subnet
&lt;/h3&gt;

&lt;p&gt;I logged into the Azure Portal and navigated to Virtual 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%2Fidhf8iu5ippoen7pxp5l.jpeg" 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%2Fidhf8iu5ippoen7pxp5l.jpeg" alt="Virtual Network " width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside my existing VNet (guided-project-vnet), I:&lt;br&gt;
•Opened Subnets&lt;br&gt;
•Clicked + Subnet&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%2F3lh6mi98emcdkw917zr2.jpeg" 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%2F3lh6mi98emcdkw917zr2.jpeg" alt="+ Subnet" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Named it ftpSubnet&lt;br&gt;
•Left the remaining settings as default&lt;br&gt;
•Selected Add&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%2Ftnhaf51uod0ej0862p0e.jpeg" 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%2Ftnhaf51uod0ej0862p0e.jpeg" alt="create the subnet" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just like that, the new subnet was created.&lt;br&gt;
This subnet will only handle SFTP traffic, separating it from other workloads in the environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Step 2: Creating a Network Security Group
&lt;/h3&gt;

&lt;p&gt;Next, I needed to control what traffic could reach this subnet.&lt;/p&gt;

&lt;p&gt;From the Azure portal:&lt;br&gt;
•I searched for Network Security Groups from the virtual network section &lt;br&gt;
•Clicked + 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%2Fqy0thl55hqv0qsqzohfk.jpeg" 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%2Fqy0thl55hqv0qsqzohfk.jpeg" alt="+ create" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Selected my resource group (guided-project-rg)&lt;br&gt;
•Named the NSG ftpNSG&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%2Frzf8pamono626la4xb7y.jpeg" 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%2Frzf8pamono626la4xb7y.jpeg" alt="select RG" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Reviewed and deployed it&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%2Fw1vafrz53muaggurmkb3.jpeg" 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%2Fw1vafrz53muaggurmkb3.jpeg" alt="Deployment" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once deployment was complete, I opened the resource to configure inbound rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚦 Step 3: Allowing Secure SFTP Traffic
&lt;/h3&gt;

&lt;p&gt;Inside the NSG:&lt;br&gt;
•I navigated to Inbound security rules&lt;br&gt;
•Clicked + Add&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%2Fi7qc2hnv24c87zh0c04v.jpeg" 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%2Fi7qc2hnv24c87zh0c04v.jpeg" alt=" +Add " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Changed the destination port from 8080 to 22&lt;br&gt;
•Selected TCP&lt;br&gt;
•Named the rule ftpInbound&lt;br&gt;
•Clicked Add&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%2Fluhvjvxcjs6wbi1kgko2.jpeg" 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%2Fluhvjvxcjs6wbi1kgko2.jpeg" alt=" put necessary settings " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, only SSH/SFTP traffic on Port 22 is allowed inbound.&lt;br&gt;
No unnecessary open ports. No over-permissive rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Step 4: Associating the NSG with the Subnet
&lt;/h3&gt;

&lt;p&gt;Finally, I needed to enforce the rule.&lt;br&gt;
I went back to:&lt;br&gt;
•Virtual Network&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%2F3japdf03jainfl37sgxt.jpeg" 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%2F3japdf03jainfl37sgxt.jpeg" alt=" search virtual network " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Selected guided-project-vnet&lt;br&gt;
•Opened Subnets&lt;br&gt;
•Selected ftpSubnet&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%2Fpwy8ldpwsr47xh2quc98.jpeg" 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%2Fpwy8ldpwsr47xh2quc98.jpeg" alt="select the vnet " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Attached ftpNSG under the Security section&lt;br&gt;
•Saved the configuration&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%2F9ndk6vhejcz5pscisqsg.jpeg" 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%2F9ndk6vhejcz5pscisqsg.jpeg" alt="Save configuration " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the subnet is officially protected.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 The Outcome
&lt;/h3&gt;

&lt;p&gt;By the end of this task:&lt;/p&gt;

&lt;h5&gt;
  
  
  •A new subnet was created for SFTP traffic
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •A Network Security Group was deployed
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •Port 22 was securely configured
&lt;/h5&gt;

&lt;h5&gt;
  
  
  •The NSG was successfully associated with the subnet
&lt;/h5&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%2Fumgm1ko7o68v43t8p9xj.jpeg" 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%2Fumgm1ko7o68v43t8p9xj.jpeg" alt="Result" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Conclusion
&lt;/h3&gt;

&lt;p&gt;The environment is now more segmented, controlled, and secure.&lt;br&gt;
This is the kind of practical Azure management task that strengthens real-world cloud engineering skills  not just theory, but actual infrastructure design decisions.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>devops</category>
      <category>career</category>
    </item>
    <item>
      <title>📌 Part 1: Azure Project Setup - Resource Group, VNet, VM &amp; Storage</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Thu, 09 Apr 2026 06:45:52 +0000</pubDate>
      <link>https://forem.com/adaoraa/azure-project-setup-resource-group-vnet-vm-storage-1pk4</link>
      <guid>https://forem.com/adaoraa/azure-project-setup-resource-group-vnet-vm-storage-1pk4</guid>
      <description>&lt;h2&gt;
  
  
  📝OVERVIEW
&lt;/h2&gt;

&lt;p&gt;Before performing management tasks in Azure, it’s important to first build a structured cloud environment. In this part, I provisioned the foundational resources required for the project:&lt;br&gt;
•Resource Group&lt;br&gt;
•Virtual Network (VNet)&lt;br&gt;
•Virtual Machine (VM)&lt;br&gt;
•Storage Account&lt;/p&gt;

&lt;p&gt;This setup ensures proper organization, secure networking, scalable compute, and reliable storage before moving into advanced management operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 PROCEDURE
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ Create a Resource Group
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Purpose:
&lt;/h4&gt;

&lt;p&gt;This organize project resources for easy management and cleanup.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the Azure portal search bar, type 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%2Fanrecqids7lraieduu31.jpeg" 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%2Fanrecqids7lraieduu31.jpeg" alt="Resource Group " width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select Resource groups under Services.&lt;br&gt;
3.Select Create.&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%2Fjczhm1gv4pnken526oml.jpeg" 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%2Fjczhm1gv4pnken526oml.jpeg" alt="+ create " width="800" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Enter guided-project-rg as the Resource group name or any other unique name of your choice .&lt;br&gt;
5.Leave the default Region.&lt;br&gt;
6.Select Review + create → Create.&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%2Fbb1nrfgjzan4k9nlsfjn.jpeg" 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%2Fbb1nrfgjzan4k9nlsfjn.jpeg" alt="enter name" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Return to the Home page.&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%2Fd82nk464jo8f0e9tlz41.jpeg" 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%2Fd82nk464jo8f0e9tlz41.jpeg" alt="see resource group created " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣ Create a Virtual Network
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Purpose:
&lt;/h4&gt;

&lt;p&gt;This Provide network infrastructure for the virtual machine.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Search for Virtual networks in the Azure portal.&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%2Fiaxipp6xoxq27p5mgx91.jpeg" 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%2Fiaxipp6xoxq27p5mgx91.jpeg" alt="virtual network " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select Create.&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%2Fylezfn1d1fkhpg4l9s7x.jpeg" 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%2Fylezfn1d1fkhpg4l9s7x.jpeg" alt="+ create" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Confirm Subscription and Resource group (guided-project-rg).&lt;br&gt;
4.Enter guided-project-vnet as the Virtual network name.&lt;br&gt;
5.Select Review + create → 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%2Fqrxljl4wlfh3qtx3tol7.jpeg" 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%2Fqrxljl4wlfh3qtx3tol7.jpeg" alt="enter unique name " width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Wait for deployment to complete.&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%2Fecpoylmwswgijj3wfetd.jpeg" 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%2Fecpoylmwswgijj3wfetd.jpeg" alt="deployment complete " width="800" height="511"&gt;&lt;/a&gt;&lt;br&gt;
7.Return to Home.&lt;/p&gt;

&lt;h3&gt;
  
  
  3️⃣ Create a Virtual Machine
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Purpose:
&lt;/h4&gt;

&lt;p&gt;This Deploys a Linux-based virtual machine for compute resources.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Search for Virtual machines.&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%2F1x7jbs5yok0osc88zfz5.jpeg" 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%2F1x7jbs5yok0osc88zfz5.jpeg" alt="virtual machine " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select Create → Virtual machine.&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%2Fbpt9kg9jbtlymy04ebv6.jpeg" 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%2Fbpt9kg9jbtlymy04ebv6.jpeg" alt="+ create " width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select guided-project-rg as the Resource group or the new Resource group of your choice .&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%2Fst8zv0cwuhwmfqyatm52.jpeg" 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%2Fst8zv0cwuhwmfqyatm52.jpeg" alt="select resource group " width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Enter guided-project-vm as the VM name or any unique name of your choice .&lt;br&gt;
5.Choose an Ubuntu image (e.g., Ubuntu Server 24.04 LTS - x64 Gen2).&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%2F76nltj68hmbd5xmy16pp.jpeg" 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%2F76nltj68hmbd5xmy16pp.jpeg" alt="complete registration " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Under Administrator account:&lt;br&gt;
•Authentication type: Password&lt;br&gt;
•Username: guided-project-admin&lt;br&gt;
•Set and confirm password&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%2Fdrd6f4n65s9ujzek40qr.jpeg" 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%2Fdrd6f4n65s9ujzek40qr.jpeg" alt="password details " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Leave other settings as default.&lt;br&gt;
8.Select Review + create → Create.&lt;br&gt;
9.After deployment, return to Home.&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%2Fw9i0p3zfh4zelihl98az.jpeg" 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%2Fw9i0p3zfh4zelihl98az.jpeg" alt="deployment" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4️⃣ Create a Storage Account
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Purpose:
&lt;/h4&gt;

&lt;p&gt;This Provides cloud storage for project data.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Search for Storage accounts.&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%2F259p2mpt3vlzjae3iw3i.jpeg" 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%2F259p2mpt3vlzjae3iw3i.jpeg" alt="Search storage" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select + 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%2Fi7zer6jy4f9fdffm1t2t.jpeg" 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%2Fi7zer6jy4f9fdffm1t2t.jpeg" alt="+ create " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Confirm Subscription and Resource group (guided-project-rg).&lt;br&gt;
4.Enter a globally unique storage account name.&lt;br&gt;
5.Select Review + create → 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%2F9jq1gjs1gu6b7pvqh8kd.jpeg" 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%2F9jq1gjs1gu6b7pvqh8kd.jpeg" alt="complete registration " width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Wait for deployment to complete.&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%2Fa04s6g6rhybqal9qyypf.jpeg" 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%2Fa04s6g6rhybqal9qyypf.jpeg" alt="deployment complete " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Return to Home.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 RESULTS
&lt;/h2&gt;

&lt;p&gt;✔ Resource group created for organized management.&lt;br&gt;
✔ Virtual network deployed with default subnet.&lt;br&gt;
✔ Ubuntu virtual machine successfully provisioned.&lt;br&gt;
✔ Storage account created for data storage.&lt;br&gt;
✔ Environment ready for the next phase of the guided project.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>microsoft</category>
      <category>startup</category>
      <category>learning</category>
    </item>
    <item>
      <title>Creating an Amazon EC2 Instance</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Sat, 04 Apr 2026 01:57:29 +0000</pubDate>
      <link>https://forem.com/adaoraa/creating-an-amazon-ec2-instance-13n2</link>
      <guid>https://forem.com/adaoraa/creating-an-amazon-ec2-instance-13n2</guid>
      <description>&lt;h2&gt;
  
  
  💻 INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Amazon Elastic Compute Cloud (EC2) is a web service that provides resizable compute capacity in the cloud.It also lets you launch virtual servers in the cloud.It provides flexible computing resources to run applications, host websites, or perform tasks without physical hardware.&lt;br&gt;
This procedure shows how to create and access an EC2 instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 IMPLEMENTATION STEPS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How to Create an EC2 Instance
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🔗 Objective
&lt;/h4&gt;

&lt;p&gt;To launch and configure a virtual server using Amazon Elastic Compute Cloud (EC2) for running applications in the cloud.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚙️ Materials/Requirements
&lt;/h4&gt;

&lt;p&gt;•AWS account with appropriate permissions&lt;br&gt;
•Internet access&lt;br&gt;
•SSH client (for Linux) or RDP (for Windows)&lt;br&gt;
•Key pair for secure login&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Procedure
&lt;/h4&gt;

&lt;p&gt;1.Login to AWS&lt;br&gt;
•Open the AWS Management Console￼.&lt;br&gt;
•Navigate or search for EC2 under the “Compute” section and select.&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%2Fs6ar4ggx0ejg05gosq4e.jpeg" 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%2Fs6ar4ggx0ejg05gosq4e.jpeg" alt="Search EC2" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Launch an Instance&lt;br&gt;
•Click “Launch Instance”.&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%2Fbie9haqrl4da0rp9acfr.jpeg" 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%2Fbie9haqrl4da0rp9acfr.jpeg" alt="Launch instance " width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Give your instance a name for easy identification.&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%2Fpns748gvqery93kbhy9d.jpeg" 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%2Fpns748gvqery93kbhy9d.jpeg" alt="Instance name" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Select an Amazon Machine Image (AMI) (e.g., Amazon Linux 2, Ubuntu, Windows Server).&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%2Fot1hcb958v47aga0fn8b.jpeg" 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%2Fot1hcb958v47aga0fn8b.jpeg" alt="image" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select an existing key pair or create a new one.&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%2F80vb30c08s7qm5i93t6y.jpeg" 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%2F80vb30c08s7qm5i93t6y.jpeg" alt="new key pairs" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•If you are creating a key-pair ,give it a name (e.g., Name: Adaorakey)and create key.&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%2Fiyuv8wzdd74q70os2umi.jpeg" 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%2Fiyuv8wzdd74q70os2umi.jpeg" alt="name the keypair" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Click “Launch Instance” to start your EC2 instance.&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%2Fijz4b4usf5stbxvyk8mh.jpeg" 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%2Fijz4b4usf5stbxvyk8mh.jpeg" alt="Launch Instance" width="800" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Connect to Your Instance&lt;br&gt;
i.By clicking “connect to instance”(Browser SSH):&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%2Fha278o1t5gi4g5yohrfn.jpeg" 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%2Fha278o1t5gi4g5yohrfn.jpeg" alt="select instance" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ii.Then click “Connect”, (browser-based SSH).&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%2Fjnuntzq1qt52b9rht6r5.jpeg" 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%2Fjnuntzq1qt52b9rht6r5.jpeg" alt="click connect" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iii.A black terminal window will appear in your browser.&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%2Fb83vmad0hbfr70tsmkvl.jpeg" 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%2Fb83vmad0hbfr70tsmkvl.jpeg" alt="black window " width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iv.Once connected, type:&lt;br&gt;
“sudo su”&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%2Fsn4o7khl8xurv6o9xv5m.jpeg" 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%2Fsn4o7khl8xurv6o9xv5m.jpeg" alt="Type Sudo su" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•This switches you to the root user, giving full administrative privileges.&lt;/p&gt;

&lt;p&gt;V.You can now run commands and configure your instance as needed.&lt;/p&gt;

&lt;h4&gt;
  
  
  📝 Note:
&lt;/h4&gt;

&lt;p&gt;For Windows instances, you would still use RDP via the Connect button and your key pair.&lt;/p&gt;

&lt;h3&gt;
  
  
  👩‍💻 Results/Expected Outcome
&lt;/h3&gt;

&lt;p&gt;•A running EC2 instance visible in the EC2 dashboard.&lt;br&gt;
•Ability to securely connect to the instance via SSH or RDP.&lt;br&gt;
•Instance can host applications, web servers, or databases as configured.&lt;br&gt;
•Billing begins only while the instance is running (stop when not in use to save cost).&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Notes/Best Practices
&lt;/h3&gt;

&lt;p&gt;•Always use a secure key pair; never share your private key.&lt;br&gt;
•Tag instances for easy identification in large environments.&lt;br&gt;
•Stop or terminate instances when not needed to avoid unnecessary charges.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>discuss</category>
      <category>aws</category>
    </item>
    <item>
      <title>🔹Azure Compute Fundamentals: Creating and Managing a Virtual Machine</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Sat, 04 Apr 2026 00:16:11 +0000</pubDate>
      <link>https://forem.com/adaoraa/azure-compute-fundamentals-creating-and-managing-a-virtual-machine-1mie</link>
      <guid>https://forem.com/adaoraa/azure-compute-fundamentals-creating-and-managing-a-virtual-machine-1mie</guid>
      <description>&lt;h2&gt;
  
  
  🖥️ Introduction
&lt;/h2&gt;

&lt;p&gt;Creating a Virtual Machine (VM) in Azure allows organizations to deploy scalable,on-demand computing resources in the cloud without investing in physical hardware. Virtual machines can host applications,run development and test environments,or support enterprise workloads securely and efficiently.&lt;br&gt;
In this guide, we will walk you through how to provision and configure an Azure Virtual Machine step-by-step. &lt;/p&gt;

&lt;h2&gt;
  
  
  👩‍💻Implementation Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Create a Virtual Machine in Azure
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🎯 Objective
&lt;/h4&gt;

&lt;p&gt;Provision and configure an Azure Virtual Machine (VM) to host applications or perform testing in a secure cloud environment.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚙️ Procedure
&lt;/h4&gt;

&lt;h5&gt;
  
  
  1️⃣ Create the Virtual Machine
&lt;/h5&gt;

&lt;p&gt;1.Sign in to the Azure portal.&lt;br&gt;
2i.Search for Virtual machines.&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%2Ft88ki93iwuwuyj7wtn3g.jpeg" 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%2Ft88ki93iwuwuyj7wtn3g.jpeg" alt="Virtual machine" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2ii.Select + 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%2F2loyqp21d2h9wi8rlks9.jpeg" 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%2F2loyqp21d2h9wi8rlks9.jpeg" alt="+ create" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2iii.Select Azure virtual machine.&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%2Feyy3wm6gpr3k3j9270h1.jpeg" 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%2Feyy3wm6gpr3k3j9270h1.jpeg" alt="virtual machine " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select or create a new 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%2Fy6g6y1o66jchpi06qv4c.jpeg" 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%2Fy6g6y1o66jchpi06qv4c.jpeg" alt="Resource Group" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Provide a Virtual machine name.&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%2F5q1pa3wu35voz2afqje2.jpeg" 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%2F5q1pa3wu35voz2afqje2.jpeg" alt="VM name " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5i.Choose a Region.&lt;br&gt;
5ii.Select Availability.&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%2Fx8uj6jiddhiwspnwchpi.jpeg" 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%2Fx8uj6jiddhiwspnwchpi.jpeg" alt="availability options" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5iii.Select Zone options&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%2F89iy9o7h7z2tuq7dbjcq.jpeg" 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%2F89iy9o7h7z2tuq7dbjcq.jpeg" alt="Zone options " width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6i.Select Security type (Standard)&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%2F0tm55mwfmwbazj1l5nbw.jpeg" 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%2F0tm55mwfmwbazj1l5nbw.jpeg" alt="Security type " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6ii.Select an Image (e.g., Windows Server 2022 or Ubuntu Server).&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%2Ffhbxin57m4zkjciym5mr.jpeg" 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%2Ffhbxin57m4zkjciym5mr.jpeg" alt="Select image " width="800" height="416"&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%2Ftnfrepcsb4kt1m7pbeam.jpeg" 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%2Ftnfrepcsb4kt1m7pbeam.jpeg" alt="Select image " width="800" height="421"&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%2Fbdyydg49svn8fxqh6i7a.jpeg" 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%2Fbdyydg49svn8fxqh6i7a.jpeg" alt="Select image " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Choose a Size (e.g., B1s for testing).&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%2Feuodcnuc8pi6bb7q5ihg.jpeg" 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%2Feuodcnuc8pi6bb7q5ihg.jpeg" alt="Choose size " width="800" height="419"&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%2F1m2wy9b4c2w3xmdmkpkz.jpeg" 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%2F1m2wy9b4c2w3xmdmkpkz.jpeg" alt="Choose size " width="800" height="426"&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%2Fbaex8295ikg7c82a90xn.jpeg" 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%2Fbaex8295ikg7c82a90xn.jpeg" alt="Choose size" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Configure Administrator account (username &amp;amp; password or SSH key).&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%2F36pqhs8m4rv7kfe4n4u7.jpeg" 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%2F36pqhs8m4rv7kfe4n4u7.jpeg" alt="username&amp;amp;password" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Under Inbound port rules, allow:&lt;br&gt;
•RDP (3389) which enables secure remote desktop access for administrators.&lt;br&gt;
•HTTP (80) which allows public web traffic to access the hosted application.&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%2Fclgb18t3y6u9m4dfapn3.jpeg" 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%2Fclgb18t3y6u9m4dfapn3.jpeg" alt="port rules" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.Enable licensing &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%2Fcfmcqpe5e7av1h58y9oc.jpeg" 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%2Fcfmcqpe5e7av1h58y9oc.jpeg" alt="Licensing" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;11.Navigate to the Management tab:&lt;br&gt;
•Disable Boot diagnostics (if not required).&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%2F3olcxtq1fdlff0ncsgdc.jpeg" 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%2F3olcxtq1fdlff0ncsgdc.jpeg" alt="boot diagnostics" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;11.Navigate to the Tags tab.&lt;br&gt;
Add relevant tags such as:&lt;br&gt;
•Department = Security &lt;br&gt;
•Staff= Kelvin &lt;br&gt;
•Purpose = Staff Records&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%2Fbthda4bw8uf6tqn3ii8c.jpeg" 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%2Fbthda4bw8uf6tqn3ii8c.jpeg" alt="Tags" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  📝 Note:
&lt;/h6&gt;

&lt;p&gt;Tags help with organization, cost tracking, and resource management.&lt;/p&gt;

&lt;p&gt;12i.Select Review + Create → 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%2Fwhmt8hvcct9p6gjy8bhr.jpeg" 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%2Fwhmt8hvcct9p6gjy8bhr.jpeg" alt="Review + create" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;12ii.Wait for deployment to complete, then select Go to resource.&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%2Fdzwg3h9f8c2383tfqtkg.jpeg" 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%2Fdzwg3h9f8c2383tfqtkg.jpeg" alt="Go to resource" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2️⃣ Configure Public IP Timeout Settings
&lt;/h4&gt;

&lt;p&gt;1.On the VM Overview page, select the Primary NIC.&lt;br&gt;
2.Click on the associated Public IP address.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F300oul5vs2jeiiny280p.jpeg" 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%2F300oul5vs2jeiiny280p.jpeg" alt="Primary NIC" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.In the Settings section, select Configuration.&lt;br&gt;
4.Increase the Idle timeout (minutes) value to your desired duration.&lt;br&gt;
5.Select Save to apply the 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%2F48wqx6j1xudf0x2kxv1f.jpeg" 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%2F48wqx6j1xudf0x2kxv1f.jpeg" alt="increase idle timeout" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  📝 Note:
&lt;/h6&gt;

&lt;p&gt;This ensures longer remote sessions are not disconnected due to inactivity.&lt;/p&gt;

&lt;h4&gt;
  
  
  3️⃣ Connect to the Virtual Machine
&lt;/h4&gt;

&lt;h5&gt;
  
  
  For Windows VM (RDP):
&lt;/h5&gt;

&lt;p&gt;1.Select Connect from the virtual machine overview page → RDP.&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%2Fuw5bijn4prziyj5bc8f9.jpeg" 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%2Fuw5bijn4prziyj5bc8f9.jpeg" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Download the RDP file, (on this page you can also reset password and check VM access).&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%2Fg4x5n70np3cd44v6i9f2.jpeg" 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%2Fg4x5n70np3cd44v6i9f2.jpeg" alt="Download RDP file " width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Open it and enter your admin credentials.&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%2Fg75uojuy5itr3ry7xnul.jpeg" 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%2Fg75uojuy5itr3ry7xnul.jpeg" alt="Credentials " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  For Linux VM (SSH):
&lt;/h5&gt;

&lt;p&gt;1.Select Connect → SSH.&lt;br&gt;
2.Use the provided SSH command in your terminal.&lt;/p&gt;

&lt;h4&gt;
  
  
  4️⃣ Verify the VM is Running
&lt;/h4&gt;

&lt;p&gt;1.Check the VM Status — it should show Running.&lt;br&gt;
2.Confirm you can log in successfully.&lt;br&gt;
3.Optionally install a web server or test application.&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%2Fs55sa8mi700a5gb4trfz.jpeg" 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%2Fs55sa8mi700a5gb4trfz.jpeg" alt="Vm downloaded " width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  🧪 Testing
&lt;/h5&gt;

&lt;p&gt;•Confirm remote access works (RDP or SSH).&lt;br&gt;
•Install a simple application (e.g., IIS or Nginx).&lt;br&gt;
•Access the public IP in a browser (if HTTP port 80 is enabled).&lt;/p&gt;

&lt;h5&gt;
  
  
  ✅ Results
&lt;/h5&gt;

&lt;p&gt;•A successfully deployed Azure Virtual Machine&lt;br&gt;
•Remote access configured&lt;br&gt;
•Network connectivity verified&lt;br&gt;
•VM ready for application deployment&lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Key Takeaways
&lt;/h4&gt;

&lt;p&gt;•Azure VMs provide scalable, on-demand compute resources.&lt;br&gt;
•Choose the right OS, size, and storage for your workload.&lt;br&gt;
•SSH keys or strong passwords improve authentication security.&lt;br&gt;
•Costs accrue only while the VM is running—stop or deallocate when idle.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>azure</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>PROVIDE STORAGE FOR A NEW COMPANY APP</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Fri, 03 Apr 2026 22:16:22 +0000</pubDate>
      <link>https://forem.com/adaoraa/provide-storage-for-a-new-company-app-2eo7</link>
      <guid>https://forem.com/adaoraa/provide-storage-for-a-new-company-app-2eo7</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Providing secure and scalable storage for a new company application is a foundational step in cloud architecture. A properly configured Azure Storage account ensures high availability, data protection, controlled access, and compliance with security best practices. In this exercise, we deploy and configure storage resources that support the application while maintaining strong security and governance standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  IMPLEMENTATION STEPS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.Create the Storage Account with Infrastructure Encryption
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Provision a secure storage account for a web application with infrastructure-level encryption enabled.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1i.Go to Storage accounts &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%2Fjh9oz7ryfb243ufgq7z0.jpeg" 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%2Fjh9oz7ryfb243ufgq7z0.jpeg" alt="Storage account" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1ii.→click on + Create.&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%2Fctu2rx3ckraq36mwryyv.jpeg" 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%2Fctu2rx3ckraq36mwryyv.jpeg" alt="+ create" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Create a new Resource group.&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%2F5cacyjus2p4wi0dwyoja.jpeg" 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%2F5cacyjus2p4wi0dwyoja.jpeg" alt="Create new RG" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Provide a globally unique Storage account name.&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%2Fxj74e7b6gzewhi5xz5tu.jpeg" 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%2Fxj74e7b6gzewhi5xz5tu.jpeg" alt="storage name " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Navigate to the Encryption &lt;br&gt;
5.Enable Infrastructure encryption (note: this cannot be changed after creation).&lt;br&gt;
6.Select Review + Create → Create.&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%2F214ybt4alxxxlzv5pn2o.jpeg" 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%2F214ybt4alxxxlzv5pn2o.jpeg" alt="encryption " width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.After deployment, select Go to resource.&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%2Fb61vnmfep136zk8thqjd.jpeg" 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%2Fb61vnmfep136zk8thqjd.jpeg" alt="Go to resource " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Create and Configure a Managed Identity
&lt;/h3&gt;

&lt;h4&gt;
  
  
  2a.Create a User-Assigned Managed Identity
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Provide secure, passwordless authentication for the web app.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1i.Search for Managed identities &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%2Fcn5ieue270bzy9v2rlz1.jpeg" 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%2Fcn5ieue270bzy9v2rlz1.jpeg" alt="Managed Identities " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1ii. → Click +Create.&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%2F5ljdnm0jvihzx11s98zl.jpeg" 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%2F5ljdnm0jvihzx11s98zl.jpeg" alt="+ create" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select your resource group.&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%2Fnw017dubotnaudxid1t5.jpeg" 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%2Fnw017dubotnaudxid1t5.jpeg" alt="Resource group " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Provide a name for the manage identity.&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%2Fz3bua2ex0yfcdi8iq5gj.jpeg" 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%2Fz3bua2ex0yfcdi8iq5gj.jpeg" alt="unique MI name " width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Select Review + Create → Create.&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%2Fhb97xjic6kaem05fmvf4.jpeg" 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%2Fhb97xjic6kaem05fmvf4.jpeg" alt="Review and Create " width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2b.Assign Storage Permissions to the Managed Identity
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Grant the identity read-only access to blobs and containers.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1.Open the Storage account.&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%2Fn7thi9tacbxv8zls05w4.jpeg" 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%2Fn7thi9tacbxv8zls05w4.jpeg" alt="Storage account " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Go to Access Control (IAM).&lt;br&gt;
3.Select Add role assignment.&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%2Fajclnq2lvb4uk37uh8ax.jpeg" 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%2Fajclnq2lvb4uk37uh8ax.jpeg" alt="Add role " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Choose the role Storage Blob Data Reader.&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%2Fsvhgzy3ekievnvjonsnz.jpeg" 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%2Fsvhgzy3ekievnvjonsnz.jpeg" alt="choose a role " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Under Members, select Managed identity.&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%2Fjj58z7dr9czpzad5dpxy.jpeg" 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%2Fjj58z7dr9czpzad5dpxy.jpeg" alt="Select Managed identity " width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Choose User-assigned managed identity.&lt;br&gt;
7.Select your managed identity.&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%2Flqw77o4e6mymhvo65lly.jpeg" 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%2Flqw77o4e6mymhvo65lly.jpeg" alt="Choose user assigned MI" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Click Review + assign.&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%2F587jupmgw0s0ix1j86n0.jpeg" 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%2F587jupmgw0s0ix1j86n0.jpeg" alt="Review +assign" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Result:
&lt;/h4&gt;

&lt;p&gt;The managed identity can securely read and list blobs without using storage keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Secure Access with Key Vault and Customer-Managed Key
&lt;/h3&gt;

&lt;h4&gt;
  
  
  3a.Assign Key Vault Administrator Role
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Grant your user account permissions to manage keys.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1i.Go to 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%2Fz7w6kt0gsdm6636kka68.jpeg" 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%2Fz7w6kt0gsdm6636kka68.jpeg" alt="Resource Group" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1ii. Navigate to → Access Control (IAM).&lt;br&gt;
2.Select Add role assignment.&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%2Ff411c76yz60uqanrvp9b.jpeg" 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%2Ff411c76yz60uqanrvp9b.jpeg" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Assign the Key Vault Administrator role to your user account.&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%2Fitorc2fphqczktl6dwf7.jpeg" 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%2Fitorc2fphqczktl6dwf7.jpeg" alt="Keyvault Administrator role" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Select Review + assign.&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%2Fhxgr8sfk6ydwf7jh0phu.jpeg" 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%2Fhxgr8sfk6ydwf7jh0phu.jpeg" alt="Review + assign " width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3b.Create a Key Vault
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Store encryption keys securely.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1i.Search for Key vaults.&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%2Fwkl5u1p0ikcs5sy4kv5g.jpeg" 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%2Fwkl5u1p0ikcs5sy4kv5g.jpeg" alt="Key vaults " width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1ii. Select → + Create.&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%2Fznnkw0iebe441ogjound.jpeg" 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%2Fznnkw0iebe441ogjound.jpeg" alt="+ Create" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select your resource group.&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%2Frcw2m1dsot9i2ceu251y.jpeg" 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%2Frcw2m1dsot9i2ceu251y.jpeg" alt="Resource group " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Provide a globally unique name.&lt;br&gt;
4.Ensure Azure role-based access control is selected.&lt;br&gt;
5.Select Review + Create → Create.&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%2Fv21acmcz2qd3nul0eslf.jpeg" 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%2Fv21acmcz2qd3nul0eslf.jpeg" alt="unique name and review+create" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.After deployment, verify Soft-delete and Purge protection are enabled.&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%2F17y7b7n1bbx39bbejjdd.jpeg" 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%2F17y7b7n1bbx39bbejjdd.jpeg" alt="create + review " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3c.Create a Customer-Managed Key
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Generate a key to control storage encryption.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the key vault, select Keys → Generate/Import.&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%2F9ay0ago1e4bn3h23un8c.jpeg" 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%2F9ay0ago1e4bn3h23un8c.jpeg" alt="Generate/import keys" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Provide a name.&lt;br&gt;
3.Accept defaults.&lt;br&gt;
4.Select Create.&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%2Fhhn6rt2v7nawu07yckhn.jpeg" 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%2Fhhn6rt2v7nawu07yckhn.jpeg" alt="create key vault " width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.Configure Storage Account to Use Customer-Managed Key
&lt;/h3&gt;

&lt;h4&gt;
  
  
  4a.Assign Crypto Role to Managed Identity
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Allow the managed identity to access the encryption key.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1i.Go to Resource group.&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%2F8g86s3dmhu15if3qd74j.jpeg" 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%2F8g86s3dmhu15if3qd74j.jpeg" alt="Resource group" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1ii.  Select → Access Control (IAM).&lt;br&gt;
2.Select Add role assignment.&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%2Fsoeqx5ln680yzhn5d5j8.jpeg" 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%2Fsoeqx5ln680yzhn5d5j8.jpeg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Choose Key Vault Crypto Service Encryption User.&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%2F8szh0n8pchpe35k93437.jpeg" 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%2F8szh0n8pchpe35k93437.jpeg" alt="Give a role " width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Select Managed identity → User-assigned.&lt;br&gt;
5.Choose your managed identity.&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%2Fpemxtkmt72b2e0oa1bkv.jpeg" 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%2Fpemxtkmt72b2e0oa1bkv.jpeg" alt="select members " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Select Review + assign.&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%2Fjd4nd0ojeelel9xomrmf.jpeg" 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%2Fjd4nd0ojeelel9xomrmf.jpeg" alt="Review + assign " width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4b. Enable Customer-Managed Keys on Storage Account
&lt;/h4&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Configure storage to use the Key Vault key for encryption.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1.Open the Storage account.&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%2Fj7gmlad0gj0zbdqo32fv.jpeg" 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%2Fj7gmlad0gj0zbdqo32fv.jpeg" alt="Storage account" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Navigate to Security + networking → Encryption.&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%2Farpg4q8zowujqwb2r1g5.jpeg" 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%2Farpg4q8zowujqwb2r1g5.jpeg" alt="Encryption" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select Customer-managed keys.&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%2Fswvlosx57q83fnk19u09.jpeg" 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%2Fswvlosx57q83fnk19u09.jpeg" alt="customer managed keys " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Choose your Key vault and key.&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%2F7uowa14mfkw07snl5gkw.jpeg" 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%2F7uowa14mfkw07snl5gkw.jpeg" alt="Key and key vault" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Set Identity type to User-assigned.&lt;br&gt;
6.Select your managed identity.&lt;br&gt;
7.Click Save.&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%2F8u855ijvcne22za5nl8f.jpeg" 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%2F8u855ijvcne22za5nl8f.jpeg" alt="Identity" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Result:
&lt;/h4&gt;

&lt;p&gt;The storage account now uses a customer-managed key stored in Azure Key Vault.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.Configure Time-Based Retention Policy (Immutable Storage)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Prevent modification or deletion of files for a fixed retention period.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1.Go to Storage account → Containers.&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%2Fq8tpt3sbmg1x59cl3mv4.jpeg" 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%2Fq8tpt3sbmg1x59cl3mv4.jpeg" alt="containers" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Create a container named hold.&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%2Fudy3h2is2w14k64rk6ky.jpeg" 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%2Fudy3h2is2w14k64rk6ky.jpeg" alt="name container " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Upload a file.&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%2F0at7o7z0knoo9ggliwh7.jpeg" 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%2F0at7o7z0knoo9ggliwh7.jpeg" alt="upload file" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Go to Settings → Access policy&lt;br&gt;
5.Under Immutable blob storage, select + Add policy.&lt;br&gt;
6.Select Time-based retention&lt;br&gt;
7.Set retention period to 5 days.&lt;br&gt;
8.Save 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%2Foocepeuw5htq12o2bm61.jpeg" 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%2Foocepeuw5htq12o2bm61.jpeg" alt="Add policy" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Attempt to delete the file.&lt;br&gt;
10.Confirm deletion fails due to policy.&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%2Fy2r7n9sl8xuz2p7gv65d.jpeg" 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%2Fy2r7n9sl8xuz2p7gv65d.jpeg" alt="confirm deletion" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Result:
&lt;/h4&gt;

&lt;p&gt;Files cannot be modified or deleted until the retention period expires.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Configure an Encryption Scope
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🎯 Objective:
&lt;/h4&gt;

&lt;p&gt;Create an encryption scope with infrastructure encryption enabled.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Steps:
&lt;/h4&gt;

&lt;p&gt;1.Go to Storage account → Security + networking → Encryption.&lt;br&gt;
2.Select the Encryption scopes tab.&lt;br&gt;
3.Click Add.&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%2Fdoq0yz0ki096vjg6fsts.jpeg" 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%2Fdoq0yz0ki096vjg6fsts.jpeg" alt=" encryption tab" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Provide a name.&lt;br&gt;
5.Set:&lt;br&gt;
•Encryption type: Microsoft-managed key&lt;br&gt;
•Infrastructure encryption: Enable&lt;br&gt;
6.Create the encryption scope.&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%2F675ssqvoe7v7jfpmma2z.jpeg" 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%2F675ssqvoe7v7jfpmma2z.jpeg" alt="create Encryption scope " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Create a new container.&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%2Flza76cntlgmq37kdvsrm.jpeg" 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%2Flza76cntlgmq37kdvsrm.jpeg" alt="new container " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Under Advanced, select the encryption scope.&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%2Fwjtkdjv9n0j4e2c98820.jpeg" 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%2Fwjtkdjv9n0j4e2c98820.jpeg" alt="encryption scope" width="800" height="414"&gt;&lt;/a&gt;&lt;br&gt;
9.Apply it to all blobs in the container.&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%2Foii22y3ajmnu880diuzq.jpeg" 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%2Foii22y3ajmnu880diuzq.jpeg" alt="apply scope to all blogs " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Result:
&lt;/h4&gt;

&lt;p&gt;Blobs within the container are encrypted using the defined encryption scope with infrastructure encryption enabled.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Key Outcomes
&lt;/h3&gt;

&lt;p&gt;✅ Storage account secured with infrastructure encryption.&lt;br&gt;
✅ Managed identity configured for secure authentication.&lt;br&gt;
✅ Customer-managed encryption key stored in Azure Key Vault.&lt;br&gt;
✅ Immutable storage enforced with time-based retention.&lt;br&gt;
✅ Encryption scope created for granular encryption control.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>microsoft</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>PROVIDE SHARED FILE STORAGE FOR COMPANY OFFICES</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Wed, 01 Apr 2026 11:14:07 +0000</pubDate>
      <link>https://forem.com/adaoraa/provide-shared-file-storage-for-company-offices-3b84</link>
      <guid>https://forem.com/adaoraa/provide-shared-file-storage-for-company-offices-3b84</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Providing shared file storage for company offices is essential for collaboration, security, and operational efficiency. A centralized file storage solution ensures teams can securely access, manage, and share documents across departments while maintaining data protection standards. By implementing high availability, snapshots for recovery, and network access restrictions, organizations can protect critical business files, prevent accidental data loss, and control who can access sensitive information.&lt;/p&gt;

&lt;h2&gt;
  
  
  IMPLEMENTATION STEPS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.Create a Storage Account for Azure Files
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Provision a premium storage account optimized for Azure File Shares with high availability.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the Azure portal, go to Storage accounts →&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%2Fo48drab22au2j6bq3e0b.jpeg" 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%2Fo48drab22au2j6bq3e0b.jpeg" alt="Storage account " width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click + Create.&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%2Fkveuk31u0o6lnzovxfm5.jpeg" 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%2Fkveuk31u0o6lnzovxfm5.jpeg" alt="+ Create" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select Create new Resource group, provide a name, and click OK.&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%2Fewr1bjz89ddjutd833wc.jpeg" 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%2Fewr1bjz89ddjutd833wc.jpeg" alt="Create new" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Provide a globally unique Storage account name.&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%2Frfk3d1muddv0w9id1wyj.jpeg" 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%2Frfk3d1muddv0w9id1wyj.jpeg" alt="Storage account name" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Set:&lt;br&gt;
•Performance: Premium&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%2Fyp58rsb79b9dp3q9ql9q.jpeg" 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%2Fyp58rsb79b9dp3q9ql9q.jpeg" alt="Premium Performance " width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Premium account type: File shares&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%2Feoma37dyprv9or7z4wrf.jpeg" 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%2Feoma37dyprv9or7z4wrf.jpeg" alt="File shares" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•Redundancy: Zone-redundant storage (ZRS)&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%2Ffslkh7ru6rfqm1z5jd30.jpeg" 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%2Ffslkh7ru6rfqm1z5jd30.jpeg" alt="Redundancy" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Select Review + Create, then Create.&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%2Fihc57ejqvsztr0kqgog0.jpeg" 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%2Fihc57ejqvsztr0kqgog0.jpeg" alt="Review + Create" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.After deployment, select Go to resource.&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%2Fl4xjl20ef3uro957v070.jpeg" 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%2Fl4xjl20ef3uro957v070.jpeg" alt="Go to resource" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Create and Configure a File Share with Directory
&lt;/h3&gt;

&lt;h4&gt;
  
  
  2a.Create a File Share
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Create a shared file location for corporate office use.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the storage account, go to Data storage → File shares.&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%2F7kmkdhp3yzfq9xozmg2d.jpeg" 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%2F7kmkdhp3yzfq9xozmg2d.jpeg" alt="Data storage " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select + File share.&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%2Ffisu7fnppskrhuuxr28x.jpeg" 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%2Ffisu7fnppskrhuuxr28x.jpeg" alt="add file share" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Provide a Name.&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%2Fo2w1xudsrnkzth3n0f2n.jpeg" 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%2Fo2w1xudsrnkzth3n0f2n.jpeg" alt="Give a name " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Leave other settings as default.&lt;br&gt;
5.Select Create.&lt;/p&gt;

&lt;h4&gt;
  
  
  2b.Create a Directory and Upload a File
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Organize files within the share and prepare for snapshot testing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Open the created file share.&lt;br&gt;
2.Select + Add directory.&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%2F37ls6we9i4ndg9r6vaqi.jpeg" 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%2F37ls6we9i4ndg9r6vaqi.jpeg" alt="Add directory " width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Name the directory finance.&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%2Fq4gbqmrpalsg0zm8xmnn.jpeg" 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%2Fq4gbqmrpalsg0zm8xmnn.jpeg" alt="directory finance " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Select Browse, then open the finance directory.&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%2Fyff2jy3q3obish138a56.jpeg" 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%2Fyff2jy3q3obish138a56.jpeg" alt="opening the finance directory" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Upload a test file.&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%2F795139mk607u5h1lsrgh.jpeg" 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%2F795139mk607u5h1lsrgh.jpeg" alt="file upload " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Result:
&lt;/h4&gt;

&lt;p&gt;•The finance directory contains the uploaded file.&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%2Ft7539u05h9nmndobn8ml.jpeg" 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%2Ft7539u05h9nmndobn8ml.jpeg" alt="image is present" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;•File structure is ready for snapshot protection.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Configure and Test Snapshots
&lt;/h3&gt;

&lt;h4&gt;
  
  
  3a.Create a Snapshot
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Protect files from accidental deletion using file share snapshots.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Open the file share.&lt;br&gt;
2.Go to Operations → Snapshots.&lt;br&gt;
3.Select + Add snapshot.&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%2F9p5tuu9p9ukxyak4tgpr.jpeg" 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%2F9p5tuu9p9ukxyak4tgpr.jpeg" alt="add snapshots" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Optionally add a comment.&lt;br&gt;
5.Select OK.&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%2F944yq4eenpp829bykbxb.jpeg" 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%2F944yq4eenpp829bykbxb.jpeg" alt="Select OK " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6ii.Open the snapshot and verify the finance directory.&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%2Fl37lfsnnvahw0fy3zxcp.jpeg" 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%2Fl37lfsnnvahw0fy3zxcp.jpeg" alt="file is present " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6i.Confirm if file exist.&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%2F7o35f2bk5o1673lygeqi.jpeg" 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%2F7o35f2bk5o1673lygeqi.jpeg" alt="Finance Directory " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3b.Restore a File from Snapshot
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective: Practice restoring deleted files using snapshots.
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Return to the live file share.&lt;br&gt;
2.Navigate to the finance directory.&lt;br&gt;
3.Select the uploaded file → Delete → Confirm.&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%2F92qgsasz4z7bgieoivl6.jpeg" 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%2F92qgsasz4z7bgieoivl6.jpeg" alt="test delete" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Go to Snapshots.&lt;br&gt;
5.Select the snapshot.&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%2Fn60y9jf6et26c6a9l8t1.jpeg" 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%2Fn60y9jf6et26c6a9l8t1.jpeg" alt="select snapshots" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Locate the deleted file.&lt;br&gt;
7.Select Restore.&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%2Fxkcx6ddt0jdpv1vzrl65.jpeg" 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%2Fxkcx6ddt0jdpv1vzrl65.jpeg" alt="Restore file " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Provide a new file name.&lt;br&gt;
9.Confirm the restored file appears in the directory.&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%2Fmfpjj5ljfq8fffozepwu.jpeg" 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%2Fmfpjj5ljfq8fffozepwu.jpeg" alt="Confirm Restore " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Result:
&lt;/h4&gt;

&lt;p&gt;•File successfully restored from snapshot.&lt;br&gt;
•This demonstrates recovery capability.&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%2Fta64mxqshaokzv0vggq5.jpeg" 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%2Fta64mxqshaokzv0vggq5.jpeg" alt="Image confirmation " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.Restrict Storage Access to a Virtual Network
&lt;/h3&gt;

&lt;h4&gt;
  
  
  4a.Create a Virtual Network and Configure Service Endpoint
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Prepare a virtual network to restrict storage access.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Search for and select Virtual networks &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%2F6sv1tqj7jmbailc8bkzh.jpeg" 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%2F6sv1tqj7jmbailc8bkzh.jpeg" alt="Virtual networks " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ click + Create.&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%2Fkg6avw3pl9onlu6bozio.jpeg" 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%2Fkg6avw3pl9onlu6bozio.jpeg" alt="+ create " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select your resource group and provide a Virtual network name.&lt;br&gt;
3.Accept defaults → Review + Create&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%2Frz799xjbqcdq9wbrjlev.jpeg" 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%2Frz799xjbqcdq9wbrjlev.jpeg" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Create.&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%2Fjgu78t548jgiy6vicoaw.jpeg" 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%2Fjgu78t548jgiy6vicoaw.jpeg" alt="click create " width="800" height="549"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.After deployment, select Go to resource.&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%2Fvcwttlazltfcfsp2n766.jpeg" 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%2Fvcwttlazltfcfsp2n766.jpeg" alt="Go to resource" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Go to Settings → Subnets.&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%2F55a4eh7deb2pkcih1i5x.jpeg" 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%2F55a4eh7deb2pkcih1i5x.jpeg" alt="Subnets " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Select the default subnet.&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%2Fzn78jgcg83599qleiso6.jpeg" 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%2Fzn78jgcg83599qleiso6.jpeg" alt="Default subnet " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Under Service endpoints, select Microsoft.Storage.&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%2F8esznsuwp7vl2kken1re.jpeg" 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%2F8esznsuwp7vl2kken1re.jpeg" alt="Edit services " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Click Save.&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%2F06a8g5gobmx98x394l2z.jpeg" 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%2F06a8g5gobmx98x394l2z.jpeg" alt="Save Changes " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4b.Restrict Storage Account to Selected Virtual Network
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Ensure the storage account is only accessible from the configured virtual network.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Return to the storage account.&lt;br&gt;
2.Go to Security + networking → Networking.&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%2Fy2jyiq96a42r32n06xp3.jpeg" 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%2Fy2jyiq96a42r32n06xp3.jpeg" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Change Public network access to:&lt;br&gt;
•Enabled from selected virtual networks and IP addresses&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%2Fcqlxcr3pn418piu6u603.jpeg" 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%2Fcqlxcr3pn418piu6u603.jpeg" alt="Change public network access " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Under Virtual networks, select Add existing virtual network.&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%2Fg5exj4duorzcaaebs6nt.jpeg" 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%2Fg5exj4duorzcaaebs6nt.jpeg" alt="Add existing virtual network " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Choose your virtual network and subnet.&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%2Fqklurasswudb7ibtfy0n.jpeg" 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%2Fqklurasswudb7ibtfy0n.jpeg" alt="Choose Vnet" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Click Add, then Save.&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%2F5pys50s296eqf3bnt7y5.jpeg" 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%2F5pys50s296eqf3bnt7y5.jpeg" alt="save changes" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing Network Restriction:
&lt;/h4&gt;

&lt;p&gt;1.Open Storage browser.&lt;br&gt;
2.Attempt to access the file share.&lt;br&gt;
3.Confirm you receive the message:&lt;br&gt;
•Not authorized to perform this operation&lt;/p&gt;

&lt;h4&gt;
  
  
  Result:
&lt;/h4&gt;

&lt;p&gt;•Storage account is now restricted to the specified virtual network.&lt;br&gt;
•Access from outside the VNet is blocked.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Outcomes
&lt;/h3&gt;

&lt;p&gt;•Premium Azure File storage account deployed with Zone redundancy.&lt;br&gt;
•File share and directory created for structured storage.&lt;br&gt;
•Snapshots configured to protect against accidental deletion.&lt;br&gt;
•Files successfully restored from snapshot.&lt;br&gt;
•Storage account access restricted to a specific virtual network.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>microsoft</category>
      <category>cloudnative</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Provide private storage for internal company documents</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Sun, 29 Mar 2026 13:21:47 +0000</pubDate>
      <link>https://forem.com/adaoraa/provide-private-storage-for-internal-company-documents-m04</link>
      <guid>https://forem.com/adaoraa/provide-private-storage-for-internal-company-documents-m04</guid>
      <description>&lt;h2&gt;
  
  
  The Importance of Private Storage in Organizations
&lt;/h2&gt;

&lt;p&gt;Providing private storage for internal company documents in an organization is critical for security, compliance, and business continuity. Here’s why it matters:&lt;br&gt;
1️⃣ Protection of Sensitive Information&lt;br&gt;
2️⃣ Data Security&lt;br&gt;
3️⃣ Access Control&lt;br&gt;
4️⃣ Regulatory Compliance&lt;br&gt;
5️⃣ Data Integrity&lt;br&gt;
6️⃣ Business Continuity&lt;br&gt;
7️⃣ Protecting Company Reputation&lt;/p&gt;

&lt;h2&gt;
  
  
  PROCEDURE
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a Storage Account with High Availability
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Provision secure storage for internal company documents with geo-redundant replication to protect against regional outages.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the Azure portal, go to Storage accounts &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%2Fj07r1pr3gpdkh0u4fmyu.jpeg" 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%2Fj07r1pr3gpdkh0u4fmyu.jpeg" alt="Storage account " width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.select + Create.&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%2F5x3cy2pb735ipeuc02qn.jpeg" 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%2F5x3cy2pb735ipeuc02qn.jpeg" alt="+ Create" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
3.Select an existing Resource group.&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%2Fajjorjo0b9i8eiraidwf.jpeg" 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%2Fajjorjo0b9i8eiraidwf.jpeg" alt="Resource Group " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Set the storage account name to private (must be globally unique).&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%2Fnk740zptl8oq5bo8mrh0.jpeg" 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%2Fnk740zptl8oq5bo8mrh0.jpeg" alt="Storage Account Name" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Select Review + Create, then Create.&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%2Fwbozzrjai80xk7zxwvgn.jpeg" 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%2Fwbozzrjai80xk7zxwvgn.jpeg" alt="Review + Create" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.After deployment, select Go to resource.&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%2Fl1k1rcqc4dzii7cnv06a.jpeg" 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%2Fl1k1rcqc4dzii7cnv06a.jpeg" alt="Go to resource " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Configure Redundancy:
&lt;/h4&gt;

&lt;p&gt;1.In the storage account, go to Data management → Redundancy.&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%2F3i4wbnpbybgyd3y5qckk.jpeg" 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%2F3i4wbnpbybgyd3y5qckk.jpeg" alt="Redundancy " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select Geo-redundant storage (GRS).&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%2Fmnl169qfjmdtfqtw28zh.jpeg" 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%2Fmnl169qfjmdtfqtw28zh.jpeg" alt="Geo-redundant storage " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Review the primary and secondary region information.&lt;br&gt;
4.Click Save.&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%2Fem5kzhvx2pddc91n54ky.jpeg" 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%2Fem5kzhvx2pddc91n54ky.jpeg" alt="Review region + save " width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Create a Private Container and Restrict Access
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Ensure corporate files are not publicly accessible.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Go to Data storage → Containers.&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%2Ftbqel6nsw56ufqy4d7p0.jpeg" 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%2Ftbqel6nsw56ufqy4d7p0.jpeg" alt="Data storage " width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select + Container.&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%2Fbtbfxhsanqyrakc3w4o1.jpeg" 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%2Fbtbfxhsanqyrakc3w4o1.jpeg" alt="Add container " width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Name the container private and click create.&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%2Fnfkkmzit8wvwzsclv7w5.jpeg" 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%2Fnfkkmzit8wvwzsclv7w5.jpeg" alt="container Private " width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Set Public access level to Private (no anonymous 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%2Fop97zmuuej7o6rxdhha9.jpeg" 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%2Fop97zmuuej7o6rxdhha9.jpeg" alt="change access level " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Select OK&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%2F2s89nkwrkvdxvvp4ev7i.jpeg" 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%2F2s89nkwrkvdxvvp4ev7i.jpeg" alt="select Ok " width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing Access Restriction:
&lt;/h4&gt;

&lt;p&gt;1.Select container created.&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%2Fdbqqkk81op663afjghk9.jpeg" 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%2Fdbqqkk81op663afjghk9.jpeg" alt="Select container " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click upload to upload a test file to the container.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pkzef60il8hsoeex0iq.jpeg" alt="Upload" width="800" height="495"&gt;
&lt;/li&gt;
&lt;li&gt;Select browse for file to select which file to upload and click upload
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6irza12furhjrs1h2z0t.jpeg" alt="upload file " width="800" height="495"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;4.Select the file and copy the URL from the Overview tab.&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%2F3qvzzkvp7gd7d2ktd1f3.jpeg" 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%2F3qvzzkvp7gd7d2ktd1f3.jpeg" alt="copy file URL" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Paste the URL into a browser.&lt;br&gt;
6.Confirm access is denied (authentication required).&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%2F342wcx1q799kzpx83no9.jpeg" 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%2F342wcx1q799kzpx83no9.jpeg" alt="access denied " width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Configure a Shared Access Signature (SAS)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Provide temporary, restricted access to an external partner for 24 hours.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Select the uploaded blob.&lt;br&gt;
2.Navigate to the Generate SAS tab.&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%2F3qvqr9kb09g3gehgnmut.jpeg" 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%2F3qvqr9kb09g3gehgnmut.jpeg" alt="select the uploaded blob" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Under Permissions, select Read only.&lt;br&gt;
4.Set the Start time to now and Expiry time to 24 hours.&lt;br&gt;
5.Select Generate SAS token and URL.&lt;br&gt;
6.Copy the Blob SAS URL.&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%2Fmnfwltyxh0epu8mh2w6n.jpeg" 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%2Fmnfwltyxh0epu8mh2w6n.jpeg" alt="Generate SAS" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing SAS Access:
&lt;/h4&gt;

&lt;p&gt;1.Paste the SAS URL into a browser.&lt;br&gt;
2.Confirm the file opens successfully.&lt;br&gt;
3.Verify that access will expire after the specified time.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.Implement Lifecycle Management (Move to Cool Tier)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Reduce storage costs by automatically moving older blobs from the Hot tier to the Cool tier after 30 days.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.Return to the storage account.&lt;br&gt;
2.Go to Data management → Lifecycle management.&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%2F2acrpodbedrx3d6f81xv.jpeg" 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%2F2acrpodbedrx3d6f81xv.jpeg" alt="lifecycle management " width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select Add rule.&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%2Fayb00qjszw5g1qppa55w.jpeg" 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%2Fayb00qjszw5g1qppa55w.jpeg" alt="Add rule" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Name the rule movetocool.&lt;br&gt;
5.Apply the rule to All blobs in the storage account.&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%2F4vua4s9g0tavehihva3c.jpeg" 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%2F4vua4s9g0tavehihva3c.jpeg" alt="name rule " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Under conditions:
&lt;/h5&gt;

&lt;p&gt;•Select Last modified&lt;br&gt;
•Set to More than 30 days ago&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%2Foq10952bow4ylrq4rb68.jpeg" 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%2Foq10952bow4ylrq4rb68.jpeg" alt="last modified to 30days" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Under actions:
&lt;/h5&gt;

&lt;p&gt;•Select Move to cool storage&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%2F4goiz7g2t34pri58ixvt.jpeg" 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%2F4goiz7g2t34pri58ixvt.jpeg" alt="move to cool" width="800" height="453"&gt;&lt;/a&gt;&lt;br&gt;
6.Click Add to save the rule.&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%2Fjdmt27t8aqzrewun2nl0.jpeg" 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%2Fjdmt27t8aqzrewun2nl0.jpeg" alt="save changes " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5.Configure Object Replication (Backup Public Website)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Back up public website content to the private storage account for redundancy and protection.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1a.In the private storage account, create a new container by clicking Add container &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%2F7ciwxh825k3edffrrnro.jpeg" 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%2F7ciwxh825k3edffrrnro.jpeg" alt="new container " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1b.Give it a name,example “backup” and select 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%2Fc9br22i271zs615c6qmk.jpeg" 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%2Fc9br22i271zs615c6qmk.jpeg" alt="backup container " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Navigate to the publicwebsite storage account earlier or any other storage account already created that requires backup .&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%2F8ruya5vxl1xogzy7masi.jpeg" 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%2F8ruya5vxl1xogzy7masi.jpeg" alt="storage account to be backed up " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
3.Go to Data management → Object replication.&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%2Fn0zpu3pfis36d1j9z3oi.jpeg" 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%2Fn0zpu3pfis36d1j9z3oi.jpeg" alt="object replication " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Select Create replication rule and Configure:&lt;br&gt;
•Source container: public&lt;br&gt;
•Destination storage account: private&lt;br&gt;
•Destination container: backup&lt;br&gt;
5.Select Create to create the replication rule.&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%2Fnxz6izqu8xl0esdgfzfm.jpeg" 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%2Fnxz6izqu8xl0esdgfzfm.jpeg" alt="create replication rule " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing Replication:
&lt;/h4&gt;

&lt;p&gt;1.Upload a file to the public container.&lt;br&gt;
2.Wait a few minutes.&lt;br&gt;
3.Refresh the backup container in the private storage account.&lt;br&gt;
4.Confirm the file appears automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Outcomes
&lt;/h3&gt;

&lt;p&gt;• ✅ Geo-redundant storage ensures high availability during regional outages.&lt;br&gt;
• ✅ Private containers prevent anonymous access to sensitive documents.&lt;br&gt;
• ✅ SAS provides secure, time-bound delegated access.&lt;br&gt;
• ✅ Lifecycle management optimizes storage costs automatically.&lt;br&gt;
• ✅ Object replication provides asynchronous backup between storage accounts.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>azure</category>
      <category>infrastructure</category>
      <category>devops</category>
    </item>
    <item>
      <title>Provide storage for the public website</title>
      <dc:creator>     Faith Aneke Adaora</dc:creator>
      <pubDate>Sun, 29 Mar 2026 06:24:16 +0000</pubDate>
      <link>https://forem.com/adaoraa/provide-storage-for-the-public-website-pk</link>
      <guid>https://forem.com/adaoraa/provide-storage-for-the-public-website-pk</guid>
      <description>&lt;h2&gt;
  
  
  CONFIGURATION STEPS :
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Create a storage account with high availability:
&lt;/h3&gt;

&lt;p&gt;Creating a storage account with high availability ensures that data is replicated across multiple locations or zones, providing resilience against hardware failures or outages and guaranteeing reliable access for applications and users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Ensure the storage account has anonymous public access:
&lt;/h3&gt;

&lt;p&gt;Enabling anonymous public access allows the storage account or container to serve files over the internet without authentication. This is essential for hosting publicly accessible content, such as website documents, while ensuring ease of access for all users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Create a blob storage container for the website documents:
&lt;/h3&gt;

&lt;p&gt;Creating a blob storage container organizes and stores the website’s documents and assets within the storage account, providing a dedicated space for files such as HTML, CSS, JavaScript, and media content.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Enable soft delete so files can be easily restored:
&lt;/h3&gt;

&lt;p&gt;Enabling soft delete ensures that deleted files are retained for a configurable period, allowing accidental deletions to be recovered easily and enhancing data protection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Enable blob versioning:
&lt;/h3&gt;

&lt;p&gt;Enabling blob versioning automatically maintains previous versions of files, allowing changes to be tracked and older versions to be restored if needed, thereby improving data management and recovery.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  EXERCISE INSTRUCTIONS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.Provisioning the Storage Account
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Create a storage account that supports high availability and public website hosting.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;In the portal, search for and select Storage accounts.&lt;/li&gt;
&lt;/ol&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%2Fcuuttuypzsc5yvgyt32y.jpeg" 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%2Fcuuttuypzsc5yvgyt32y.jpeg" alt="storage account " width="800" height="475"&gt;&lt;/a&gt;&lt;br&gt;
    2.  Select + Create.&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%2Fvtqbwkpzb9twqtejd863.jpeg" 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%2Fvtqbwkpzb9twqtejd863.jpeg" alt="+ Create" width="800" height="411"&gt;&lt;/a&gt;&lt;br&gt;
    3.  For Resource group, select New, provide a name, and select OK.&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%2Fsbahsg7uupfqsj4iey4o.jpeg" 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%2Fsbahsg7uupfqsj4iey4o.jpeg" alt="Create new" width="800" height="433"&gt;&lt;/a&gt;&lt;br&gt;
    4.  Set the Storage account name to publicwebsite (ensure uniqueness by adding an identifier).&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%2Fnt2lustygjjhdase6clv.jpeg" 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%2Fnt2lustygjjhdase6clv.jpeg" alt="Storage account name" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
    5.  Accept default settings for all other options.&lt;br&gt;
    6.  Select Review + Create, then Create.&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%2Foob14hmvlj452k7ne5bs.jpeg" 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%2Foob14hmvlj452k7ne5bs.jpeg" alt="Review +Create " width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
    7.  Wait for the deployment to complete, then select Go to resource.&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%2Fgrxmwkzjmxx6kekog7j4.jpeg" 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%2Fgrxmwkzjmxx6kekog7j4.jpeg" alt="Go to resource " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Enable High Availability
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Ensure the storage account remains accessible during regional outages.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt; In the storage account, navigate to the Data management → Redundancy blade.&lt;/li&gt;
&lt;/ol&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%2Futs0emmas1ivb0i93bpl.jpeg" 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%2Futs0emmas1ivb0i93bpl.jpeg" alt="Data Management " width="800" height="441"&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%2Fyo44pdirundohn90rxgn.jpeg" 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%2Fyo44pdirundohn90rxgn.jpeg" alt="Redundancy blade " width="800" height="1445"&gt;&lt;/a&gt;&lt;br&gt;
    2.  Select Read-access Geo-redundant storage (RA-GRS).&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%2Fn0j4ej27wfoqfolptu3y.jpeg" 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%2Fn0j4ej27wfoqfolptu3y.jpeg" alt="RA-GRS" width="800" height="441"&gt;&lt;/a&gt;&lt;br&gt;
    3.  Review the primary and secondary location information.&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%2Fgz1pbogav1ucawslzbd4.jpeg" 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%2Fgz1pbogav1ucawslzbd4.jpeg" alt="Review " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: RA-GRS replicates data to a secondary region, providing read access if the primary region becomes unavailable.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Enable Anonymous Public Access
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Allow website content to be accessed by users without authentication.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the storage account, go to Settings → Configuration.&lt;/p&gt;

&lt;p&gt;2.Enable the Allow blob anonymous access setting.&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%2F5ryaflcxa558ga9jdpls.jpeg" 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%2F5ryaflcxa558ga9jdpls.jpeg" alt="enable blob anonymous settings " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Save your changes.&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%2Fesqmoul9iclwljqih19f.jpeg" 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%2Fesqmoul9iclwljqih19f.jpeg" alt="save changes " width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use case: This setting is essential for serving website files such as HTML, CSS, images, and documents to all users.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.Create a Blob Storage Container with Anonymous Read Access
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Organize website assets (images, documents) in a dedicated container and allow public access without requiring authentication.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In your storage account, go to Data storage → Containers.&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%2Fgcu5qtnzrhys18ua4z3b.jpeg" 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%2Fgcu5qtnzrhys18ua4z3b.jpeg" alt="Data storage " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Select + Container.&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%2F6eue2c25l6qybfcue3do.jpeg" 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%2F6eue2c25l6qybfcue3do.jpeg" alt="+ container " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Set the container name to public and select Create.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuplh3hrwc4dm6r8fuj4s.jpeg" alt="create container " width="800" height="438"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.Configure anonymous read access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the newly created 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%2Fwu6a83n5aswlhqf1hr7f.jpeg" 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%2Fwu6a83n5aswlhqf1hr7f.jpeg" alt="public container " width="800" height="439"&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%2Fmlc1uuha7cf9k4hesfdq.jpeg" 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%2Fmlc1uuha7cf9k4hesfdq.jpeg" alt="change access level " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set Public access level to Blob (anonymous read access for blobs only).&lt;/li&gt;
&lt;li&gt;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%2Fnirchsj8j4b68sj88im5.jpeg" 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%2Fnirchsj8j4b68sj88im5.jpeg" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Testing Uploads and Access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload a test file to the public container by selecting the public container created &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%2F121dt7bi6cf5j790881a.jpeg" 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%2F121dt7bi6cf5j790881a.jpeg" alt="Public container created" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Upload, browse to a file (image or text), and 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%2Flq7pq1hbd1mmr37w7v51.jpeg" 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%2Flq7pq1hbd1mmr37w7v51.jpeg" alt="select upload" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refresh the container and confirm the file is 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%2Fnlpgi0tl40pkk9slkuz1.jpeg" 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%2Fnlpgi0tl40pkk9slkuz1.jpeg" alt="uploaded image " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Test public access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the uploaded file, copy the URL from the Overview tab, and open it in a 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%2Fdke9op7t9kv9g37xroe1.jpeg" 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%2Fdke9op7t9kv9g37xroe1.jpeg" alt="Uploaded image" width="800" height="484"&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%2Fr8b8jxue5kfjczeu82bz.jpeg" 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%2Fr8b8jxue5kfjczeu82bz.jpeg" alt="Copy URL" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Images should display directly; other file types may be downloaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5.Configure Soft Delete
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Protect against accidental deletions by retaining deleted files for a specified period.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps:
&lt;/h4&gt;

&lt;p&gt;1.In the storage account, go to Overview → Properties → Blob service → Blob soft delete.&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%2Flqfv59c4o2ii4rmko3l1.jpeg" 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%2Flqfv59c4o2ii4rmko3l1.jpeg" alt="Overview section " width="800" height="443"&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%2Fbgf7ghrwliwc2aat2kvt.jpeg" 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%2Fbgf7ghrwliwc2aat2kvt.jpeg" alt="properties/blob soft delete section " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Enable Soft delete for blobs and set Keep deleted blobs for 21 days.&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%2Fkliiv9imc073phpbsx83.jpeg" 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%2Fkliiv9imc073phpbsx83.jpeg" alt="Blob soft delete for 21days" width="800" height="401"&gt;&lt;/a&gt;&lt;br&gt;
3.Save your changes.&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%2Fbb2mwwr4uvkwioktwx1t.jpeg" 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%2Fbb2mwwr4uvkwioktwx1t.jpeg" alt="Saved Changes " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Testing Soft Delete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your container and delete a file. Confirm deletion.&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%2Fe39v89ui0gd8est2ao72.jpeg" 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%2Fe39v89ui0gd8est2ao72.jpeg" alt="select delete" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Toggle Show deleted blobs on the container Overview page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the deleted file, click the ellipsis, and choose Undelete.&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%2Frzdla5jcdl69gxi73h3q.jpeg" 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%2Frzdla5jcdl69gxi73h3q.jpeg" alt="Undelete" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refresh the container to confirm the file has been restored.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6.Configure Blob Versioning
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Objective:
&lt;/h4&gt;

&lt;p&gt;Maintain historical versions of files to track changes and allow recovery.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;p&gt;1.In the storage account, navigate to Overview → Properties → Blob service → Versioning.&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%2Foe73rl45c5o4ywl7jhk7.jpeg" 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%2Foe73rl45c5o4ywl7jhk7.jpeg" alt="overview" width="800" height="430"&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%2Ftatq1pljp7dq0biky0lv.jpeg" 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%2Ftatq1pljp7dq0biky0lv.jpeg" alt="versioning " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Enable Versioning for blobs and configure options to keep or delete previous versions as needed.&lt;br&gt;
3.Save your changes.&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%2Fdc4drheh0st3o1fbrkv9.jpeg" 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%2Fdc4drheh0st3o1fbrkv9.jpeg" alt="Enable versioning " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Testing Versioning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload a new version of an existing file in the container (overwrite the previous file).&lt;/li&gt;
&lt;li&gt;Previous versions are available under the Show deleted blobs page.&lt;/li&gt;
&lt;li&gt;Experiment with restoring older versions to verify versioning functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Key Benefits of These Configurations&lt;br&gt;
    • Anonymous Public Access: Serves website files without authentication.&lt;br&gt;
    • Soft Delete: Protects against accidental file deletions.&lt;br&gt;
    • Blob Versioning: Tracks changes and enables recovery of previous file versions.&lt;br&gt;
    • High Availability: Ensures data remains accessible even during outages or hardware failures.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>testing</category>
      <category>development</category>
    </item>
  </channel>
</rss>
