Security
Hidden API keys
A VM uses your API key without ever seeing it.
What it is
A VM uses your API key without ever seeing it.
The key stays on the host. The VM calls a local address, and FlashVMM adds the key, forwards the call and logs it. Caps on calls and bytes keep spending in bounds.
Why it matters
An agent needs an AI service, and the service needs a key. A key inside the VM is a key anything in the VM can steal. With the secret proxy, there is nothing inside to steal.
- Keys inside the VM: none. The guest holds an address, not a credential.
- Every call logged. See what was asked, when, and how much.
- Hard caps. Limit calls and bytes per proxy, and change them live.
Runs on
- Linux x86_64
- Linux arm64
- macOS
- Windows x64
- Windows arm64
How it works
Attach a proxy at start; the guest sees only FLASH_PROXY_<NAME>_URL.
CLI
flash run --bundle BUNDLE --id keyed-1 --vcpus 1 --mem-mib 512 --egress none --secret-proxy model=/etc/keys/model.key,upstream=https://api.example.com,max-calls=20 --detach
flash proxies keyed-1MCP
flash_secret_proxy_calls(vm_id: "keyed-1", name: "model")API
GET /v1/flashvm/secret-proxies
GET /v1/flashvm/secret-proxies/{proxy_name}/callsThe result
The call works, with a key the VM never saw.
The VM had no internet at all except through the proxy, a full search found no key inside it, and FlashVMM logged the call.
How it works
Related
See it live: flash demo run 22