Fireworks never stores your root key. Each fine-tuning resource gets a unique data key that is encrypted (“wrapped”) by your KMS key and stored only in wrapped form. The unwrapped key exists only briefly in memory during a job and is then discarded.
How it works
CMEK uses envelope encryption:- You create a key (your key-encryption key, or KEK) in your own cloud KMS and grant Fireworks permission to call
EncryptandDecrypton it — nothing else. - The first time a job, dataset, or checkpoint needs encryption, Fireworks generates a unique 256-bit data-encryption key (DEK) for that resource and immediately wraps it with your KEK. Only the wrapped key is persisted.
- Fireworks encrypts your artifacts locally with AES-256-GCM before they are written to storage.
- To read the data back, Fireworks asks your KMS to unwrap the DEK. That call — and every call — is logged in your cloud’s KMS audit trail. Unwrapped keys are cached briefly (about 5 minutes) and then discarded, so subsequent reads re-validate against your KMS.
During an active fine-tuning job, training compute processes your data in plaintext in memory — that is inherent to training a model on it. CMEK controls access to your data at rest (datasets, checkpoints, and logs), not the in-memory computation during the job itself.
What CMEK protects
CMEK covers the durable artifacts your fine-tuning jobs read and write:- Training and evaluation datasets you upload
- Intermediate checkpoints and distributed-checkpoint shards
- Job metadata (job names, hyperparameters, status) stored in the Fireworks control plane
- Transient scratch data that exists only for the duration of a job and is destroyed when the job ends
CMEK supports LoRA Supervised Fine-Tuning (SFT), Direct Preference Optimization (DPO), and Reinforcement Fine-Tuning (RFT). Full-parameter training is not supported. Today, CMEK covers the datasets and intermediate checkpoints your jobs read and write. Encrypting final model weights with your key, and deploying a model whose weights were encrypted with your key, is coming soon. Encrypting inference requests and responses with your key is not part of CMEK today.
Supported KMS providers
CMEK supports all three major cloud KMS services. Fireworks needs onlyEncrypt and Decrypt on your key, and authenticates with short-lived, federated credentials.
How Fireworks authenticates
CMEK uses the federated trust model described in How Fireworks accesses your cloud: Fireworks authenticates as a Google-issued OIDC identity, you configure your cloud’s IAM to trust it, and you allow itEncrypt/Decrypt on your key — nothing else. No long-lived secret is exchanged, and nothing Fireworks runs is deployed into your account.
Pin trust on these values:
The subject is stable per environment and is provided during CMEK onboarding; the audience is your own Fireworks account ID. Contact inquiries@fireworks.ai if you need the exact subject identifier.
CMEK and BYOB authenticate as different Fireworks service accounts, so their subject identifiers differ. Use the CMEK subject here, not the one from your BYOB setup.
Setup
1
Create or choose a key in your KMS
Create a symmetric encryption key in your cloud KMS (or pick an existing one). One key per Fireworks account is sufficient — Fireworks derives a unique data key per resource underneath it.
- AWS KMS — a symmetric KMS key in your account and region.
- Google Cloud KMS — a symmetric key in a key ring.
- Azure Key Vault — a key in a Standard vault or Managed HSM.
2
Grant Fireworks Encrypt/Decrypt on the key
Authorize the Fireworks identity to call
Encrypt and Decrypt on your key. You grant access to the federated identity — you never share a secret.- AWS KMS
- Google Cloud KMS
- Azure Key Vault
Create an IAM role the Fireworks identity can assume via web-identity federation, and allow that role The
Encrypt/Decrypt on your key. You do not need to register an OIDC identity provider — accounts.google.com is a built-in federated principal in AWS STS.Trust policy on the role, locked to the Fireworks identity:sub condition locks assumption to the Fireworks identity; the oaud condition pins the token’s audience to your Fireworks account, so a token issued for any other account is rejected.AWS KMS authorizes against both IAM and the key policy, so grant kms:Encrypt and kms:Decrypt on the specific key in both the role’s permissions policy and the key policy.You’ll register the account ID, region, key ARN, and role ARN with Fireworks in the next step.3
Register the key with your Fireworks account
Send the identity references you gathered above to your Fireworks account team, who register the key on your account and enable CMEK enforcement for it.Depending on your cloud, that is:Once a key is registered and CMEK is enabled, encryption is automatic — your data is encrypted at rest with your key, and uploads through
Key registration and CMEK enablement are performed by Fireworks, not self-serve — the underlying commands are restricted to Fireworks operators. Contact inquiries@fireworks.ai or your account team to start onboarding.
firectl and the SDKs are encrypted client-side, so plaintext never leaves your environment. Keep your firectl / SDK up to date.4
Verify
Run a small fine-tune (below) and confirm
Encrypt / Decrypt calls appear in your cloud’s KMS audit log.Running a CMEK fine-tune
Once your key is registered, fine-tuning works exactly as it does today — encryption and decryption are transparent.Encrypting the resulting model’s final weights with your key — so downloads decrypt transparently and you can deploy the model on Fireworks with your key — is coming soon.
Rotating and revoking your key
CMEK respects the lifecycle controls your KMS already gives you.- Key-version rotation — When you create a new version of a key in your KMS, new data is wrapped with the new version automatically and existing data keeps working. No action is needed on the Fireworks side, and your data is never re-encrypted.
- Rotating the registered key — Your account can hold more than one registered key, exactly one of which is primary. New resources are wrapped under the primary key; previously registered keys stay registered so older data remains decryptable. To rotate, ask your account team to register the new key and promote it to primary, which demotes the previous primary. Retire the old key only once nothing still depends on it.
- Revocation — Revoke the grant, disable the key, or schedule it for destruction in your KMS. In-flight jobs holding a cached key continue until the cache expires (about 5 minutes), then fail closed. New jobs fail immediately.
- Re-grant — Restore the grant or re-enable the key and access resumes; new jobs work right away.
Auditing
EveryEncrypt and Decrypt call Fireworks makes against your key is recorded in your cloud’s native audit log — AWS CloudTrail, Google Cloud Logging, or Azure Monitor — including the calls that fail after you revoke access. You hold the authoritative record of when and how your key was used.
Limitations
- CMEK applies to LoRA SFT, DPO, and RFT jobs. Full-parameter training is not supported.
- Encrypting final model weights with your key — and deploying a model whose weights were encrypted with your key — is coming soon. Today CMEK covers your datasets and intermediate checkpoints.
- During an active job, compute processes your data in plaintext in memory; CMEK protects data at rest, not in-memory computation.
- Encrypting inference requests and responses with your key is not part of CMEK today.
- Uploads must go through
firectlor the SDKs, which encrypt client-side before data leaves your environment. The web-console upload path doesn’t perform that client-side encryption yet, so it isn’t supported on CMEK-enabled accounts. (Planned: web-console upload support is expected in a future release.) - Key registration, rotation, and CMEK enablement are performed by Fireworks on your behalf rather than self-serve.
- Job metadata and transient scratch data are covered by separate operational and contractual controls, not your key.
Related Resources
Bring Your Own Bucket (BYOB)
Keep training datasets in your own cloud storage
Data Security Overview
Learn about our comprehensive security measures