azure-func-appsettings-read

derived azure emits CanReadSecret

match (effective permission)

{ "action": "Microsoft.Web/sites/config/list/Action", "scope_type": "resource|resourceGroup|subscription" }

emit

source<principal>
target<app settings + connection strings of the function app>
permissionsMicrosoft.Web/sites/config/list/Action

Narrative

{principal.name} can read app settings + connection strings of {target.name} (config/list/Action), exposing embedded secrets.

Raw rule rules/derived/azure/functions.yaml

id: azure-func-appsettings-read
emits: CanReadSecret
match_effective_permission:
  action: Microsoft.Web/sites/config/list/Action
  scope_type: resource|resourceGroup|subscription
emit:
  source: <principal>
  target: <app settings + connection strings of the function app>
  permissions:
  - Microsoft.Web/sites/config/list/Action
  note: config/list returns decrypted appsettings + connectionStrings, often holding storage keys, SQL,
    Service Bus, Key Vault refs.
  false_positive_note: config/appsettings/read (ARM) returns settings but may mask Key Vault references;
    config/list/Action returns resolved values. Emit ContainsSecret only for settings that actually carry
    credentials.
  narrative: '{principal.name} can read app settings + connection strings of {target.name} (config/list/Action),
    exposing embedded secrets.'
move · open · esc close