Azure Backstage Plugin
You install an azure backstage plugin by adding the package to your portal app. Then you link it to your cloud account with a service key or role. Teams use this setup to show build runs, code repos, and cloud resources in one view. Still, giving that service role wide permissions creates risk across your whole cloud account. How the azure backstage plugin works Backstage acts as a central catalog for all your software services and tools. When you add the plugin, the portal talks to Microsoft
Backstage Security Plugins + Azure RBAC: the complete guide
Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.
You install an azure backstage plugin by adding the package to your portal app. Then you link it to your cloud account with a service key or role. Teams use this setup to show build runs, code repos, and cloud resources in one view. Still, giving that service role wide permissions creates risk across your whole cloud account.
How the azure backstage plugin works
Backstage acts as a central catalog for all your software services and tools. When you add the plugin, the portal talks to Microsoft cloud APIs to fetch data. It pulls build status, repo lists, and deployment logs right into the team dashboard.
To make this work, you must set up an identity in Microsoft Entra ID. Most teams create an app registration or a managed identity for the portal server. You then give this identity read roles on your cloud subscriptions and dev projects. The portal backend holds the secret key or token in its local settings file.
Next, you map your software catalog items to your cloud projects using simple tags. Each service file in your repo gets a tag that points to its project name. When an engineer opens a service page, the backend uses its stored key. It calls the cloud API and shows the latest build runs and resource state.
What the native setup solves and where it falls short
This native setup solves the problem of jumping between many browser tabs every day. Developers do not need to log into the cloud console just to check a build. New team members can find project links, docs, and status pages in one place. It also keeps basic cloud viewers out of the main cloud admin portal.
Yet this setup only controls how the portal reads status data from the cloud. It does not solve how engineers run real commands against live cloud servers or databases. When a build fails, a developer still needs to fix the broken service directly. They often log into a database or run a cloud shell script from their laptop.
Cloud roles decide who can log in, not what commands they run once inside. If you give an engineer a role to fix a database, they get full table rights. They can run a bad delete query or read tables with private user emails. Also, shared portal tokens can leak if someone reads the server settings file.
Backstage Security Plugins + Azure RBAC: architecture patterns and best practices
Continue reading? Get the full guide.
Free. No spam. Unsubscribe anytime.
Securing cloud actions beyond the portal view
A developer portal is great for viewing state, but safe operations need deeper controls. Teams often add action buttons in the portal to trigger cloud tasks or scripts. If those tasks use one big admin role, every user shares that same high power. You lose track of which person ran a specific command on a target server.
To fix this gap, you must separate catalog viewing from live database and server sessions. Keep the portal token restricted to simple read roles for build and repo status. For actual database queries or server fixes, check every single command in flight. Mask sensitive fields like phone numbers or card numbers so results rewrite them before display.
This approach keeps your portal clean while locking down real changes to production systems. Engineers get the fast dashboard they want, and security teams get clear audit logs. Every query or shell command ties back to a real user identity, not a shared app key.
Govern statements and responses across databases and APIs
Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev runs beside each supported service as an open-source proxy, a sidecar for your database or API.
First, hoop.dev guardrails block banned queries before they run. Then hoop.dev data masking rewrites matched sensitive values in responses in memory. The audit trail records every statement and verdict per resource. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.
Frequently asked questions
What permissions does the portal need in Microsoft Entra ID?
Give the portal app read-only roles on the specific projects and subscriptions it tracks. Avoid giving it owner or contributor roles across your entire cloud tenant.
Can developers trigger cloud builds from the portal catalog?
Yes, if you give the backend identity permission to start builds in your project. Be careful, as anyone with portal access might trigger runs using that shared role.
How do we protect database data when engineers debug issues found in the portal?
Do not store database admin keys inside the portal settings. Route engineer sessions through a tool that checks queries and rewrites emails or card numbers in results.
Related guides
In this post