The first time you step into the Azure portal, it feels a bit like walking into a vast digital city. Virtual machines hum quietly in the background, networks connect invisible pathways, and storage vaults guard precious data. But like any city, Azure needs maintenance. It needs structure. It needs someone who understands how to keep everything secure, efficient, and cost-effective.
This is the story of that journey.
By the end, you won’t just know what to click — you’ll understand why it matters.
Setting the Stage: Building the Foundation
Every good project begins with preparation.
Imagine you’ve been asked to assist an Azure Administrator. You won’t run the entire infrastructure, but you’ll handle critical updates. Before anything else, you must create a safe workspace — a container to hold everything you build.
In this stage, we will create a virtual network, a virtual machine, a storage account, and associated resources.
Kick starting the preparation of the environment
Let us set-up the environment to complete the rest of the steps.
Login to Microsoft Azure
- Login to Microsoft Azure at https://portal.azure.com Create a resource group Think of a resource group as a project folder. Instead of scattering resources across your subscription, you neatly organize them in one place. This makes cleanup simple and prevents costly mistakes later.
- From the Azure portal home page, in the search box, enter resource groups.
- Select Resource groups under services.

NB: You take note of existing resource groups — especially one called NetworkWatcherRG. If it was there before you started, you leave it alone later. Cloud hygiene begins with awareness.
Select Create.
- Enter guided-project-rg in the Resource group name field.
- The Region field will automatically populate. Leave the default value.
- Select Review + create.
- Select Create.
- Return to the home page of the Azure portal by selecting Home.
Constructing the Network
Next, you build the digital roads.
Create a virtual network with one subnet
At first, it contains just one subnet — enough to get started. This network will serve as the backbone for everything else you deploy.
- From the Azure portal home page, in the search box, enter virtual networks.
- Select virtual networks under services.
Scroll down to the Instance details section and enter guided-project-vnet for the Virtual network name.
Select Review + create.
- Select Create.
- Wait for the screen to refresh and show Your deployment is complete.
- Select Home to return to the Azure portal home page.
Bringing a Machine to Life
Now comes the compute layer — the engine of your infrastructure.
Create a virtual machine
You deploy a Linux virtual machine:
• Name: _guided-project-vm _
• Image: Ubuntu Server
• Authentication: Password-based login
Azure even shows you the hourly cost before deployment. This small detail is powerful — every click in the cloud has financial consequences.
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select guided-project-rg for the Resource group.
- Enter guided-project-vm for the Virtual machine name.
- For the Image, select one of the Ubuntu Server options. (For example, Ubuntu Server 24.04 LTS - x64 Gen2)
- Continue further on the Basics page to the Administrator account section.
- Select Password for authentication type.
- Enter guided-project-admin for the admin Username.
- Enter a password for the admin account.
- Confirm the password for the admin account.
- Leave the rest of the settings as default settings. You can review the settings if you like, but shouldn’t change any.
- Select Review + create. NB: Once validation has passed, you’ll receive a cost estimate of how much it will cost per hour to run the VM.


NB: Once validation has passed, you’ll receive a cost estimate of how much it will cost per hour to run the VM
- Select Create to confirm the resource cost and create the virtual machine
- Select Home to return to the Azure portal home page.
Adding Storage Capacity
Every system needs storage. So you create a storage account, ensuring its name is globally unique (a reminder that Azure is truly global).
Create a Storage account
- From the Azure portal home page, in the search box, enter storage accounts.
- Select Storage accounts under services.

Select Create.
NB: The subscription and resource group should automatically fill in. Verify that the information filled in matches the correct subscription and the new resource group created for the guided project (guided-project-rg if you’re following along with the naming conventions).
- Scroll down to the Instance details section and enter a name for the storage account. Storage accounts must be globally unique, so you may have to try a few different times to get a storage account name.
- Select Review + create.
- Select Create.
- Wait for the screen to refresh and show Your deployment is complete.
- Select Home to return to the Azure portal home page.

