Only Images Somebody Vouched For Get to Run
DRYRUN_AUDIT_LOG_ONLY admits the image and writes a line about it while the console shows the policy as configured. ALWAYS_ALLOW is the other way to have nothing: a valid, enforced policy that admits everything. Both have to be right, so one output reports over both.
Verification
Static-verifiedPassed: validated and lint-clean (provider-schema-validated for AWS/Azure/GCP; Terraform-language lint elsewhere).
Conformance
- Static validation (fmt · validate · tflint)
- No applicable security policies for this provider
- Plan tests (mocked: validation rules · outputs)
Provenance
- SHA-256 checksum
- Signature (pending)
Functional
- Live test pending (no cloud run yet)
Last verified 2026-09-13 · how we verify
Use it from the registry
terraform · opentofumodule "binary_authorization" {
source = "www.iac-bazaar.com/iac-bazaar/gcp-binary-authorization/gcp"
version = "1.0.0"
}Needs a registry token from /account/tokens. The module itself is free; the account is what identifies you. Full setup: registry docs.
Cite it in your README
badge · attributionPaste this beside the module in the repository that uses it. The badge is rendered from this artifact's verification record, so it reads static-verified because the record says so, and the link lands on this page.
[](https://www.iac-bazaar.com/catalog/gcp-binary-authorization?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
Terraform module 1.0.0, static-verified on IaC Bazaar: [Only Images Somebody Vouched For Get to Run](https://www.iac-bazaar.com/catalog/gcp-binary-authorization?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
```hcl
module "binary_authorization" {
source = "www.iac-bazaar.com/iac-bazaar/gcp-binary-authorization/gcp"
version = "1.0.0"
}
```Preview:
Inputs & outputs
Create a free account to read this module's contract
The declared contract - every input name, type, default and description, plus every output - is shown to signed-in accounts, not to anonymous visitors.
A free account sees the contract of every module in the catalogue. There is no subscription and nothing to buy - the modules are free to download, and they run under Vizier.
Documentation
gcp-binary-authorization
Only images somebody vouched for get to run. Works with Terraform and
OpenTofu (>= 1.6), google provider >= 6.0, < 7.0.
enforcement_mode = DRYRUN_AUDIT_LOG_ONLY admits the image and writes a line
about it. The policy is attached, the console shows it as configured, the
audit log fills with violations - and the unsigned image is running in
production the whole time. Dry run is the right way to introduce this policy
and the wrong way to leave it.
evaluation_mode = ALWAYS_ALLOW is the other way to have nothing. It is a
valid, enforced policy that admits everything, so the enforcement mode can be
entirely correct and the policy still check nothing at all. Both have to be
right, which is why actually_blocks is a single output over both rather than
two you have to combine yourself.
admission_whitelist_patterns are exemptions, and a wildcard is a blanket
one. Patterns like gcr.io/my-project/base/* are how base images and sidecars
get in; a pattern of * admits every image from everywhere while the policy
still reports as enforcing. A precondition refuses it.
global_policy_evaluation_mode = ENABLE also admits Google-maintained
images without your attestations. That is usually wanted, because system
containers have to start - but it is a set of images you did not sign and did
not list, and it is worth knowing it is there.
Smaller things: a precondition refuses REQUIRE_ATTESTATION with no
attestors, which would block every deployment rather than none; and
clusters_not_enforcing lists per-cluster overrides that admit unsigned images
regardless of what the default rule says, since a dev-cluster exception is
exactly the kind of thing that quietly outlives its reason.
Verification
Static validation runs tofu fmt, init, validate, tflint and checkov.
This module has not yet had a live test, so it is published as statically
validated with its live test pending and does not carry the live-tested mark.
Usage code & full reference need an account
The complete copy-paste usage, the full input/output reference, and operational notes are free with an account - shown here and bundled in the download. Sign in and this section fills in.
- Usage
Related modules
gcp-firewall-policy
A global network firewall policy exists independently of any network; an association puts it in the path, and a policy with a hundred rules and none governs nobody while rendering as fully configured. enable_logging defaults to false on every rule, so a deny that fires leaves no evidence. Refuses a policy with no network, logs every rule unless told not to, and counts the disabled ones.
gcp-service-perimeter
spec is the dry-run configuration and status is the enforced one - two blocks of the same shape, and a perimeter with only a spec is evaluated on every request, logs violations, and blocks nothing. Empty restricted_services is the other way to have none: the perimeter exists, covers the projects, and governs no API.
gcp-dlp
Sensitive Data Protection on a schedule: an inspection template naming the detectors and a weekly trigger over a bucket or a BigQuery table, sampling ten percent of each file, scanning only what changed since the last run, with findings written to your dataset without the matched values and a summary sent to Security Command Center. A full scan, billed per byte, is accepted by name.
gcp-recaptcha
A key with a testing score returns that score for every assessment, bots included - right for staging and, on a production key, a filter that filters nothing; allow_all_domains lets any site consume your assessments against your quota. Testing mode refused without acceptance, domains required on web keys, invisible scoring by default; only a backend assessment call turns a token into a decision.
gcp-secure-web-proxy
A gateway with no rules allows nothing, and a session matcher of true is an open proxy to the internet; the gateway needs a proxy-only subnet in the region that is yours to make; and without TLS inspection the proxy sees the SNI hostname and nothing inside. Rules built from a URL list of your hosts, allow-all accepted by name only, outputs that say what is allowed and that TLS is not inspected.
gcp-cloud-ids
Creating the endpoint creates no packet mirroring policy, so an endpoint with nothing mirrored is provisioned, billed by the hour, shown with a green check and has never seen a packet. The mirroring policy is created with it and refused when it mirrors nothing. Cloud IDS detects and never blocks; blocks_traffic is an output that is always false.