Skip to content
All services

Enterprise security and scaling

No stored keys, least privilege everywhere, backups you have actually restored.

For teams that need to pass an audit, win an enterprise customer or simply sleep at night. I replace stored secrets with identities, enforce guardrails as code, isolate tenants and data, and prove that backups and restores work, on platforms that keep scaling as you grow. I have done this in banking, automotive, the public sector and SaaS.

Sounds familiar?

  • Cloud keys and passwords live in CI variables, config files or someone's laptop
  • Everyone is owner on the subscription because fine-grained roles were never set up
  • Backups exist, but nobody has ever restored one
  • An enterprise customer or auditor asks for evidence you cannot produce quickly

How I work on it

  1. 1

    Identities instead of secrets

    Pipelines reach the cloud through OIDC, workloads use managed identities, and what must remain a secret lives in Key Vault and reaches Kubernetes through External Secrets. No long-lived keys in repositories or CI.

  2. 2

    Least privilege, enforced as code

    Entra ID groups, RBAC and Azure Policy are defined in Terraform or Bicep, so every team gets the same baseline and drift shows up in a pull request instead of an incident.

  3. 3

    Isolate tenants and data

    Row-level security in the database, strict Dev, Test and Prod separation, and tenant isolation on shared platforms, so one customer can never see another customer's data.

  4. 4

    Backups you have restored

    Encrypted backups several times a day to separate storage, and a nightly restore test into a twin environment, so recovery is a routine, not a hope.

  5. 5

    Scale without surprises

    Autoscaling, outside-in checks every 10 minutes and alerts on what customers actually feel. Signed, staged releases with smoke tests after every deploy keep changes fast and safe.

No stored keys, isolated data, backups proven every night.
Secure delivery path: code reaches a GitHub repository through pull requests only; GitHub Actions runs tests, lint and a migration dry-run and reaches the cloud through OIDC with no stored keys; each pull request gets a staging preview; production runs on Postgres with row-level security; synthetic checks and alerts watch customers' experience; encrypted backups go to object storage several times a day and are restored nightly into a twin project.

What you get

  • A security review of identities, secrets, network and data, ranked by risk
  • OIDC and managed identities in place of stored keys
  • RBAC, Azure Policy and security baselines in Terraform or Bicep
  • Encrypted backups with an automated restore test and alerts
  • Evidence for auditors and enterprise customers, generated from the code

Questions buyers ask

Where do you start?

With a short review of identities, secrets, network and data, ranked by risk. The first fixes are usually stored keys and over-broad roles, because they close the biggest gaps with the least effort.

Does this help with ISO 27001 or similar audits?

Yes. Controls defined as code produce their own evidence, and I have built a tool that keeps ISO 27001 controls and evidence in one place. I am not an auditor, but I make the technical part easy to prove.

Will security slow our releases down?

Not when it is built into the pipeline. For banking apps used by millions, release cycles became about 40% faster, in one of the most regulated industries there is.

Do you work on Azure only?

No. The same principles apply on AWS, Google Cloud, Kubernetes and your own data center: identities instead of keys, least privilege as code, isolated data and tested restores.

How do you price it?

After a 30-minute call: a fixed scope for the review and the first fixes, or a few days per month as your platform security lead.

    Get in touch

    Tell me what you're building. I'll reply within 1–2 business days.

    Dominik Heinrich
    Company
    MADO Consulting

    Available worldwide, remote. On-site on request, depending on the country.

    I reply within 1–2 business days. Free slots: see the calendar

    Opens Calendly's booking calendar here. Loading it sends data to Calendly (see Impressum).