The problem
Your prompts and files sit under a key you do not hold
By default, the provider that stores your AI data also controls the key that protects it.
Teams now paste contracts, source code and customer records into ChatGPT Enterprise and the OpenAI API. Without a customer-managed key, you cannot prove custody to an auditor or switch access off on your own terms. OpenAI EKM fixes that, but only if the key is granted, registered and checked correctly.
Provider-held key
Encryption keys stay with the AI provider unless you bring your own.
Per-cloud grants
AWS key policies, Azure roles and Google WIF each have their own traps.
Silent drift
A grant removed or a key revoked goes unnoticed until something breaks.
Audit evidence
Reviewers ask where the AI data key lives and who can turn it off.
How it works
DuoKey registers the key. OpenAI uses it directly in your cloud.
OpenAI wraps its Data Encryption Keys with your Key Encryption Key (KEK) and calls your cloud KMS whenever it encrypts or decrypts. DuoKey sets this up through OpenAI's Management API, then tracks it.
Registration · once per key, through DuoKey
DuoKey Cockpit
Holds the sealed Admin API key
OpenAI Management API
Receives the KEK coordinates
External key id
Assigned by OpenAI
Runtime · DuoKey is not involved
OpenAI
Needs to encrypt or decrypt
Your cloud KMS
Wraps and unwraps the DEK
Your KEK
Never leaves your account
DuoKey is not in the data path: it never wraps or unwraps OpenAI's keys, and your KEK never transits through DuoKey.
Multi-cloud
Keep the KEK in the cloud you already run
Each provider needs a different grant. Cockpit shows the exact instructions with your organization id already filled in, so the grant is right on the first try.
AWS KMS
Key policy statement
Lets OpenAI's EKM IAM role call Encrypt and Decrypt on your KEK, only when sts:ExternalId matches your organization id.
Registered with: the KMS key ARN
Azure Key Vault
Service principal + role
Create OpenAI's service principal, create an RSA key, then assign Key Vault Crypto User on that key only.
Registered with: vault URI and key name
Google Cloud KMS
Workload Identity Federation
A pool and OIDC provider with your organization id as audience, granted CryptoKey Encrypter/Decrypter on the KEK.
Registered with: the key resource
Setup
From Cockpit to a registered key in five steps
- 01
Create the app
In Cockpit, open Apps, then Create new app, then OpenAI EKM. One app per OpenAI organization.
- 02
Organization
Name the app and enter your OpenAI organization id (org-…).
- 03
Admin API key
Paste an organization Admin key. It is stored sealed and never returned by the API once saved.
- 04
Apply the grant and register
Pick the cloud, apply the grant, enter the key coordinates. DuoKey submits them to OpenAI.
- 05
Activate in OpenAI
Once the key is registered, activate it on the OpenAI projects that should use it.
Lifecycle
Know at any time whether your key is still in place
Every registered key has a status, and you can re-check it with OpenAI whenever an auditor asks.
- draftCreated, not yet submitted
- registeredAccepted by OpenAI, external key id assigned
- errorRejected, with the reason to fix the grant
- revokedNo longer in OpenAI's external key list
Validate
Confirm the key is still registered with OpenAI.
Test connectivity
Check the stored Admin key reaches the Management API.
Rotate the Admin key
Replace it without losing any registration.
De-register
Remove the key from OpenAI, then the local record.
To cut OpenAI's access, remove the grant
De-registering in DuoKey does not stop OpenAI from using the key. Remove the IAM permission, role assignment or federation binding on your KMS: per OpenAI's design, access stops within about an hour.
- An OpenAI Enterprise organization with EKM available
- An organization Admin API key from the OpenAI platform settings
- A KEK in AWS KMS, Azure Key Vault or Google Cloud KMS (or the right to create one)
- Permission to edit IAM policies, role assignments or Workload Identity Federation on that account
Deep dives
Field guides for your programme
Engagement
Bring your own key to OpenAI, without a new key path
See OpenAI EKM registered against your own cloud KMS key, with grant instructions, status tracking and on-demand validation in Cockpit.
Request a demoDiscuss the decisions that matter most to your security programme.
Tell us where control is difficult today. We will help you identify a practical next step.