KMS Access Control
Access to KMS operations is controlled by policies and permissions.
KMS Access Control
Access to KMS operations is controlled by policies and permissions.
Permission model
Key-level permissions
kms:keys:create- Create new keyskms:keys:read- Read key metadatakms:keys:use- Use key for crypto operationskms:keys:rotate- Rotate key versionskms:keys:delete- Delete/destroy keys
Operation permissions
kms:encrypt- Encrypt datakms:decrypt- Decrypt datakms:sign- Create signatureskms:verify- Verify signatureskms:wrap- Wrap keyskms:unwrap- Unwrap keys
Policy structure
{
"version": "1",
"statements": [
{
"effect": "allow",
"actions": ["kms:encrypt", "kms:decrypt"],
"resources": ["keys/storage-*"],
"conditions": {
"tenant": "${token.tenant_id}"
}
}
]
}
Key policies
Each key can have an attached policy:
- Overrides default permissions
- Scoped to specific key
- Supports conditions
Conditions
Supported condition keys:
tenant: Tenant ID matchip: Source IP rangetime: Time-based restrictionsmfa: MFA requirement
Audit
All access decisions are logged:
- Requester identity
- Requested action
- Resource
- Decision (allow/deny)
- Timestamp