With this, your foundational environment is complete:
• Resource group
• Virtual network
• Virtual machine
• Storage account
The stage is set.
Phase Two: Refining the Network
In this phase you will perform the following exercises:
• Update the virtual network
• Manage virtual machines
• Control storage access
• Manage tags and locks
• Clean up
Lets give a Scenario
You’re helping an Azure Admin maintain resources. While you won’t be responsible for maintaining the entire infrastructure, the Admin will ask you to help out by completing certain tasks. Currently, there’s a Linux virtual machine (VM) that’s underutilized, and a need for a new Linux machine to serve as an FTP server. However, the Azure admin wants to be able to track network flow and resource utilization for the needed FTP server, so has asked you to start out by provisioning a new subnet. The current subnet should be left alone, as there are future plans for using it for additional VMs.
Create a new subnet on an existing virtual network (vNet)
- Login to Microsoft Azure at https://portal.azure.com
- From the Azure portal home page, in the search box, enter virtual networks.
- Select virtual networks under services.
- Select the guided-project-vnet virtual network.
- From the guided-project-vnet blade, under settings, select Subnets.
To add a subnet, select + Subnet.

- For Subnet purpose leave it as Default.
- For Name enter: ftpSubnet.
- Leave the rest of the settings alone and select Add.
- Select Home to return to the Azure portal home page.
Congratulations – you’ve completed the creation of a subnet. This subnet is only going to be used for SFTP traffic. To increase security, you need to configure a Network security group to restrict which ports are allowed on the subnet.
Strengthening Security with a Network Security Group
Security in Azure is layered.
You create a Network Security Group (NSG) called: ftpNSG
Create a network security group
- From the Azure portal home page, in the search box, enter virtual networks.
- Select virtual networks under services.
- Select Network security groups.
- Select + Create.
- Verify the subscription is correct.
- Select the guided-project-rg resource group.
- Enter ftpNSG for the network security group name.
- Select Review + create.
- Once the validation is complete, select Create.
- Wait for the screen to refresh and display Your deployment is complete.
- Select Go to resource.

Create an inbound security rule
- Under settings, select Inbound security rules.
- Select + Add.
- Change the Destination port ranges from 8080 to 22.
- Select TCP for the protocol.
- Set the name to ftpInbound.
- Select Add.
- Select Home to return to the Azure portal home page. Congratulations – you’ve created a new Network security group and configured rules to allow inbound FTP traffic. Now, you’ll need to associate the new network security group with the ftpSubnet. Associate a network security group to a subnet
- From the Azure portal home page, in the search box, enter virtual networks.
- Select virtual networks under services.
- Select the guided-project-vnet virtual network.
- Under settings, select Subnets.
- Select the ftpSubnet you created.
- On the Edit subnet page, under the Security section heading, update the Network security group field to ftpNSG.
- Select Save.


Nicely done. It looks like you’ve completed the work needed to prepare the network for shifting the current Linux VM to a new subnet that’s designed to handle incoming FTP traffic.
Phase Three: Managing the Virtual Machine
With the network prepared, it’s time to adjust the machine itself.
In this exercise, you’ll manage the virtual machine. You’ll change the virtual machine's assigned subnet, vertically scale the virtual machine, add storage, and finally add an automatic shutdown.
Scenario
With the network settings updated to support segmenting the Linux virtual machine, you’re ready to manage the virtual machine itself. The first thing the Azure admin asks you to complete is moving the virtual machine to the new subnet you created in the previous exercise.
Move the virtual machine network to the new subnet
- Login to Microsoft Azure at https://portal.azure.com
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the guided-project-vm virtual machine.
- If the virtual machine is running, select Stop
NB: In order to make some configuration changes, such as changing the subnet, the VM will need to be restarted. You can request the change without stopping the VM, but Azure will force a restart before completing the change.
- Wait for the Status field to update and show Stopped (deallocated).
- Within the Networking subsection of the menu, select Network settings.
- Select the Network interface / IP configuration hyperlink for the VM.
- On the IP Configurations page, update the Subnet to ftpSubnet.
- Select Apply.
- Select Home to return to the Azure portal home page.
Good job! You’ve migrated the VM from one subnet to another. Remember, the new subnet had specific network security rules applied to help it function as an FTP server. The next task from the Azure admin relates to the computing power of the VM. The admin would like you to vertically scale the machine to increase the computing power.
You resize the VM to a larger instance (for example, D2s_v5). This is vertical scaling — increasing CPU and memory without rebuilding the server.
Cloud flexibility at its best.
Vertically scale the virtual machine
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the _guided-project-vm _virtual machine.
- Locate the Availability + scale submenu and select Size.
- Select a new VM size D2s_v5 for example. (NB: If you don’t see the same size as shown in this exercise, select something similar.)
- Select Resize

