Skip to content

HashiCorp Boundary Integration

Integrate SSH-KLM with HashiCorp Boundary for zero-trust network access.

HashiCorp Boundary provides identity-based access to infrastructure. SSH-KLM enhances Boundary by:

  • Managing SSH keys on target hosts
  • Providing key inventory visibility
  • Rotating keys on Boundary-managed targets
┌─────────────────────────────────────────────────────────────┐
│ User │
└──────────────────────────┬──────────────────────────────────┘
┌──────────────────────────▼──────────────────────────────────┐
│ Boundary Controller │
│ (Authentication & Authorization) │
└──────────────────────────┬──────────────────────────────────┘
┌──────────────────────────▼──────────────────────────────────┐
│ Boundary Worker │
│ (Session Proxy & Recording) │
└──────────────────────────┬──────────────────────────────────┘
┌──────────────────────────▼──────────────────────────────────┐
│ Target Host │
│ (SSH-KLM Agent Installed) │
└─────────────────────────────────────────────────────────────┘
# SSH-KLM integration config
integrations:
boundary:
enabled: true
controllerUrl: "https://boundary.example.com"
# Authentication
authMethod: token
token: ${BOUNDARY_TOKEN}
# Sync settings
syncInterval: 5m
importTargets: true
scopeId: "o_1234567890"
// Sync targets from Boundary
await client.integrations.boundary.sync();
// List imported targets
const hosts = await client.ssh.listHosts({
source: 'boundary'
});

SSH-KLM can inject ephemeral credentials into Boundary sessions:

// Configure credential injection
await client.integrations.boundary.configureCredentials({
targetId: 'tssh_1234567890',
credentialType: 'ephemeral',
ttl: 300
});
// Rotate keys on Boundary-managed hosts
await client.ssh.rotateKey({
keyId: 'KEY-boundary-target-01',
// SSH-KLM connects through Boundary
viaBoundary: true
});

Forward SSH-KLM events to Boundary:

integrations:
boundary:
events:
enabled: true
forwardTo: boundary
eventTypes:
- key.rotated
- key.discovered
- access.granted