Documentation

Cloud Accounts

Overview

Cloud Accounts is where you register the cloud provider accounts that Veltrix is allowed to provision and manage infrastructure in. It is the “bring your own cloud” (BYOC) side of apps that can deploy their own hosted infrastructure: you connect an account once, and any installed app that provisions cloud resources can offer it as a deployment target.

Four providers are supported, each with one or two authentication methods:

ProviderAuthentication methods
Amazon Web ServicesAssume Role (IAM role with an external ID)
Microsoft AzureBrokered (Veltrix connector app) · Bring Your Own Service Principal
Google Cloud PlatformWorkload Identity Federation · Service Account Key
Hetzner CloudAPI Token

Registering an account does not create any infrastructure by itself. It stores the credentials (encrypted) so that an app deployment you start later can use them.

Where to Find It

Open Settings in the sidebar and choose Cloud Accounts from the submenu, or use the Cloud Accounts card on the Settings hub (“Connect your AWS, Azure, GCP, or Hetzner accounts so Veltrix can provision infrastructure”). The page lives at /settings/cloud-accounts.

Only organization administrators can use this page. A user without administrator access will see an error when the list loads.

Add a Cloud Account

  1. Go to Settings → Cloud Accounts.
  2. Click Add cloud account (top right), or click Configure on the provider's card to start with that provider selected.
  3. Choose the Cloud Provider and, where there is a choice, the Authentication Method. A short description and a setup hint appear under the selection.
  4. Enter a Display Name (required, up to 200 characters), for example Production Amazon Web Services.
  5. Fill in the method's fields (see the reference below). Fields marked with a red asterisk are required; secret fields are tagged as such.
  6. Optionally tick Set as default <provider> account.
  7. Click the save button. The account is created with status Unverified.
  8. Click the Test connection icon on the new row to verify it (see Verifying).

You can register several accounts per provider, for example separate production and staging accounts. Once at least one account exists, the card shows N configured and its footer button changes to Add Another.

Providers and Fields

Amazon Web Services — Assume Role

Veltrix assumes an IAM role in your account through STS, using a trust policy conditioned on an external ID. Create the role to trust the Veltrix provisioning principal, add a condition on your external ID, and attach a least-privilege policy limited to what Veltrix should manage.

FieldRequiredNotes
Role ARNYesMust look like arn:aws:iam::<account-id>:role/<name>.
External IDYesA unique, hard-to-guess string; must match the external ID in the role's trust policy.

Microsoft Azure

MethodFieldRequiredNotes
Brokered (Veltrix Connector App)Tenant IDYesYour Azure AD (Entra ID) tenant. You grant admin consent to the Veltrix connector app in that tenant; there are no secrets to manage. The dialog notes that a guided consent flow is not available yet, so consent must be granted outside Veltrix.
Bring Your Own Service PrincipalTenant IDYesAzure AD tenant ID.
Client IDYesApplication (client) ID of the service principal.
Client SecretYes (secret)Client secret value.
Subscription IDYesTarget subscription. Assign the service principal an appropriate RBAC role (it needs access such as Contributor) on that subscription.

Google Cloud Platform

MethodFieldRequiredNotes
Workload Identity FederationProject IDYesGCP project ID.
Workload Identity ProviderYesFull resource name, e.g. projects/123/locations/global/workloadIdentityPools/veltrix/providers/veltrix.
Service Account EmailYesThe service account Veltrix impersonates. No long-lived key is stored.
Service Account KeyProject IDYesGCP project ID.
Service Account Key (JSON)Yes (secret)Paste the full contents of the downloaded key file. Simpler to set up, but a long-lived credential; the workload identity method is preferred.

Hetzner Cloud — API Token

FieldRequiredNotes
API TokenYes (secret)A Read & Write token from the Hetzner Cloud Console under your project's Security → API Tokens.

Create the cloud-side role, trust relationship or token with the narrowest permissions you can; the hint box in the dialog repeats the key steps for the selected method.

Manage Existing Accounts

Each provider card lists its accounts. A row shows a status badge, the display name, the authentication method, a Default star when applicable, and the date it was last tested. Icons on the right:

IconAction
Wi-FiTest connection — verifies the saved credentials and records the result.
StarSet as default — makes this the default account for its provider. Hidden on the account that is already default. Only one default exists per provider; setting a new one clears the previous one.
GearEdit — opens the dialog for this account. The provider and authentication method are fixed; you can change the name, the fields and the default flag.
TrashRemove — asks for confirmation (“This cannot be undone”) and deletes the account.
  • Secrets are never shown again. Secret fields (client secret, service account key JSON, API token) are encrypted when stored and masked when read back. When you edit, those fields start blank with “Leave blank to keep existing value”; type a new value only if you want to replace it.
  • Editing resets verification. Saving new configuration sets the status back to Unverified until you test again.
  • The Test Connection button inside the edit dialog tests what is already saved, not unsaved changes in the form. Save first, then test.
  • Refresh (top right) reloads the list. When one or more accounts are in error, the failing account's message is printed under its provider card.

Verifying a Connection and Statuses

StatusMeaning
UnverifiedSaved, but not tested since it was created or last edited.
VerifiedThe last test succeeded.
ErrorThe last test failed. Hover over the badge, or read the line under the provider card, for the reason.

What a test actually proves depends on the method:

MethodTest performed
AWS Assume RoleA live STS AssumeRole call with your role ARN and external ID. Success proves the role exists, trusts the Veltrix principal, and the external ID matches; the result names the AWS account.
Azure Bring Your Own Service PrincipalA live sign-in with the client credentials followed by a read of the subscription. A “lacks access” result means the service principal needs a role such as Contributor on the subscription.
Hetzner API TokenA live call to the Hetzner Cloud API; a 401 means the token was rejected.
Azure Brokered, GCP (both methods)Configuration validation only. The test reports success if the fields are well formed, and the real verification happens at deploy time through the platform's token broker or workload identity pool. A green status here therefore does not guarantee the consent or federation is set up correctly.

Using Accounts in Deployments

Cloud accounts are cross-app: you do not attach them to a particular app here. Apps that provision infrastructure can list your registered accounts when you set up a deployment, and the deployment records which account it uses. Apps that only configure an existing tool through its own API do not use cloud accounts.

Your organization may also see Veltrix-managed accounts offered as a hosted deployment target. Those are managed by Veltrix administrators; you can only see that they exist, never their configuration, and they are not listed on this page.

Permissions, Plans and Limits

  • Permission: organization administrators only (the same level used for Connectivity). Nobody else can list, create, edit, test or remove accounts, including through the API.
  • Plans: Cloud Accounts is not gated by plan tier in the product; there is no per-plan cap on the number of accounts. Whether your organization can deploy infrastructure also depends on the app you use and your subscription state.
  • Isolation: accounts are scoped to your organization. Another tenant cannot see or use them.
  • Credentials at rest: secret fields are encrypted before they are stored and are decrypted only by the provisioning worker when a deployment needs them.

Good to Know

  • Prefer federation or role assumption over stored keys: AWS Assume Role, Azure brokered, GCP Workload Identity Federation store no long-lived secret in Veltrix.
  • A removed account cannot be recovered; deleting one that a pending deployment relies on will make that deployment fail. Register a replacement first.
  • If a test fails right after you created the cloud-side role, wait a minute for provider-side propagation and test again.
  • For local connectivity to servers (SSH, VPN, tunnels), see Connectivity & Remote Access; cloud accounts are about the cloud provider API, not network reach.