NB: The VM size may not update in the Azure UI until the VM is restarted
Select Home to return to the Azure portal home page.
Well done. With the VM scaled up to a more robust processor, it can handle the new role it’s being assigned.
However, now the Azure admin realizes that if the VM is going to server as an FTP server, it needs more storage. The Azure admin asked you to attach a new data disk to the VM.
Attach data disks to a virtual machine
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the guided-project-vm virtual machine.
- Locate the settings submenu and select Disks.
- Select Create and attach a new disk.
- Leave LUN as default.
- Enter ftp-data-disk for the Disk name.
- Leave the Storage type as default.
- Enter 20 for the Size.
- Select Apply to create the new storage disk and attach the disk to the machine.
- Select Home to return to the Azure portal home page. Nice! Now the VM has enough storage to handle some uploads.
Controlling Costs with Auto-Shutdown
The final thing the Azure admin is concerned about is the cost of running the computer 24 hours a day. The first thing they’ll do every morning is start up the FTP server. However, they’d like you to configure it to automatically shutdown every day at 7 PM Coordinated Universal Time (UTC)
Configure automatic shutdown on a virtual machine
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the guided-project-vm virtual machine.
- Under the Operations submenu, select Auto-shutdown.
- In order to let late uploads finish, set the Scheduled shutdown to 7:15:00 PM.
- Select Save.
- Select Home to return to the Azure portal home page.
Phase Four: Controlling Storage Access
In this exercise, you’ll complete several tasks related to managing a storage account and components of the storage account.
Scenario
The Azure admin wants you to get more familiar with storage accounts, containers, and file shares. They anticipate needing to share an increasing number of files and need someone who is skilled using these services. They’ve given you a task of creating a storage container and a file share and uploading files to both locations.
Create a storage container
- Login to Microsoft Azure at https://portal.azure.com
- From the Azure portal home page, in the search box, enter storage accounts.
- Select storage accounts under services.
- Select the storage account you created in the Setting the stage exercise. The storage account name is the hyperlink to the storage account. (NB: it should be associated with the resource group guided-project-rg.)
- On the storage account blade, under the Data storage submenu, select Containers.
- Select + Add container.
- In the Name field, enter storage-container.
- Select Create.

Great! With a storage container created, you can upload a blob to the container. Locate a picture that you can upload, either on your computer or from the internet, and save it locally to make uploading easier.
Upload a file to the storage container
- Select the storage container you just created.
- Select Upload and upload the file you prepared.
- Once the file is ready for upload, select Upload. With the file uploaded, notice that the Access tier is displayed. For something we uploaded just for testing, it doesn’t need to be assigned to the Hot access tier. In the next few steps, you’ll change the access tier for the file.
- Select the file you just uploaded (the file name is a hyperlink).
- Select Change tier.
- Select Cold.
- Select Save

