gcp-sa-key-create
match (effective permission)
{
"action": "iam.serviceAccountKeys.create",
"resource_type": "google.iam.ServiceAccount"
}
emit
| source type | Identity |
|---|---|
| source | <principal> |
| target | <service account in scope> |
| permissions | iam.serviceAccountKeys.create |
Narrative
{principal.name} can create a private key for {sa.name} (iam.serviceAccountKeys.create), yielding long-lived credentials.
Raw rule rules/derived/gcp/identity-escalation.yaml
id: gcp-sa-key-create
emits: CanCreateCredentialFor
match_effective_permission:
action: iam.serviceAccountKeys.create
resource_type: google.iam.ServiceAccount
emit:
source_type: Identity
source: <principal>
target: <service account in scope>
permissions:
- iam.serviceAccountKeys.create
escalation: Create a downloadable JSON key -> durable offline credential for the SA.
narrative: '{principal.name} can create a private key for {sa.name} (iam.serviceAccountKeys.create),
yielding long-lived credentials.'