How to Secure your Azure resources with NSG and JIT Access

Ahmed Monsri
6 min readDec 13, 2023

--

In today’s digital era, securing virtual resources has become a top priority for organizations. Particularly in cloud environments such as Microsoft Azure, protecting your virtual machines against unauthorized and potential harmful access is crucial. This article will thoroughly explore the use of Network Security Groups (NSGs) and Just-In-Time (JIT) Access control to enhance network security within your Azure Virtual Machines.

Understanding Azure Network Security Groups

What are NSGs?

Network Security Groups (NSGs) in Azure serve as a fundamental tool in your defense arsenal, acting as a virtual firewall for your resources within an Azure Virtual Network. NSGs enable you to control and manage network traffic to Azure services like Virtual Machines, providing an additional layer of security by allowing or denying network traffic.

How do NSGs Work?

An NSG contains a list of Access Control List (ACL) rules that either allow or deny traffic based on factors such as source and destination IP address, port number, and protocol type. There are two types of rules: inbound and outbound.

Inbound rules govern the traffic that’s coming into a network from the outside, while outbound rules control the traffic flowing out of the network to external locations. By customizing these rules, you can design a robust security strategy tailored to your specific needs, ensuring that only authorized traffic is allowed to and from your Azure resources.

Deep Dive into Inbound and Outbound Traffic

What is Inbound Traffic?

Inbound traffic essentially represents incoming data packets transported over the network that originate from an exterior source and are directed towards your device or network. For instance, when a client sends a request to your Azure VM, the incoming data is recognized as inbound traffic. In NSG rules, inbound security rules help manage this traffic, specifying which sources have permission to reach your resource.

What is Outbound Traffic?

On the flip side, outbound traffic signifies network data that emerges from within your network or device and heads out to the internet or an external network. As an illustration, consider your Azure VM sending a request to another server on the internet. This direction of data flow is referred to as outbound traffic. Outbound security rules in the NSG allows you to control this traffic, setting parameters on what destinations your VM can access.

Why differentiate inbound and outbound traffic? Well, defining traffic based on direction allows more precise control and restriction for security purposes. It helps prevent unauthorized data access and exposure while ensuring necessary connections are still established. Our next section will elaborate on defining “Allow List” rules in NSGs, so you can effectively manage your inbound and outbound traffic in Azure.

How to Define ‘Allow List’ Rules in NSGs?

The Importance of Strict IP Allowance:

In the context of network security, an ‘allow list’ refers to a list of authorized entities, such as IP addresses or IP ranges that are permitted to initiate communication. By creating ‘allow list’ rules in your NSGs, you can tightly control who can send traffic to your Azure VMs, effectively limiting potential attack vector.

This way, even if attackers discover your VM’s public IP address, they wouldn’t be able to communicate with it unless their IP address is included in your ‘allow list’. This is especially important in today’s environment, where cyber threats are rapidly evolving and becoming increasingly sophisticated.

Rule Definition Examples:

An ‘allow list’ rule in an NSG essentially includes the following parameters: source, destination, port, protocol, and action. Suppose you want to permit an employee to access your Azure VM. You would create an inbound security rule with the source as the employee’s IP address (home or office), the destination as the VM’s IP, and specify the protocol (TCP/UDP) and port number for the service (like SSH on Port 22 for Linux VM or RDP on port 3389 for Windows VM). Action will be set to “ALLOW”.

Similarly, you could define several ‘allow list’ rules based on your business requirement. However, keep in mind that best practice advocates for least privilege access, meaning only minimum necessary access should be granted to reduce the potential impact of compromise. Through these examples, one can easily see how each rule acts as a solid brick in your security wall.

Just-In-Time Access Control

Understanding JIT in Azure

Just-In-Time (JIT) Access Control is a powerful security measure that’s part of Microsoft Defender for Cloud in Azure. JIT works by helping you lock down inbound traffic to your Azure VMs, thereby reducing exposure to attacks while still providing conveniently requested access as and when needed.

JIT’s motivational principle is based on providing network access narrowly tailored for specific time frames and scope. By keeping management ports closed by default, it reduces the attack surface and defends against potential unauthorized access and breaches.

Setting up JIT Access for VMs:

Setting up JIT involves enabling JIT on your VMs and defining a JIT policy. When a user requests VM access, Defender for Cloud checks the request against the policy. If approved, Defender for Cloud adds an NSG rule opening the necessary port for the configured time frame. After the time expires, the port closes again. This process helps ensure that only necessary connections occur, minimizing any opening for exploitations.

Even though JIT might initially seem like an additional layer of bureaucracy, it provides an essential security enhancement by regulating access in real time, reducing your VMs’ vulnerability.

The Synergy of JIT and NSGs for Enhanced Security

Benefits of Using JIT with NSGs:

When JIT and NSGs are used together, they establish a dual-layered approach to Azure network security. NSGs allow you to set up baseline inbound and outbound traffic rules, essentially determining who can connect to your VMs and when. Then, JIT adds an extra layer of protection by ensuring that these management ports aren’t simply left open and exposed, but only opened when required and for the minimum duration necessary.

This combined approach provides comprehensive control over your Azure resources, reducing your attack surface and providing efficient management of access rights. It allows you to balance your operational needs with strong security policies, ensuring that every connection request is justified, valid and secure.

Case Study: A Practical Application

Consider a scenario where two employees need access to Azure VM both from their office and home. With NSG, you would create ‘allow list’ rules for each of the four IPs (two employees * two locations). Though this ensures that only these IPs can connect to the VM, the ports remain open, creating possible attack vectors. With JIT enabled, these ports would remain closed by default, and open only when a request is made, thereby significantly enhancing your security stance.

Conclusion

Recap of NSGs and JIT

Azure Network Security Groups (NSGs) enable granular control over the traffic coming into and out of your virtual machines, by applying ‘allow’ or ‘deny’ rules to specific IPs or IP ranges. This protects your Azure resources from unauthorized and potentially harmful traffic.

Adding Just-In-Time (JIT) access control to this mix elevates the level of security. By restricting access to your VMs to only when it’s needed and for the briefest necessary duration, JIT minimizes the openings for potential malicious attacks. Together, NSGs and JIT form a potent combination that significantly strengthens the security profile of your Azure environment.

Final Thoughts on Achieving Network Security in Azure:

Implementing network security can seem daunting due to the various elements and layers involved. However, Azure’s built-in features like NSGs and JIT simplify the task considerably. They work together to provide an efficient yet robust network security system, mitigating potential threats and breaches while ensuring that your services continue to function optimally. Therefore, understanding and effectively deploying these tools are crucial steps towards achieving strong network security in Azure.

As we continue to navigate the rapidly evolving landscape of cloud technology, maintaining secure access to resources is a priority that organizations can’t afford to overlook. Hence, embracing practices like strict IP allowance, least privilege access, and real-time access control will play a vital role in shaping a safe and secure digital future.

--

--

Ahmed Monsri

Fintech Cybersecurity Analyst | Telecommunications Engineer