NB: You just changed the access tier for an individual blob or file. To change the default access tier for all blobs within the storage account, you could change it at the storage account level.
- Select Home to return to the Azure portal home page. Good job! You’ve successfully uploaded a storage blob and changed the access tier from Hot to Cold. Next, you’ll work with file shares.
Create a file share
- From the Azure portal home page, in the search box, enter storage accounts.
- Select storage accounts under services.
- Select the storage account you created in the Prepare exercise. The storage account name is the hyperlink to the storage account. (NB: it should be associated with the resource group guided-project-rg)
- On the storage account blade, under the Data storage submenu, select File shares.
- Select + File share.
- On the Basics tab, in the name field enter file-share.
- On the Backup tab, uncheck Enable backup.
- Select Review + create.
- Select Create.
- Once the file share is created, select Upload.
- Upload the same file you uploaded to the blob storage or a different file, it’s up to you.
- Select Home to return to the Azure portal home page.
Sharing Access Securely with SAS Tokens
The next piece of the puzzle is figuring one way to control access to the files that have been uploaded. Azure has many ways to control files, including things like role-based access control. In this scenario, the Azure admin wants you to use shared access tokens or keys.
Create a shared access signature token
- From the Azure portal home page, in the search box, enter storage accounts.
- Select storage accounts under services.
- Select the storage account you created in the setting the stage exercise.
- On the storage account blade, select Storage browser.
- Expand Blob containers. NB: Blob container is another name for the storage containers. Items uploaded to a storage container are called blobs
- Select the storage container you created earlier, storage-container.
- Select the ellipses (three dots) on the end of the line for the image you uploaded.
- Select Generate SAS NB: When you generate a shared access signature, you set the duration. Once the duration is over, the link stops working. The **Start automatically populates with the current date and time.
- Set Signing method to Account key.
- Set Signing key to Key 1 Tip: There are two signing keys available. You can choose either one, or create SAS tokens with different durations
- Set Stored access policy to None.
- Set Permissions to Read.
- Enter a custom start and expiry time or leave the defaults.
- Set Allowed protocols to HTTPS only.
- Select Generate SAS token and URI.
- Copy the Blob SAS URL and paste it in another window or tab of your browser. It should display the image you uploaded. Keep this tab or window open.
- Select Home to return to the Azure portal home page. With the SAS token created, anyone with that link can access the file for the duration that was set when you created the SAS token. However, controlling access to a resource or file is about more than just granting access. It’s also about being able to revoke access. To revoke access with a SAS token, you need to invalidate the token. You invalidate the token by rotating the key that was used.
Rotate access keys
- From the Azure portal home page, in the search box, enter storage accounts.
- Select storage accounts under services.
- Select the storage account you created in the Setting the stage exercise.
- Expand the Security + networking submenu.
- Select Access keys.
- For Key 1, select Rotate key.
- Read and then acknowledge the warning about regenerating the access key by selecting Yes.
- Once you see the success message for rotating the access key, go back to the window or tab you used to check the SAS token and refresh the page. You should receive an authentication failed error.
Phase Five: Organizing with Tags and Protecting with Locks
Now comes governance.
If you’ve completed the previous exercises, you’ve managed added a subnet to a virtual network, made changes to a virtual machine, and worked with an Azure storage account. The final set of tasks focus around working with tags and resource locks to help manage and monitor your environment. During this exercise you’ll go back into each of the areas you’ve already worked to add tags, locks, or a combination of both.
Scenario
Pleased with your progress so far, the Azure admin hopes that you can wrap a few things up to help with monitoring and protecting resources. They want to know that someone can’t accidentally get rid of the virtual machine that’s running as an FTP server, and they want a quick way to see what department is using resources and the resource’s purpose.
Manage tags and locks on VMs
Adding tags to resources is a quick way to be able to group and organize resources. Tags can be added at different levels, giving you the ability to organize and group resources at a level that makes sense for you.
Add tags to a virtual machine
You’ll start by adding a pair of tags to the virtual machine. One tag will be to identify the purpose of the virtual machine and the other will be to indicate the department the machine supports.
- Login to Microsoft Azure at https://portal.azure.com
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the guided-project-vm virtual machine.
- From the menu pane, select Tags.
- On one line for Name enter Department and for Value enter Customer Service
- On the next line, for Name enter Purpose and for Value enter FTP Server.
- Select Apply.

