{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://cloud.google.com/schemas/binaryauthorization/policy.json", "title": "Google Cloud Binary Authorization Policy", "description": "Schema for a Binary Authorization policy, which defines the rules for deploying container images to Google Cloud environments.", "type": "object", "required": ["defaultAdmissionRule"], "properties": { "name": { "type": "string", "description": "The resource name of the policy" }, "globalPolicyEvaluationMode": { "type": "string", "description": "Whether to enable the global policy evaluation mode", "enum": ["ENABLE", "DISABLE"] }, "admissionWhitelistPatterns": { "type": "array", "description": "Image name patterns that are always allowed to be deployed", "items": { "$ref": "#/$defs/AdmissionWhitelistPattern" } }, "defaultAdmissionRule": { "$ref": "#/$defs/AdmissionRule", "description": "The default admission rule for the policy" }, "clusterAdmissionRules": { "type": "object", "description": "Per-cluster admission rules keyed by cluster resource ID", "additionalProperties": { "$ref": "#/$defs/AdmissionRule" } }, "kubernetesNamespaceAdmissionRules": { "type": "object", "description": "Per-namespace admission rules", "additionalProperties": { "$ref": "#/$defs/AdmissionRule" } }, "kubernetesServiceAccountAdmissionRules": { "type": "object", "description": "Per-service-account admission rules", "additionalProperties": { "$ref": "#/$defs/AdmissionRule" } }, "updateTime": { "type": "string", "format": "date-time", "description": "The time when the policy was last updated" } }, "$defs": { "AdmissionRule": { "type": "object", "description": "An admission rule specifies what action to take when a container image matches the rule", "required": ["evaluationMode", "enforcementMode"], "properties": { "evaluationMode": { "type": "string", "description": "How this admission rule will be evaluated", "enum": ["ALWAYS_ALLOW", "ALWAYS_DENY", "REQUIRE_ATTESTATION"] }, "requireAttestationsBy": { "type": "array", "description": "Resource names of attestors required by this rule", "items": { "type": "string" } }, "enforcementMode": { "type": "string", "description": "The action when a pod creation is denied by the admission rule", "enum": ["ENFORCED_BLOCK_AND_AUDIT_LOG", "DRYRUN_AUDIT_LOG_ONLY"] } } }, "AdmissionWhitelistPattern": { "type": "object", "description": "An image name pattern to allow", "properties": { "namePattern": { "type": "string", "description": "An image name pattern to allowlist, in the form registry/path/to/image" } } } } }