Your Azure tenant, five doors to close first

Most cloud breaches do not start with a sophisticated attack. They start with a door left open: an admin account without MFA, storage that anyone can reach, a password left in a code repository. These are the first things an attacker will try, and they are also the cheapest to fix.

3 min read

Diagram: five security settings in an Azure tenant, all switched on.

MFA on every admin account

A stolen or guessed password should never be enough to take over your environment. Yet admin accounts without multi-factor authentication are still common, especially old accounts and shared ones.

Enforce MFA with Conditional Access on every account with an admin role. The only exception should be your emergency access accounts, which need their own protection and close monitoring. For the most sensitive roles, go for passkeys or FIDO2 security keys, which stand up to phishing.

Least privilege

The Owner role on a subscription can do anything, including granting itself even more rights. It is often handed out to unblock someone quickly, and never taken back.

Give people the role they need, where they need it: on a resource group rather than the whole subscription, and Contributor or a more specific role rather than Owner. For admin rights that are only needed now and then, Privileged Identity Management grants them on request, for a limited time.

No storage open to the internet

By default, a storage account or database can be reached from the internet until you lock it down. Add a container with anonymous access, or a key that has leaked, and your data is public.

Turn off anonymous access, restrict network access with firewall rules or private endpoints, and use Entra ID authentication rather than shared keys.

Secrets in Key Vault

Connection strings, API keys and passwords end up in code, config files and scripts, because that is the quickest way to get something working. Once committed, a secret stays in the repository history, even if the line is deleted later.

Store secrets in Key Vault and let your applications read them through a managed identity, so there is no password to manage at all. If a secret has already been committed, treat it as compromised: rotate it, rather than just deleting the line.

RDP and SSH closed

A VM with port 3389 or 22 open to the internet is quickly picked up by automated scans, and login attempts soon follow.

Close these ports to the internet. Connect through Azure Bastion from the portal, or use just-in-time access, which opens a port for a single IP address for a limited time.

Where to start

None of these fixes requires a new tool. What they do require is someone to look, decide and follow through. Start with MFA and privileged roles: they protect everything else.

If you want an outside view of your tenant, with clear priorities and an action plan, that is exactly what our security services cover.

Security & identityControlled access and protected secrets, with a zero trust and least privilege approach.

All articles

A project, an overloaded team, an audit? Let's talk.

Reply within two business days, in English, French or Dutch. NDA on request.

[email protected] Send an email