ExpressRoute - Private Peering - Storage Account Firewall - azure

Have a storage account that I need to enable the firewall on. I've already put in place private endpoints and create the necessary Private DNS domains to allow privatelink.blob.core.windows.net to work correctly (on-premises requests resolve to the correct RFC1918 address). The issue I have is with locking down the storage account.
I am unable to specify the on-prem IP ranges since they are RFC1918 addresses. The only way I can see to allow access is via VNet/Subnet or via an explicit public IP address. I've read a bit about using the NAT address of the ExpressRoute but that seems to only pertain to Microsoft or public peering. There shouldn't be any NAT happening.
For reference. The ER is terminating into a hub and the VNet where the storage endpoint is located is peered with this hub.
Thanks,
Nathan

Network Security Group (NSG) support for private endpoints is in public preview. (Preview features do not have the same SLA's as generally available features and are not recommended for production.) Depending on your region, you may be able to use this feature: https://azure.microsoft.com/en-us/updates/public-preview-of-private-link-network-security-group-support/
An NSG could be associated with each subnet that contains a private endpoint to the storage account. An inbound rule could then be added to the NSG that allows traffic from the on-premises IP's to the private endpoint IP's.

Maybe it's too late for the answer, but you need a DNS conditional forward for the onprem workloads to work with private endpoints. If you don't use it, you will always resolve the query to the public endpoint instead of the private one.
https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns

Related

Azure - difference between service endpoint and private endpoint in simple terms

I am not able to understand the difference between service endpoints and private endpoints clearly.
Need help preferably with an example.
You might have seen this in the Private Link FAQ:
Private Endpoints grant network access to specific resources behind a given service providing granular segmentation. Traffic can reach the service resource from on premises without using public endpoints.
A Service Endpoint remains a publicly routable IP address. A Private Endpoint is a private IP in the address space of the virtual network where the private endpoint is configured.
For simplicity, let's take the view of a VM in a VNET connecting to a storage account in the same subscription and same Azure region. There are three ways to connect.
Default
By default all traffic goes against the public endpoint of the storage account. Source IP of the traffic is the Public IP of the VM.
Service Endpoints
Traffic is still directed against the public endpoint of the storage account but the source IP has changed to the private IP of the VM. In fact, the traffic is also using the VNET and Subnet as source in the network dataframe.
Private Endpoints
The PaaS service now gets a virtual network interface inside the subnet and traffic from the VM to the storage account is now directed against the private IP address.
By far the best collection of useful information around Private Link that I have seen on the web is in this repository: https://github.com/dmauser/PrivateLink
You can also find some examples here: https://jeffbrown.tech/azure-private-service-endpoint/

Azure NSG Private IP Congfiguration (WhiteList)Vnet to Vnet communication

I have situation where I want to open my Vnet(lets say Vnet1) for other Vnets (which has private IP range defined ) , I am thinking to use NSG rules and allow private IP ranges of other Vnets (lets say Vnet2 , Vnet3) to this entry point Subnet(in Vnet1) which host my API gateway .
I have two questions :
I assume it should be feasible using private IP addresses and allowing them using NSG (of Vnet 1/Subnet 1) ? I am not looking for peering/s2s vpn of Vnet as both belongs to separate teams and Vnet2/Vnet3 just wanted to access APis of Vnet1 using Api gateway.
Is there any security issues which we foresee , I assume it safe to expose since these are private IPs and can not be accesses from internet .
Please let me know opinion on feasibility and security .
Thanks
Xslguy
To help others who might find the same scenario, just extract the useful information in the comment and write my answer.
An Azure VNet is a logical isolation of Azure cloud dedication to your subscription. VNet peering allows traffic between two VNets is routed through Microsoft's private network only. If the VNETs haven't peered, vnet1 will not connect to resources in vnet2 by using private IP but using the public IP of the resources in vnet2. In this case, we need to restrict the source public IP for the inbound rules in the NSG attached to the subnet. With VNet peering, you also could restrict the access from one subnet to another subnet by using source private IP for the inbound rules in the NSG attached to the subnet.
From Security rules:
If you specify an address for an Azure resource, specify the private
IP address assigned to the resource. Network security groups are
processed after Azure translates a public IP address to a private IP
address for inbound traffic, and before Azure translates a private IP
address to a public IP address for outbound traffic.

Azure VNET peering v/s NSG exception

I am new to azure and trying to understand the concept behind VNet peering
I Have two VM First in East US and another in East Asia
By the design of AZURE, i should not be able to access any data between these VM as AZURE does not allow communication between two different VNET and to allow the communication, one may use VNET Peering !!, Correct ?
But when i add a firewall exception from VM 1 to VM 2 i am able to access the data OR when i create a VNET Peering the same happens, Can someone please share me the difference of both and what is the requirement of VNET Peering when the same can be achieved by adding firewall exception
By default when you configure a peering it has full access between vnet's. You can use nsg (network security group) to block specific traffic.
A peering connection means that you are going to have connection between vnet's from private ip, for example vnet-a 10.0.0.0/16 can only access vnet-b 192.168.0.0/16 if it has a peering connection, because those ip's (address space) are privates. When you say firewall exception, you probably configured your private ip in your nsg, it is correct, you must specify your private ip to have access from internet, not your public ip, it is how Azure has designed nsg rules. For a example, your VM's public ip is 201.200.200.15, and private ip is 10.0.0.4, in order to allow this VM to be accesible from internet, you must put your private ip 10.0.0.4 in your nsg rules, not your public ip.
From Azure portal, go to both VM blades and check public and private IP, without a peering connection you won't be able to connect each other using private IP, but using public IP you can without peering.

Why Azure SQL Managed Instance requires UDR 0.0.0.0/0 next hop type Internet

One of the networking requirements for the Azure SQL Managed Instance is to have UDR 0.0.0.0/Next hop internet that enables access from the private subnet that belongs to Azure VNet and public internet.
Why is this required and what are the risks?
This rule was meant to simply override common BGP advertisements that could cause asymmetric routing and interfere with the management traffic.
In the case of BGP advertisement of more specific prefixes, this would not be enough to assure management traffic flow and you will need to define UDRs to override the advertised prefixes.
Note that 0.0.0.0/0 next hop type Internet rule don't routes all traffic to the Internet. The next hop is always another device – in this case Internet Gateway that is located inside Azure. It is called Internet Gateway as it handles routing to public Azure IP addresses. As these IP addresses mostly belong to Azure services collocated with Managed Instance the network traffic that always finds the shortest path stays inside the Azure.
Managed Instance needs public Internet access for certificate revocation verification and this is done over the public Internet. Certificate revocation information is made public so no secrets are sent or received that way. Certificate verification information is also signed, to prevent tempering.
You could set limited set of other UDRs besides 0.0.0.0 Next hop internet:
UDRs with private IP ranges* as destination without next hop
restrictions
UDRs with public IP range as destination if the next hop type is Internet
*exception is Managed Instance subnet destination that must have next hop type
Virtual network – otherwise the connections between the Managed Instances could be broken.
This constraint will be relaxed or removed in the future so always
check the Azure SQL Managed Instance documentation for the update.

getting a block of public IP subnet from microsoft

Does anyone know if its possible to have my corporate azure account to be assigned a block (e.g. subnet) of azure public IP within a region to make it easier to create firewall rules for my corporate firewall which blocks most outgoing ports.
Our customer does not want anyone sourced inside from the corporate .com account to have access to all 22 and 3389 ports out on the internet, but will limit them to a subnet if we can be assigned a subnet on which we will hang our bastion servers on.
I wouldn't know about blocks of IP's, but you can certainly create a virtual network in which you create all your resources in Azure, and hten configure a firewall in azure, which will have a permanent IP. This can then be used to set up a site-to-site VPN thing between your corporate network and the machines in Azure.
https://azure.microsoft.com/en-gb/services/virtual-network/
For public facing ports, you can add another virtual network card and rest assured that the traffic on one card cannot, in any way pass over to the other, network connected card.
This would also be a better strategy than to set up a range of VM's in Azure with public IP's.

Resources