azure-aci-contributor

derived azure emits CanAdminister

match (effective permission)

{ "action": "Microsoft.ContainerInstance/containerGroups/write", "scope_type": "resource|resourceGroup|subscription" }

where

principal effectively holds Azure Container Instances Contributor (Microsoft.ContainerInstance/containerGroups/*) / Contributor / Owner at the scope

emit

source typeIdentity
target type*
source<principal>
target<containerGroup in scope>
permissionsMicrosoft.ContainerInstance/containerGroups/write

Narrative

{principal.name} has full control of container group {target.name} (Microsoft.ContainerInstance/containerGroups/*).

Raw rule rules/derived/azure/aci.yaml

id: azure-aci-contributor
emits: CanAdminister
match_effective_permission:
  action: Microsoft.ContainerInstance/containerGroups/write
  scope_type: resource|resourceGroup|subscription
where:
- principal effectively holds Azure Container Instances Contributor (Microsoft.ContainerInstance/containerGroups/*)
  / Contributor / Owner at the scope
emit:
  source_type: Identity
  target_type: '*'
  source: <principal>
  target: <containerGroup in scope>
  permissions:
  - Microsoft.ContainerInstance/containerGroups/write
  false_positive_note: containerGroups/* grants full control of the group (write/exec/start/logs) but
    NOT Microsoft.Authorization/*/write, and attaching a user-assigned MI still needs the separate userAssignedIdentities/assign/action.
    Still sufficient for code execution via exec or redeploy.
  narrative: '{principal.name} has full control of container group {target.name} (Microsoft.ContainerInstance/containerGroups/*).'
move · open · esc close