Tencent CloudStatic-verified

A WAF That Tells You the Origin Can Still Be Reached Around It

A domain on a Tencent Cloud SaaS WAF, rules set to block, with block and allow lists. It reads back the CNAME, the mode the WAF reports and the addresses the WAF forwards from, so the origin can refuse everything else. An allowlist here lets addresses through; it does not make a site private. The client IP is taken from the connection unless you say a proxy sits in front.

terraformAlt & Specialty Cloudstencentcloud

Compare WAF & Edge Security across clouds →

tencent-wafvizier v1.2.0

Verification

Static-verified

Passed: 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-16 · how we verify

Use it from the registry

terraform · opentofu
module "waf" {
  source  = "www.iac-bazaar.com/iac-bazaar/tencent-waf/tencentcloud"
  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.

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

tencent-waf

A web application firewall domain on Tencent Cloud WAF (SaaS). Works with Terraform and OpenTofu (>= 1.6), tencentcloud provider >= 1.81.140, < 2.0.

The origin still answers anyone who knows its address. Whoever finds the origin's IP goes around the WAF and skips every rule. waf_egress_ips is read back from the WAF: the origin's security group should accept web traffic from those addresses and nothing else.

Nothing is protected until DNS points at the WAF. Adding a domain moves no traffic; cname is the target, read from the WAF after the domain exists.

Observe logs an attack and lets it through. rule_engine_mode defaults to block, and rule_engine_mode_observed reports what the WAF says the mode is, not what was requested. The provider's destroy for the mode does nothing, so removing it does not reset the mode.

An allowlisted address is let through, not the only one let in. The allowlist does not make a site private.

The client IP is whatever proxy_in_front says it is. X-Forwarded-For is right behind a CDN and wrong without one, because a client writes that header itself. The default reads the connection's own address.

HTTPS uses a certificate by ID, so no private key passes through the plan or lands in state.

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

Static validatedLive test pending

tencent-bastion

A Tencent Bastion Host deployment. cidr_block is a range the service claims inside your VPC and an overlap is found by whatever stops working, not by the plan. resource_node is both the bill and the ceiling: registering more assets than you bought fails at registration, months later. time_unit is months and nothing else.

View module
Static validatedLive test pending

tencent-cam-role

A CAM role assumable by the services or root accounts you name and nothing else (a wildcard principal is refused), console login off because a role is for workloads, a custom policy written from your statements, the preset policies you name attached (AdministratorAccess and any *FullAccess policy by name), and a session ceiling of an hour.

View module
Static validatedLive test pending

tencent-customer-identity

A Tencent CIAM user store and its groups. The provider exposes the store and nothing about how a customer signs in: login methods, password rules, MFA and social providers are console-only and invisible to Terraform, which configures_authentication reports. The logo appears on the customer sign-in page, so it must be HTTPS.

View module
Static validatedLive test pending

tencent-security-posture

A CSIP risk scan. Every setting in this API is an integer and 0 means a full scan in one field, a periodic task in another and off in a third, so the module takes words and writes the numbers. A full scan is an active probe of production and weakpass attempts passwords, so both are asked for by name; without configrisk there are no posture findings at all.

View module
Static validatedLive test pending

tencent-security-group

Rules are ordered and the first match wins, so an ACCEPT from 0.0.0.0/0 anywhere in the list admits everything from that line down; one rule-set resource replaces the whole list on every apply; and SSH from everywhere is the first rule offered. Your rules in order with an explicit DROP appended, SSH from a /0 refused unless accepted, egress open until rules narrow it.

View module
Static validatedLive test pending

tencent-network-firewall

Address templates and edge policies in a declared order, the intrusion prevention mode set to block rather than the observation mode it ships in, and the edge firewall switch turned on for the addresses you name. Writing policies and leaving that switch off produces a complete, correct and entirely inactive rule set, so naming no addresses is refused here.

View module