azure-aci-logs-secret
match (effective permission)
{
"action": "Microsoft.ContainerInstance/containerGroups/containers/logs/read",
"scope_type": "resource|resourceGroup|subscription"
}
emit
| target type | Credential |
|---|---|
| source | <containerGroup> |
| target | <Credential> |
| permissions | Microsoft.ContainerInstance/containerGroups/containers/logs/read |
Narrative
{principal.name} can read container logs of {group.name} (logs/read), which may leak secrets printed by the workload.
Raw rule rules/derived/azure/aci.yaml
id: azure-aci-logs-secret
emits: ExposesCredential
match_effective_permission:
action: Microsoft.ContainerInstance/containerGroups/containers/logs/read
scope_type: resource|resourceGroup|subscription
optional_permission: Microsoft.ContainerInstance/containerGroups/containers/attach/action
emit:
target_type: Credential
source: <containerGroup>
target: <Credential>
permissions:
- Microsoft.ContainerInstance/containerGroups/containers/logs/read
note: Secrets printed to stdout/stderr by the workload are readable via logs/read or the attach output
stream.
false_positive_note: Only a real exposure if the workload actually emits credentials to stdout; mark
POTENTIAL when unverified. Not an execution primitive on its own.
narrative: '{principal.name} can read container logs of {group.name} (logs/read), which may leak secrets
printed by the workload.'