Azure basic IP address SKU is being Retired – Here’s what you need to know

Let’s walk through the steps you need to take to determine whether you're affected by this change - and how to address it. Read more
23 Jul, 2025

Introduction

Back in 2022, Microsoft announced the retirement of the Basic IP address SKU in Azure, effective 30 September 2025. Now, nearly three years later, that date is quickly approaching – and if you haven’t yet checked whether your environment is affected, now is the time to start.

This change requires action from anyone who has deployed a Basic Public IP address, or any resource types that use it by default – such as Load Balancers, VPN Gateways, or ExpressRoutes.

The good news? Microsoft provides an official upgrade path for most of these resources. But your first step should be to identify which of your deployments are affected.

To help with this, I’ve created a simple script that exports a list of affected resources. Combine this with Microsoft’s official upgrade guidance to ensure nothing is missed – and avoid any unexpected downtime.

What will be affected

Although the retirement concerns Public IP addresses, it will impact multiple resource types – each with its own specific upgrade path.

The resource types can be seen below in the table, included the upgrade path for the specific resource type.

Resource using Basic SKU public IP addressesDecision path
Virtual MachineUse scripts or manually detach and upgrade public IPs. For standalone virtual machines, you can use the upgrade script or for virtual machines in an availability set use this script.
Virtual Machine Scale SetsReplace basic SKU instance public IP addresses with new standard SKU.
Load Balancer (Basic SKU)New Load Balancer SKU required. Use the upgrade script Upgrade Basic Load Balancer to Standard SKU to upgrade to Standard Load Balancer.
VPN Gateway (using Basic IPs)VPN Gateway migration is required. All non-AZ SKUs become AZ SKUs. Follow the VPN Gateway migration guidance to upgrade to Standard SKU public IPs.
ExpressRoute Gateway (using Basic IPs)ExpressRoute Gateway migration is required. Follow the ExpressRoute Gateway migration guidance
Application Gateway (v1 SKU)New AppGW SKU required. Use this migration script to migrate from v1 to v2.
Azure Databricks (using Basic IPs)For ephemeral workloads, Standard SKU public IP addresses are automatically deployed as virtual machines (VMs) cycle out through regular usage attrition with new VMs. For long running workloads, we recommended manually restarting the compute resources which replaces existing Basic IPs with Standard IPs.

Source: Upgrade guidance for Basic SKU – Microsoft Learn

How to find the affected resources

Before you can upgrade your resources, you need to find them, but the good news is that a simple script can help you with that.

The script queries the Azure Resource Explorer, for all public IP addresses, and returns the resources that are in the basic sku.

The output will contain the following info, which can be shown as a HTML file or exported to csv, and let you work with them.

HeaderDescription
public_ipThe name of the Public IP resource
IpAddressThe IP address assigned to the resource
ipskuresource type – all of these should show as Basic, since that is what we filter for
locationDatacenter location
resourceGroupresource group of the Public IP resource
subscriptionIdSubscription ID of the Public IP resource
attachedNameThe name of the resource, which the IP is assigned to. Could be a NIC or Private endpoint
attachedRGThe resource group, that the attached resource is located in
attachedTypeWhat type of resource the Public IP is attached to
attachedToThe ID of the resource that the Public IP is attached to. I left this ID here, since it will provide you with all the details, and is usefull in cases where you wish to use the output to as source for a script.

When you run the script, it will display the number of IP addresses that was found in the terminal – this includes both Basic and Standard SKU – however, only the basic SKU ip addresses will be exported to HTML, CSV or both – depending on the flags provided.

The reason for this is to provide a failsafe – in short, if you have any ip addresses in Azure, then the script should always return some results. If it doesn’t, you most likely need to review your permissions.

The default behaviour of the script is to generate a HTML file, and show an overview of the export

If you use the default behavior, the script will open an HTML file upon completion. The file includes the following headings and layout. If the file is empty, it means no Basic SKU IP addresses were found.

If you prefer to receive the results as a .csv file, you can use the -exportpath flag, followed by the desired file path – Please note: the path needs to include the filename.

If you don’t with the HTML export, simply add the “-openbrowser” with a $false flag.

Prerequisites

You need the following Prerequisites to run the script:

  • Powershell core 6 or 7
  • Tenant id
  • Installed Azure AZ modules – if you are unsure about the modules, please visit the blog post explaining the different Azure Powershell modules
  • Reader permissions for all subscription that you wish to check.

The script can be downloaded from Github

Find Basic IP adresses

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

About Martin Meiner Tästensen

I am a positive minded It professional, with more than 10 years of experience in various IT roles. I love to build, create and see how an idea can become a system affecting hundreds or thousands of employees – and at the same time try to make the system work as smooth as possible to give the best end user experience. My Primary focus for the first decade of my career has been towards classic infrastructure where I worked with a deep knowledge level on both network and servers – where the latter has ranged from physical servers, over OS layer and all the way to the services installed on the server.