RELOPS-2520: locked-down on-demand VMs for Desktop Integrations - #324
Merged
Conversation
markcor
force-pushed
the
RELOPS-2520-desktop-integrations-vms
branch
2 times, most recently
from
August 24, 2026 17:40
8e28566 to
20df79d
Compare
Desktop Integrations need to spin up short-lived VMs to reproduce bugs and validate patches across operating systems. Rather than the subscription-scope Contributor that other VM-using teams hold, this confines them to a single resource group in FF Non-CI. - rg-west-us-desktop-integrations, the only place the group can create anything - fx-nonci-desktop-integrations-vm-operator, an RG-scoped custom role covering the full VM lifecycle. Setting scope to the RG pins assignable_scopes there, so the role cannot be assigned elsewhere. - fx-nonci-desktop-integrations-browse, seven subscription-scope reads so the portal can render the subscription. Narrower than built-in Reader. DI build from Marketplace images to match real-world environments, so no access to the RelOps gallery is granted. Marketplace terms are read-only: term-gated or paid offers need RelOps to accept terms for that offer. Escalation is blocked by omission: no Microsoft.Authorization writes, no ManagedIdentity/*/assign/action, no virtualNetworkPeerings/write. All RBAC is bound to the group, never to individual users. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
markcor
force-pushed
the
RELOPS-2520-desktop-integrations-vms
branch
from
August 24, 2026 17:45
20df79d to
258150e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RELOPS-2520 — Desktop Integrations need to spin up short-lived VMs to reproduce bugs across OSes.
Other VM-using teams hold
Contributorat subscription scope. This confines DI to one resource group instead.rg-west-us-desktop-integrationsfx-nonci-desktop-integrations-vm-operatorfx-nonci-desktop-integrations-browseGroup:
Desktop Integrations VMs—iholmes@,aborondo@,cdupuis@,ahabibi@(manager),markco_test@. All RBAC binds to the group, never to individuals, so membership changes are one line interraform.tfvars.Apply order matters:
azure_fx_noncifirst, thenazure_ad. A role definition can't be scoped to an RG that doesn't exist yet.Review notes
scopeto the RG pinsassignable_scopesthere — it can't be assigned elsewhere.Microsoft.Authorizationwrites, noManagedIdentity/*/assign/action, novirtualNetworkPeerings/write.networkSecurityGroups/write, so DI can open RDP/SSH to0.0.0.0/0inside their own RG.Verified:
validate+fmtclean, all 49 action strings checked against the live AzureproviderOperationsAPI, no name collisions, plans run against real state.terraform plan—azure_fx_nonci: 1 to add, 0 to change, 0 to destroyterraform plan—azure_ad: 10 to add, 0 to change, 0 to destroyRebased onto
337986aafter #325 removedsplunk.tf; this branch is now pure additions.🤖 Generated with Claude Code