azure-sf-cluster-contributor

derived azure emits CanAdminister

match (effective permission)

{ "action": "Microsoft.ServiceFabric/managedclusters/write", "scope_type": "resource|resourceGroup|subscription" }

where

principal effectively holds Service Fabric Cluster Contributor / Contributor / Owner (or custom role granting Microsoft.ServiceFabric/managedclusters/* or .../clusters/*) at the scope

emit

source typeIdentity
target type*
source<principal>
target<serviceFabric cluster in scope>
permissionsMicrosoft.ServiceFabric/managedclusters/write Microsoft.ServiceFabric/clusters/write

Narrative

{principal.name} has full control of Service Fabric cluster {target.name} (Microsoft.ServiceFabric/managedclusters/*).

Raw rule rules/derived/azure/servicefabric.yaml

id: azure-sf-cluster-contributor
emits: CanAdminister
match_effective_permission:
  action: Microsoft.ServiceFabric/managedclusters/write
  scope_type: resource|resourceGroup|subscription
where:
- principal effectively holds Service Fabric Cluster Contributor / Contributor / Owner (or custom role
  granting Microsoft.ServiceFabric/managedclusters/* or .../clusters/*) at the scope
emit:
  source_type: Identity
  target_type: '*'
  source: <principal>
  target: <serviceFabric cluster in scope>
  permissions:
  - Microsoft.ServiceFabric/managedclusters/write
  - Microsoft.ServiceFabric/clusters/write
  false_positive_note: Service Fabric Cluster Contributor grants full control of the cluster/app/nodeType
    objects but NOT Microsoft.Authorization/*/write and NOT the DATA-plane FabricClient (which needs an
    admin client cert/Entra admin role). It is still sufficient for code execution via applications/write.
  narrative: '{principal.name} has full control of Service Fabric cluster {target.name} (Microsoft.ServiceFabric/managedclusters/*).'
move · open · esc close