Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ParameterRequiredTypeDescription
nameYesStringName of the KMS key
descriptionNoStringDescription of the KMS key
purposeYesStringPurpose of the key (volume, tls)
zoneidYesUUIDZone ID where the key will be valid
hsmprofileidYesUUIDHSM profile ID to create the KEK in
keybitsNoIntegerKEK size in bits (128, 192, 256). Default: 256
accountNoStringAccount name (admin use)
domainidNoUUIDDomain ID (admin use)

CloudMonkey Example:

cmk createKMSKey \
  name="volume-encryption-key" \
  description="Production volume encryption" \
  purpose="volume" \
  keybits=256 \
  zoneid=<zone-uuid> \
  hsmprofileid=<hsm-profile-uuid>

listKMSKeys

Lists KMS keys available to the caller.

...

ParameterRequiredTypeDescription
idNoUUIDList KMS key by UUID
purposeNoStringFilter by purpose
zoneidNoUUIDFilter by zone
stateNoStringFilter by state (Enabled, Disabled)

CloudMonkey Example:

cmk listKMSKeys purpose=volume state=Enabled

updateKMSKeyupdateKMSKey

Updates KMS key name, description, or state.

...

ParameterRequiredTypeDescription
idYesUUIDKMS key UUID
nameNoStringNew name
descriptionNoStringNew description
enabledNoBooleanEnable/disable the key

CloudMonkey Example:

...

key

...

deleteKMSKey

Deletes a KMS key (only if not referenced by volumes or wrapped keys).

...

ParameterRequiredTypeDescription
idYesUUIDKMS key UUID

CloudMonkey Example:

cmk deleteKMSKey id=<kms-key-uuid>

rotateKMSKey

Rotates KEK by creating a new version and scheduling gradual re-encryption of wrapped keys.

...

ParameterRequiredTypeDescription
idYesUUIDKMS key UUID to rotate
keybitsNoIntegerKey size for new KEK (default: same as current)
hsmprofileidNoUUIDTarget HSM profile for cross-HSM migration

CloudMonkey Examples:

# Same-HSM rotation
cmk rotateKMSKey id=<kms-key-uuid>

# Cross-HSM migration
cmk rotateKMSKey id=<kms-key-uuid> hsmprofileid=<target-hsm-profile-uuid>

migrateVolumesToKMS

Migrates passphrase-based volumes to KMS encryption.

migrateVolumesToKMS

Migrates passphrase-based volumes to KMS encryption.

  • Authorization: Admin Authorization: Admin only
  • Async: Yes

Parameters:

ParameterRequiredTypeDescription
zoneidYesUUIDZone ID
idYesUUIDKMS key ID to migrate volumes to
accountNoStringMigrate volumes for specific account
domainidNoUUIDDomain ID

CloudMonkey Example:

cmk migrateVolumesToKMS zoneid=<zone-uuid> id=<kms-key-uuid>

HSM Profile APIs

addHSMProfile

HSM Profile APIs

addHSMProfile

Adds a new HSM profile for Adds a new HSM profile for connecting to an HSM device.

...

PKCS#11 details keys: library (path to PKCS#11 library), slot (slot number), pin (HSM PIN, encrypted at rest), token_label (token label), minSessions, maxSessions

CloudMonkey Example:

...

slot number), pin (HSM PIN, encrypted at rest), token_label (token label), minSessions, maxSessions


listHSMProfiles

Lists HSM profiles visible to the caller.

...

ParameterRequiredTypeDescription
idNoUUIDHSM profile ID
zoneidNoUUIDZone ID
protocolNoStringProtocol filter
enabledNoBooleanEnabled filter

CloudMonkey Example:

...

BooleanEnabled filter

updateHSMProfile

Updates an HSM profile name or enabled state.

...

ParameterRequiredTypeDescription
idYesUUIDHSM profile UUID
nameNoStringNew name
enabledNoBooleanEnable/disable

Note: Updating configuration details is not currently supported. To change PKCS#11 parameters (e.g., PIN), delete and re-create the HSM profile.

CloudMonkey Example:

cmk updateHSMProfile id=<profile-uuid> enabled=false

deleteHSMProfile

Deletes an HSM profile (only if not in use by any KEK versions).

...

ParameterRequiredTypeDescription
idYesUUIDHSM profile UUID

CloudMonkey Example:

...


Global Settings

Setting KeyScopeTypeDefaultDescription
kms.dek.size.bitsGlobalInteger256Size of DEKs in bits for new volumes (128, 192, 256)
kms.retry.countGlobalInteger3Number of retry attempts for transient KMS failures
kms.retry.delay.msGlobalInteger1000Delay in milliseconds between retry attempts
kms.operation.timeout.secGlobalInteger30Per-attempt timeout for KMS operations
kms.rewrap.batch.sizeGlobalInteger50Wrapped keys rewrapped per batch in background job
kms.rewrap.interval.msGlobalLong300000Interval between background rewrap executions (5 min)

Database Changes

New Tables

...