While you’re working on the virtual machine, it’s a great time to add a resource lock.
Add a resource lock to a VM
- If necessary, expand the Settings submenu.
- Select Locks.
- Select + Add.
- For the name, enter VM-delete-lock.
- For the Lock type, select Delete.
- You may enter a note to help remind you why you created the lock.
- Select OK.

That’s it. Now the VM is protected from deletion and has tags assigned to help track use. Time to move onto the network.
- Select Home to return to the Azure portal home page.
Add tags to network resources
- From the Azure portal home page, in the search box, enter virtual networks.
- Select virtual networks under services.
- Select the guided-project-vnet network.
- From the menu pane, select Tags. NB: Notice that now you can select an existing tag to apply or add a new tag. You can also select just the name or value and apply create something new in the other field.
- For the Name select Department.
- For the Value enter IT.
- Select Apply.

Now both the VNet and VM have are organized.
Congratulations! You’ve completed this exercise.
The Final Step: Clean Up
Remove delete locks
If you attempt to delete a resource with a delete lock, you’ll receive a warning that the operation failed due to a delete lock being in place. To avoid that, it’s important to clear delete locks from resources you intend to delete before issuing the delete command.
- Login to Microsoft Azure at https://portal.azure.com
- From the Azure portal home page, in the search box, enter virtual machines.
- Select virtual machines under services.
- Select the guided-project-vm virtual machine.
- If necessary, expand the Settings submenu.
- Select Locks.
- Select Delete on the line for the VM-delete-lock.
- On the pop-up window, select Delete to confirm deletion of the lock. Once the delete lock is removed, you’ll be able to delete the VM. While this was the only delete lock required by the exercise, if you applied other delete locks during the exercise, remove them now. When you’re done, select Home to return to the Azure portal home page.
Delete the project resource group
A key benefit of using resource groups is the ability to rapidly delete all of the resources assigned to a resource group at once.
- From the Azure portal home page, in the search box, enter Resource groups.
- Select resource groups under services.
- Select the guided-project-rg resource group.
- Select Delete resource group.
- Select Apply force delete…
- Enter guided-project-rg in the confirmation box.
- Select Delete.
- On the Delete confirmation pop-up, select Delete.

It will approximately 5 minutes before the resource group is fully deleted. You’ll need to refresh the resource group page every few minutes until the guided-project-rg is gone to confirm complete deletion.
Important: Recall at the beginning, you checked for a NetworkWatcherRG resource group. If there was a NetworkWatcherRG when you started, then you’re finished. However, if the NetworkWatcherRG was created for the project, you’ll need to delete the NetworkWatcherRG as well following a nearly identical process.
If you don’t need to delete the NetworkWatcherRG, you can head back to Learn now and complete the module. If you need to delete the NetworkWatcherRG, continue on for instructions.
Delete the NetworkWatcherRG
Important: If the NetworkWatcherRG existed prior to starting the guided project, do not delete it as part of the guided project clean up.
- From the Azure portal home page, in the search box, enter Resource groups.
- Select resource groups under services.
- Select the NetworkWatcherRG resource group.
- Select Delete resource group.
- Enter _NetworkWatcherRG _in the confirmation box.
- Select Delete.
- On the Delete confirmation pop-up, select Delete. It will approximately 5 minutes before the resource group is fully deleted. You’ll need to refresh the resource group page every few minutes until the NetworkWatcherRG is gone to confirm complete deletion.
What You’ve Truly Learned from this article are:
This wasn’t just about clicking buttons in Azure.
You’ve learned how to:
• Scale and manage virtual machines
• Design and secure networks
• Control storage tiers and access
• Protect resources with locks
• Organize infrastructure with tags
• Prevent unnecessary costs
Most importantly, you’ve learned that cloud administration is not about deployment — it’s about stewardship.
Azure is powerful. But mastery comes from maintaining it with intention.
And now, you’ve taken that step.
See you in my next article.
















































Top comments (1)
Welldone!