gcp-certmanager-can-sign-as-explicit
match (effective permission)
{
"action": "privateca.certificates.create",
"resource_type": "google.privateca.CaPool"
}
where
principal ALSO has EFFECTIVE privateca.caPools.use on the same pool (both required)
emit
| source type | Identity |
|---|---|
| source | <principal> |
| target | <CA pool node (SigningKey)> |
| permissions | privateca.certificates.create privateca.caPools.use |
Narrative
{principal.name} can issue certificates signed by CA pool {capool.name} (privateca.certificates.create + privateca.caPools.use).
Raw rule rules/explicit/gcp-certmanager.yaml
id: gcp-certmanager-can-sign-as-explicit
emits: CanSignAs
applies_to:
- gcp
match_effective_permission:
action: privateca.certificates.create
resource_type: google.privateca.CaPool
where:
- principal ALSO has EFFECTIVE privateca.caPools.use on the same pool (both required)
emit:
source_type: Identity
source: <principal>
target: <CA pool node (SigningKey)>
api_source: "policy evaluation (Policy Analyzer) \u2014 NOT certificates.create itself"
permissions:
- privateca.certificates.create
- privateca.caPools.use
evidence_field: "issuancePolicy (allowed subject/SAN constraints) \u2014 gates forgery"
narrative: '{principal.name} can issue certificates signed by CA pool {capool.name} (privateca.certificates.create
+ privateca.caPools.use).'