30-minute quickstart¶
This is the fast path from zero to Venturi is ingesting my data. It works for AWS, GCP, or Azure: the shape is identical; only the values and the module directory change.
The whole thing in one sentence
Deploy one read-only Terraform module, prove it’s read-only with the bundled
verify.sh, and send Venturi the output it prints.
Choose your deployment mode first
Venturi runs in two modes with one identical contract: the SaaS tier (Venturi-operated, single-tenant, residency-pinned; the flow on this page) and a self-hosted in-VPC data plane (arranged with your onboarding contact; same steps, your own hosts). See Deployment modes. Hands-on time is 15–30 minutes either way, plus two short email round-trips and up to one business day for ingestion confirmation.
Before the clock starts¶
Have these ready (full checklist on Before you begin):
- Terraform ≥ 1.5 and your cloud CLI installed and authenticated (
aws/gcloud/az). - Admin-level access in the target account/project/subscription (you’ll create an IAM role / service account / service principal).
- The onboarding module for your cloud, from
infra/<cloud>/onboarding/in the platform repository (source access is provided during onboarding). - An email thread open with
contact@venturi.systems, with your cloud-specific values already in hand (Step 1): request them before you start the clock.
What the 30 minutes covers
The 30-minute budget is your hands-on work: deploy, verify, send. It does not include waiting on the Step 1 email reply from Venturi. Request those values ahead of time so the reply is in your inbox when you begin.
Target-state: a file-first path to the same milestone
The onboarding objective this page is measured against also admits a variant that reaches the first attribution record by uploading one provider export file and connecting nothing. That path is specified but not shipped, so it is not an option today: deploying the read-only connector below is currently the only way through. See File import for the specified contract.
Step 1: Get your values from Venturi (before the clock starts)¶
Email contact@venturi.systems telling us which cloud you’re connecting.
On first contact Venturi also creates your tenant and sends the
account-team handoff (your dashboard host, admin invitation, and where domain
claiming and SSO setup happen later). The reply
includes the cloud-specific values you’ll paste into Terraform:
venturi_account_id: the AWS account Venturi assumes the role from.external_id: a per-customer string for thests:ExternalIdcondition (confused-deputy mitigation).
wif_issuer_uri: Venturi’s OIDC issuer URL.wif_allowed_subjects: the exact OIDC subject(s) Venturi federates from (no wildcards).
federated_credential_issuer: Venturi’s OIDC issuer URL.federated_credential_subject: the subject claim in Venturi’s federation token.
Step 2: Fill terraform.tfvars (≈5 min)¶
Copy the terraform.tfvars.example that ships in the module directory, then fill
in Venturi’s values plus your own resource names (CUR bucket, billing dataset,
subscription ID, see your cloud guide).
Step 3: Apply (≈5 min)¶
cd infra/<cloud>/onboarding # aws | gcp | azure
terraform init
terraform plan # review the read-only role/SP it will create
terraform apply
terraform apply prints the outputs you’ll send back in Step 5 (role ARN /
service-account email / client ID) plus a human-readable granted_* summary:
keep that for your audit trail.
Step 4: Verify the trust boundary (≈2 min)¶
This assumes the identity exactly as Venturi will, then exercises one read and one write per granted service. Reads must succeed; writes must fail. The script exits non-zero if any write succeeds: that would be a security finding, not a pass. A clean exit is your proof the integration is read-only.
What “verified” means in detail
Step 5: Send the outputs to Venturi (≈3 min)¶
Reply to your onboarding email with the terraform output values. Each cloud
guide lists the exact fields, e.g. AWS:
Step 6: Venturi confirms (≤ 1 business day)¶
We validate that the role/SP is reachable, start ingestion, and reply confirming data is flowing. Within ~1–2 hours of confirmation you’ll see your team roster, cost data, and AI model inventory populate in the Venturi dashboard.
You’re done when…¶
-
terraform applycompleted with no errors. -
./scripts/verify.shexited0(reads pass, writes denied). - You’ve sent Venturi the outputs.
- Venturi has confirmed ingestion, and the dashboard shows your data.
Now go deeper on your specific cloud: