Huawei CloudStatic-verified

A Static Site Where Encrypting the Bucket Would Break It

An OBS bucket serving a static website, published by an OBS-format bucket policy rather than a public-read ACL, so the file list stays private. Encryption is off on purpose: every byte is published deliberately, and an anonymous reader holds no permission on your key, so a key of your own hides nothing and stops the site working.

terraformAlt & Specialty Cloudshuaweicloud

Compare Static Site Hosting across clouds →

huawei-static-sitevizier 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-15 · how we verify

Use it from the registry

terraform · opentofu
module "static_site" {
  source  = "www.iac-bazaar.com/iac-bazaar/huawei-static-site/huaweicloud"
  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

huawei-static-site

A static website served from object storage on Huawei Cloud OBS. Works with Terraform and OpenTofu (>= 1.6), huaweicloud provider >= 1.60, < 2.0.

The website endpoint is plain HTTP on a Huawei domain and no certificate can be put on it. Your own domain over HTTPS means a CDN in front; cdn_origin is the host to point it at.

The bucket ACL stays private and a policy publishes the objects. A public-read ACL on OBS also permits listing, which publishes the name of every file in the bucket.

OBS takes two policy dialects and they are not interchangeable. This module writes the obs format - principal {"ID": "*"}, resource <bucket>/* - and declares policy_format so the wrong one cannot be read as the right one.

Encryption is off, on purpose. Every byte is published deliberately, so a key of your own hides it from nobody, and an anonymous reader holding no permission on that key cannot read the objects at all. This is the one bucket where encryption is the wrong answer.

Everything in the bucket is public, so accept_public_content has to be set before the module will build it.

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

huawei-fgs-function

A FunctionGraph v2 function running as the IAM agency you name, in your VPC when a subnet is given, logging every invocation to the LTS group and stream you name, with plain environment variables in user_data and secrets in encrypted_user_data under your KMS key (which also encrypts the code), fetched from an OBS URL. A ceiling on instances is an input.

View module
Static validatedLive test pending

huawei-app-platform

A CAE environment, application and components. deploy_after_create is off in the API, so a component exists with a source, a runtime and a replica count and serves nothing; it is on here. The runtime list still offers Java8, Nodejs8 and Php7, which the module names and asks about, and 500m of CPU cannot take 4Gi of memory.

View module
Static validatedLive test pending

cloudflare-pages-project

Every branch pushed gets a public preview URL by default, the half-finished pricing page included; an environment variable is readable in the dashboard unless stored as a secret; and the production branch is whatever the repository's default was. Previews limited to the branches you list (every branch by name), each variable marked secret or plain, bindings per environment, and custom domains.

View module
Static validatedLive test pending

tencent-static-site

A COS bucket serving a static website. The public-read ACL that makes the objects readable also lets anyone list the bucket, and file_list_is_public says so; pass a bucket policy to publish the objects alone. redirect_all_requests_to on COS is a protocol rather than a hostname, which is why it is not exposed here.

View module
Static validatedLive test pending

alicloud-static-site

An OSS bucket serving a static website. The ACL stays private and a bucket policy publishes the objects, because a public-read ACL also lets anyone list every file you ever put there. The website endpoint is plain HTTP on an Alibaba domain and no certificate can go on it, so serves_https is an output and it says false.

View module
Static validatedLive test pending

scaleway-static-site

A Scaleway Object Storage bucket serving a static website. A bucket policy here is version 2023-04-17, not the AWS 2012-10-17 that every S3 example carries and Scaleway has deprecated, and the module checks which one you passed. Without a policy the public-read ACL also publishes the file list, which file_list_is_public reports.

View module