Google CloudLive-testedattested

Compute Engine VM (Shielded, private)

A hardened Compute Engine VM on Debian 12 with Shielded VM (Secure Boot, vTPM, integrity monitoring), OS Login for IAM-managed SSH, no external IP by default, and deletion protection on.

terraformGoogle Cloudgcp

Compare Virtual Machines across clouds →

gcp-compute-instancevizier v1.2.0

Verification

Live-tested

Really deployed to a cloud sandbox, verified against its outputs and assertions, then destroyed - with the teardown confirmed.

Conformance

  • Static validation (fmt · validate · tflint)
  • Security scan clean (Checkov)
  • Plan test superseded by live test

Provenance

Functional

  • Live-tested - applied, verified, destroyed

Last verified 2026-06-30 · how we verify

Verify this download

cosign · sha-256

Don't take our word for it. Every release is signed with cosign - check the bytes against our pinned public key before you trust them.

# 1. Our pinned public key - fetch once, trust out-of-band
curl -O https://www.iac-bazaar.com/cosign.pub

# 2. This module's Sigstore bundle
curl -o gcp-compute-instance-1.0.0.sigstore.json \
  https://www.iac-bazaar.com/api/artifacts/gcp-compute-instance/signature

# 3. Verify the tarball you downloaded
cosign verify-blob \
  --key cosign.pub \
  --bundle gcp-compute-instance-1.0.0.sigstore.json \
  gcp-compute-instance-1.0.0.tar.gz
# → Verified OK

# 4. (optional) confirm the checksum too
echo "4587ba1ee95bfe220d185a404427d937fece153741e7a7d09ee8df421e2352f1  gcp-compute-instance-1.0.0.tar.gz" | sha256sum -c

Use it from the registry

terraform · opentofu
module "compute_instance" {
  source  = "www.iac-bazaar.com/iac-bazaar/gcp-compute-instance/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 · attribution

Paste this beside the module in the repository that uses it. The badge is rendered from this artifact's verification record, so it reads live-tested because the record says so, and the link lands on this page.

README.md, GitLab, Gitea
[![IaC Bazaar: live-tested](https://www.iac-bazaar.com/api/artifacts/gcp-compute-instance/badge)](https://www.iac-bazaar.com/catalog/gcp-compute-instance?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

Terraform module 1.0.0, live-tested on IaC Bazaar: [Compute Engine VM (Shielded, private)](https://www.iac-bazaar.com/catalog/gcp-compute-instance?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

```hcl
module "compute_instance" {
  source  = "www.iac-bazaar.com/iac-bazaar/gcp-compute-instance/gcp"
  version = "1.0.0"
}
```

Preview:IaC Bazaar: live-tested

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-compute-instance

A single Compute Engine VM with secure defaults baked in: Shielded VM (Secure Boot + vTPM + integrity monitoring), OS Login for IAM-managed SSH, and no external IP unless you explicitly opt in. Boots Debian 12 on a balanced persistent disk. Works with Terraform and OpenTofu (>= 1.6), Google provider >= 7.0, < 8.0.

What you get:

  • An e2-micro (configurable) instance with a 10 GB pd-balanced Debian 12 boot disk
  • Shielded VM on by default — verifiable boot integrity
  • OS Login enabled via metadata, and project-wide SSH keys blocked by default (block-project-ssh-keys = TRUE)
  • Private by default: no access_config, so no public IP — opt in with enable_public_ip
  • deletion_protection on by default; optional custom service account with scoped access

Requirements

RequirementVersion
Terraform / OpenTofu>= 1.6
hashicorp/google>= 7.0, < 8.0

Upgrade notes

  • block_project_ssh_keys now defaults to true (project-wide SSH keys are blocked via block-project-ssh-keys = TRUE metadata). If you rely on project-wide SSH keys with enable_oslogin = false, set block_project_ssh_keys = false to retain access.

License

Commercial — IaC Bazaar EULA. © IaC Bazaar. Original work (not derived from a third-party module).

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
  • Inputs
  • Outputs
  • Notes

Related modules

Static validatedLive test pending

gcp-compute-image

A custom Compute Engine image from a disk, snapshot, image or raw tarball (exactly one), in a family instances resolve, encrypted with your Cloud KMS key, stored in the location you choose and shared by a compute.imageUser binding. The guest features default to a current distribution image; no family and the Google-managed key are each accepted by name.

View module
Static validatedLive test pending

gcp-os-config-patch

An instance filter that matches nothing patches nothing - the deployment runs on schedule, reports success and touches no host - and reboot_config NEVER installs the kernel and keeps running the old one. Refuses an empty filter, makes all-instances a stated choice because it includes the databases, reboots when the packages need it, and caps the share of a zone patched at once.

View module
Live-tested

gcp-managed-instance-group

A zonal Managed Instance Group built from a hardened Shielded-VM instance template, private by default, with optional CPU autoscaling, autohealing, and zero-downtime rolling template updates.

View module
Static validatedLive test pending

tencent-cvm-instance

A CVM instance in your subnet with login by key pair and no password, ordered security groups, no public address (one by name), the system disk encrypted with your KMS key (the service key by name), the Cloud Workload Protection and Cloud Monitor agents left on, a CAM role when you name one, and API termination refused. Pay-as-you-go by the hour.

View module
Static validatedLive test pending

aws-lightsail-instance

A Lightsail instance is created with 22 and 80 open to every address; its public address changes when it stops unless a static IP is attached, and every DNS record pointing at it is then wrong; and automatic snapshots are off. The port list replaced by your rules with SSH from anywhere accepted by name, a static IP attached, and the daily AutoSnapshot add-on on at the hour you choose.

View module
Static validatedLive test pending

scaleway-instance

A Scaleway instance on a Private Network with a required security group (the project default allows everything inbound), no public address unless a flexible IP is accepted by name, the project's SSH keys and no password, a Block Storage root volume deleted with the instance, cloud-init, and protection from deletion (off by name).

View module