KubeBolt docs
GitHub

Cloud connectors

Let Kobi read the AWS and Azure resources a workload depends on — read-only, through curated MCP servers. What each edition includes, how to set it up, and what stays out.

Kobi sees inside the cluster. When a workload fails because of something outside it — a stopped database, a removed firewall rule, a queue full of dead letters, a quota that blocks a node pool — the evidence in Kubernetes stops at “cannot connect”. Cloud connectors let Kobi read those resources in your cloud account. On Cloud and EE, Autopilot’s investigator, planner and postmortem read them too.

Connectors shipped in KubeBolt 2.5.0 (open source) and 2.5.0-e2 (Cloud and EE self-hosted).

What each edition includes

Open sourceKubeBolt CloudEE self-hosted
Amazon Web Services✅✅ From the Team plan✅
Microsoft Azure✅ Through a sidecarSoonSoon
Google CloudSoonSoonSoon

What it reads

Read-only, in layers

Read-only is enforced, not promised:

Limits: 12 cloud calls per Kobi question, 40 per Autopilot run, 120 per minute per organization and 30 s per call.

Set up AWS

Connectors live in Administration › AI & Autopilot › Connectors on Cloud and EE, and in Administration › AI (Kobi) › Connectors in open source.

  1. Open Amazon Web Services. The drawer prints the role’s permissions and trust policies, with your organization’s External ID already in them, and the CLI commands that create it.
  2. Create the role in your AWS account.
  3. Paste the role ARN and the region, then Test connection.
  4. Save and enable the connector.

The External ID is generated once per organization and shown read-only. It is kept when you remove the connector, so setting it up again prints the same ID and the role keeps working.

On KubeBolt Cloud

The assumed role is the only mode, and two kinds of role are refused:

To check that second one, KubeBolt tries to assume your role without the External ID and with a deny-all session policy, before first using it and every hour after that. AWS must refuse. Your CloudTrail shows each check as a denied AssumeRole from the session kubebolt-external-id-check. That is expected.

When you self-host

Behind an egress firewall, allow AWS STS and aws-mcp.us-east-1.api.aws, or aws-mcp.eu-central-1.api.aws, the connector’s other host region.

The first call of a session takes 9–12 s while AWS starts its sandbox. Later calls take 2–3 s.

Set up Azure (open source)

The Azure MCP Server runs next to the API and holds a read-only service principal with the Reader, Monitoring Reader and Log Analytics Reader roles. The connector’s setup guide gives the commands to create it.

Then open Microsoft Azure in Connectors, enter the subscription ID, test the connection and save.

To see Resource Health’s current status, someone with Owner or Contributor on the subscription registers the provider once. Registering it creates no resource and is free:

az provider register --namespace Microsoft.ResourceHealth --subscription <id>

Without it, Kobi still sees health events in the activity log.

Who can use a connector

Each connector has a minimum role for the person asking Kobi, set in its drawer: Editors and admins (the default), Everyone or Admins only. A user below it doesn’t get the connector’s tools.

A connector reads the organization’s cloud account for everyone above that role. It is not scoped by team. Autopilot isn’t subject to the minimum role.

Using it

Ask as usual: “orders-api is not ready, why?”. When the evidence points outside the cluster, Kobi classifies the address with get_external_connections and uses the matching connector. The steps mark where it leaves the cluster (“Leaves the cluster → AWS us-east-2 · read-only”), and the answer ends with a footnote saying what it read.

To keep questions inside one cluster on a small model, set an escalation model.

Turning it off

mcpConnectors.enabled=false (KUBEBOLT_MCP_CONNECTORS=false) removes the Connectors tab and the cloud tools. Connectors keep their settings in KubeBolt’s settings store, so they need authentication on: with it off, there is no Connectors tab.

Troubleshooting

SymptomCause
”This role can be assumed without your organization’s External ID.”The trust policy lacks the sts:ExternalId condition. Add it from the printed policy and test again
AWS test can’t assume the role after an upgradeThe trust policy still has an older external ID. Copy the generated one from the drawer
The card shows a lock and a plan badgeThe organization’s plan is below the connector’s minimum
Azure test: “Nothing answers at…”The sidecar isn’t running
resourcehealth answers 409Microsoft.ResourceHealth isn’t registered yet, or is still registering. It took about ten minutes in our test
One user’s Kobi doesn’t use a connectorThat user’s role is below the connector’s minimum
Kobi doesn’t use a connector at allIt isn’t enabled and verified, or in-cluster evidence answered first, which is by design