BYOB is an enterprise feature. It is enabled per account by Infino, not
self-serve — contact your Infino representative to turn
it on. Until it is enabled, creating a database with a storage binding returns a
403.BYOB is the foundation for
Customer-Managed Encryption Keys: a key you
control only encrypts a bucket you own, so CMEK is configured on a BYOB database.
How it works
- You grant one Infino identity access to your bucket — an IAM role Infino assumes (S3), a service account you grant an object role (GCS), or an Entra application you consent (Azure). Infino provides the exact identity for your account; nothing secret is exchanged, and the grant is scoped to your bucket.
- You register the bucket when you create the database.
POST /v1/databasescarries astoragebinding naming the bucket and how Infino is authorized. - Infino verifies access before serving. A one-time probe writes and reads back a small object to confirm the grant works. Until it passes, the database does not serve.
AWS (Amazon S3)
AWS setup is two-phase because the external id that protects the role against confused-deputy use is generated by Infino when you create the database.1
Create an IAM role Infino can assume
Create an IAM role in your account whose trust policy allows the Infino
principal to assume it. Grant the role read/write access to your bucket (an
s3:*Object policy scoped to the bucket and prefix, plus
s3:GetEncryptionConfiguration on the bucket).2
Register the database with the role
external_id:3
Add the external id to the role's trust policy
Add an
sts:ExternalId condition to the role’s trust policy, set to the
external_id from the previous step. This ensures only Infino acting for your
database can assume the role — not a different tenant or a replayed request.4
Verify
GCP (Google Cloud Storage)
1
Grant Infino's service account access to your bucket
Grant Infino’s service account
roles/storage.objectAdmin on the bucket that will
hold the database’s data. (Infino gives you the service-account address for your
account.)2
Register the database
Azure (Azure Blob Storage)
1
Consent Infino's application and grant it a data role
Admin-consent Infino’s Entra application in your tenant, then grant it a data
role (such as Storage Blob Data Contributor) on the storage account holding
your container. (Infino gives you the application id for your account.)
2
Register the database
Optional: a prefix
Every provider accepts an optionalprefix — a root inside the bucket or container
under which everything Infino writes lives, so a BYOB bucket can be shared with
other data:
Encrypting with your own key
To encrypt a BYOB database’s data with a key you own and control in your cloud KMS — and be able to revoke Infino’s access to the data independently of Infino — see Customer-Managed Encryption Keys. CMEK adds anencryption block to the same storage binding shown above.