This page is for platform administrators of the Private Virtual Appliance deployment. Tenant users connecting their own S3 bucket (BYOS) should see Storage instead.
Overview
The Enclave appliance needs a storage backend to persist encrypted file data. All data written to storage is ciphertext only — the appliance encrypts every file before it leaves the application layer.
Configuration is done at Admin → Platform Infra → Storage.
AWS S3 / S3-compatible
Supports standard AWS S3, and any S3-compatible object store (MinIO, Ceph Object Gateway, Wasabi, Backblaze B2).Prerequisites
- An S3 bucket (or compatible endpoint) reachable from the appliance over HTTPS
- Because the appliance runs on VMware (not EC2), there is no instance profile — use Assume Role or Static Credentials
- For S3-compatible stores: the endpoint URL and a bucket created in advance
Step 0 — Create an S3 bucket
- Sign in to the AWS Console → navigate to S3 → Create bucket
- Enter a bucket name and choose an AWS region
- Keep Block all public access enabled (default)
- Click Create bucket — note the bucket name and region for later
Auth methods
- Assume Role (recommended for AWS S3)
- Static Credentials
The appliance authenticates using a dedicated IAM user and then assumes a role that holds the S3 permissions. Long-lived credentials are not stored for S3 access.Step 1 — Create a dedicated IAM user for the applianceReplace
If you already created an
enclave-appliance IAM user during KMS setup, skip Step 1 and reuse that user — just add the new AssumeRole permission in Step 3b.- In the AWS Console, go to IAM → Users → Create user
- User name:
enclave-appliance(or any name you prefer) - Do not attach any permissions — click Next → Create user
- Open the user → Security credentials tab → Create access key
- Choose “Application running outside AWS” → Create access key
- Save the Access Key ID and Secret Access Key
- Go to IAM → Roles → Create role
- Trusted entity type: AWS account → This account
- Do not attach permissions yet → click Next
- Role name:
enclave-s3-role(or any name you prefer) → Create role
- Open the
enclave-s3-rolerole → Trust relationships tab → Edit trust policy - Replace the content with:
YOUR_ACCOUNT_ID with your 12-digit AWS account ID. Using an IAM user as the principal avoids the “Invalid principal in policy” error — the user exists before the role.- Click Update policy
- Go to the
enclave-applianceuser → Permissions tab → Add permissions → Create inline policy - JSON:
- Name it
enclave-assume-s3-role→ Create policy
- Go back to
enclave-s3-role→ Permissions tab → Add permissions → Create inline policy - JSON:
- Name it
enclave-s3-permissions→ Create policy - Copy the Role ARN from the role Summary page
Click Test Connection, then Save and Activate.
NFS
NFS is the recommended option for fully on-premise or air-gapped deployments where no cloud object storage is available.Prerequisites
- An NFS v3 or v4 share exported and mountable from the appliance VM
- The share must be mounted on the appliance at a stable path before configuring storage (the appliance does not mount NFS shares itself — it reads/writes to an already-mounted path)
- Read/write permissions for the
enclaveprocess user on the mount
Mounting the NFS share on the appliance
SSH into the appliance VM and mount the share:/etc/fstab:
Configure in Enclave
Go to Admin → Platform Infra → Storage → Add Storage, select NFS:
Click Test Connection, then Save and Activate. The appliance verifies the path is accessible and writable.
Enclave writes files under
<mount_point>/tenants/<tenant_id>/ and creates subdirectories automatically. Ensure the NFS share has sufficient capacity and monitor it externally — Enclave does not track NFS utilisation.Local Disk
Local disk writes encrypted file data directly to the appliance VM’s disk. Suitable for evaluation or single-node lab deployments only. Go to Admin → Platform Infra → Storage → Add Storage, select Local Disk:
The path must exist and be writable. Enclave creates subdirectories automatically.
Activating the storage backend
After saving, the backend must be activated before the appliance can accept file uploads:- In Admin → Platform Infra → Storage, locate the saved backend
- Click Activate
- The appliance immediately begins routing all new file uploads to this backend