Azure Storage: GA Support for Entra ID and RBAC in Supplemental APIs

On 26 August 2025, Microsoft announced the general availability (GA) of Entra ID authentication and role-based access control (RBAC) for several supplemental Azure Storage APIs. This update improves security and gives administrators more precise control over sensitive operations such as managing container, queue, and table access permissions.

What has changed

The following APIs now support Entra ID and RBAC:

  • GetAccountInfo
  • GetContainerACL / SetContainerACL
  • GetQueueACL / SetQueueACL
  • GetTableACL / SetTableACL

These APIs now support OAuth 2.0 authentication via Entra ID.
A key change is the way error responses are returned:

  • Before: using OAuth without the right permissions resulted in 404 (not found).
  • Now:
    • 403 (forbidden) is returned when OAuth is used but the caller does not have the required permission (for example, Microsoft.Storage/storageAccounts/blobServices/getInfo/action for GetAccountInfo).
    • 401 (unauthorised) is returned for anonymous requests.
    • 404 (not found) is still possible if the resource itself does not exist.

If your application logic depends on the old 404 behaviour, you should update it to handle both 404 and 403 responses. Microsoft also recommends not relying on error codes to detect unsupported APIs but instead following the Entra ID authorization guidance.

Why this matters

  • Improved security – no more reliance on shared keys.
  • Granular access – assign only the necessary permissions.
  • Consistent responses – OAuth error codes now match industry standards.
  • Application impact – developers may need to update their code to support the new response model.

Continue reading “Azure Storage: GA Support for Entra ID and RBAC in Supplemental APIs”

How to Troubleshoot High Memory Pressure on an Azure VM Using Performance Diagnostics

Recently, I had to troubleshoot a case of performance degradation on an Azure VM. The key symptom was high memory pressure, which in Azure means the system is under heavy strain to fulfill memory requests — often leading to lag, paging, and slow performance.

To get to the root cause, we used Azure Performance Diagnostics (PerfInsights) — a powerful and easy-to-use troubleshooting tool. Here’s how you can install and use it from the Azure Portal, without needing to log in to the VM.

Continue reading “How to Troubleshoot High Memory Pressure on an Azure VM Using Performance Diagnostics”

Enable OpenTelemetry in Azure Functions: The Easiest Way via Azure Portal

Good news! As of June 2025, OpenTelemetry is now in preview for Azure Functions. If you want basic observability without writing code or installing libraries, you can now enable distributed tracing directly from the Azure Portal.

This quick guide shows the simplest way to enable OpenTelemetry in Azure Functions using built-in features — no NuGet packages or custom code needed.


What You Need

  • An existing Azure Function App (v4)

  • Application Insights already enabled (most new Function Apps have this by default)


Continue reading “Enable OpenTelemetry in Azure Functions: The Easiest Way via Azure Portal”

Introducing Azure Private Subnets: Enhancing Security by Disabling Default Outbound Access

Azure Networking Tips & Techniques - Part 1

Azure recently announced the general availability of Private Subnet, a new feature that allows you to disable the implicit outbound Internet connectivity for virtual machines in a subnet. In this blog post, we’ll cover:

  1. What Azure Private Subnets are and why they matter

  2. Key benefits of disabling default outbound access

  3. Step-by-step instructions to configure a private subnet via the Azure Portal

  4. Verifying that default outbound has been disabled


What Is an Azure Private Subnet?

Traditionally, when you create a subnet in an Azure Virtual Network (VNet) without any explicit outbound connectivity (such as a NAT gateway, Public IP, or Load Balancer), Azure automatically provides a default outbound access IP for those VMs. While this is convenient, it introduces an implicit egress path—VMs can communicate with public endpoints without you having explicitly configured any egress resources.

A Private Subnet in Azure is simply a subnet where this default outbound access is turned off. Consequently:

  • Any VM deployed within that subnet cannot reach the Internet by default.

  • You must explicitly configure an alternative egress mechanism if VMs need outbound connectivity (e.g., NAT Gateway, Standard Load Balancer, Firewall, or a Public IP assigned directly to the NIC).

By removing the implicit outbound IP, Azure Private Subnets enforce a “zero trust” approach: no VM can communicate externally until you grant it an explicit, auditable path.


Why Disable Default Outbound Access?

  1. Secure by Default
    Default outbound IPs are not customer-owned and can change unpredictably. By disabling implicit egress, you ensure VMs only send traffic externally when you explicitly allow it, reducing your attack surface.

  2. Prevent Data Exfiltration
    In regulated or highly sensitive environments (for example, PCI-DSS or HIPAA workloads), any unsolicited outbound route can pose compliance or security risks. Private Subnets eliminate unexpected data exfiltration channels.

  3. Encourage Explicit Egress Configuration
    When default outbound is disabled, you must provision a known, managed egress mechanism (like a NAT Gateway), which can be tightly monitored for logging, analytics, and cost control. This “explicit-over-implicit” model aligns with best practices for cloud network security.


Continue reading “Introducing Azure Private Subnets: Enhancing Security by Disabling Default Outbound Access”

Azure Resource Locks – The One Feature You’re Probably Not Using (But Should Be)

Accidental deletion or modification of critical resources in Azure is more common than most teams would like to admit. And unlike on-prem environments, where layers of approvals or access barriers might slow someone down, Azure’s agility can sometimes be its own worst enemy — especially when production workloads are one click away from disappearing.

Enter: Azure Resource Locks — your environment’s seatbelt.

What Are Azure Resource Locks?

Azure Resource Locks are a built-in feature that allow you to restrict operations on resources, resource groups, or subscriptions. These locks act as a last line of defense — even if someone has Contributor or Owner permissions, a lock will block unwanted actions like deletion or configuration changes.

Continue reading “Azure Resource Locks – The One Feature You’re Probably Not Using (But Should Be)”