BetterIAM
Secrets and keys

Secrets and keys

Tenant keys, a secrets vault, tokenization of sensitive data, and a private certificate authority, all decided by the same policies and audit trail.

Applications need more than "may this person do this?". They need encryption keys, database passwords, API keys for upstream services, somewhere safe to put card numbers, and certificates for the services that talk to each other. These usually live in separate products, each with its own access model and its own log, so the question "who could read the payments database password last March?" has no single answer.

Better IAM keeps them next to the identities and that decide who may use them. Every key, secret, token profile and certificate authority is a of a : policies grant its actions with conditions on its tags and attributes, and every call is recorded in the tenant's , without plaintexts.

Four services

Which one do I need?

You want toUseAPI group
Encrypt a field or a file, sign a message or token, or check a MACKey managementkeys
Store a password or API key your service reads at runtimeSecrets vaultvault
Rotate a credential on a schedule, or hand one out to one person at a timeSecrets vault (rotation, check-outs)vault
Give each caller its own short-lived database credentialSecrets vault (dynamic secrets)vault
Keep card numbers or national identifiers out of your databases and logsData protectionprotection
Issue certificates for mutual TLS or internal HTTPS, or workload identitiesPrivate CApki

How they fit together

The services build on each other. Key management is the base: data protection encrypts values with one data key per call wrapped under a tenant KMS key, a certificate authority signs with a KMS key pinned to one version, and a vault secret can be sealed under a customer-managed KMS key (kmsKey), so disabling that key shreds its values. A key that a certificate authority or a data protection profile uses is managed by it (managedBy): direct KMS calls on it are refused with KEY_MANAGED, so nobody can use the authority's signing key around the authority's own policies.

Key material, vault values and authority keys are sealed under the deployment secret and re-sealed by iam.rotateSecrets(), like every other stored secret (see secret rotation).

Scheduled jobs

Each service has maintenance work that no request triggers. Run these from your scheduler next to the other jobs:

JobHow oftenWhat it does
iam.kms.maintain()hourlyRotates keys that are due, destroys keys past their deletion date, removes lapsed grants
iam.vault.rotateDue()hourlyRotates due secrets and retries failed rotations
iam.vault.expireLeases()every few minutesEnds expired check-outs and leases and retries failed revocations
iam.vault.purgeDeleted()dailyDeletes secrets past their recovery window
iam.protection.sweep()dailyDeletes tokens older than their profile's retention

Was this page helpful?

Better IAM is created by Sean Filimon

Last updated

On this page