Docs · Security & workspace isolation

Security & workspace isolation

CloudPruneAI is designed so that access to your cloud accounts is minimal, revocable, and observable — and so that data from one workspace never crosses into another.

Cloud access model

  • Read-only, always. CloudPruneAI does not create, modify, or delete resources in your account. Every connected account is authorized through a role or Service Principal that has read permissions only.
  • Metadata, not content. We read infrastructure metadata (instance types, sizes, tags, usage metrics, cost aggregates). We do not read S3 object contents, database records, secret values, or log contents.
  • Short-lived credentials. AWS access uses AssumeRole with STS temporary credentials that expire per session. Azure access uses short-lived OAuth tokens obtained at scan time.
  • Revocable at any time. Delete the CloudFormation stack (AWS) or the App Registration (Azure) to revoke access immediately. Removing the account from the dashboard also removes any stored credential references.

Workspace isolation

A workspace is the container for one user's connected accounts, scans, recommendations, and assistant threads. Isolation between workspaces is enforced at three independent layers:

  1. Identity — every authenticated request carries a user identity resolved from the login provider.
  2. Application — the backend never accepts a user or workspace identifier from the client; it always uses the authenticated identity.
  3. Database — every query includes an explicit ownership predicate; results from other workspaces cannot be returned even if requested.

This applies uniformly to the dashboard, the API, and the conversational assistant.

Secret storage

  • AWS: no long-lived access keys are stored — only the ARN of the role you deployed. Trust is enforced by the External ID in the role's trust policy.
  • Azure: the Service Principal client_secret is encrypted at rest in AWS Secrets Manager under a path scoped per connected subscription.

Assistant data handling

  • Assistant queries and tool results are workspace-scoped by the same three-layer isolation described above.
  • The underlying model provider (Anthropic) operates with a zero data retention policy on API calls.
  • Threads and messages are stored in CloudPruneAI's database so the sidebar can rehydrate history. Users can delete any thread at any time.

Reporting a vulnerability

If you believe you've found a security issue, please email support@cloudpruneai.com with the subject [SECURITY]. See the support page for the disclosure policy.