aws_ kms_ key cost estimation
A managed encryption key. Flat $1/month per key, plus per-request charges for cryptographic operations.
An aws_
First, $1 per month per customer-managed key. AWS-managed keys (the ones with aws/ prefixes like aws/s3, aws/rds, aws/ebs) are free and used automatically when you enable default encryption on those services. Customer-managed keys are required when you need control over key rotation, key policies, or grant access across accounts.
Second, $0.03 per 10,000 cryptographic operations (Encrypt, Decrypt, ReEncrypt, GenerateDataKey, etc.). For most workloads this is negligible: encrypted S3 reads use the GenerateDataKey operation once per object, so even a million-object workload costs a few dollars in KMS requests.
Asymmetric keys (RSA, ECC) cost more per operation because the math is more expensive: $0.15 per 10,000 operations on most asymmetric key specs. Right for signing and verification, not bulk encryption.
External key store keys (XKS) and HMAC keys have their own pricing tiers.
DNSSEC signing keys for Route 53 are KMS keys with the ECC_
c3x estimates the per-key flat fee from the resource. Cryptographic operations are usage-based via c3x-usage.yml.
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_kms_key" "data" {
description = "Encryption key for application data"
deletion_window_in_days = 30
enable_key_rotation = true
}
resource "aws_kms_alias" "data" {
name = "alias/application-data"
target_key_id = aws_kms_key.data.key_id
}Pricing dimensions
What you actually pay for when you provision aws_.
| Dimension | Unit | What's being charged |
|---|---|---|
| Customer-managed key | per key per month | Flat fee for the key to exist. Pending-deletion keys still bill until the deletion window expires. $1/key/month |
| Symmetric cryptographic operations | per 10,000 requests | Encrypt, Decrypt, ReEncrypt, GenerateDataKey on symmetric keys. First 20,000/month free at the account level. $0.03/10,000 requests |
| Asymmetric cryptographic operations | per 10,000 requests | Sign, Verify, Encrypt, Decrypt on asymmetric keys (RSA, ECC). Significantly more expensive than symmetric. $0.15/10,000 for RSA |
| Custom key store keys | per key per hour | Keys stored in a CloudHSM custom key store have additional per-hour fees beyond the standard $1/month. |
Optimization tips
Common ways to reduce aws_ cost without changing the workload.
Use AWS-managed keys when you don't need customer control
$1/key/month per replaced CMKAWS-managed keys (aws/s3, aws/ebs, aws/rds, etc.) are free. They auto-rotate yearly and have predefined policies. Use them unless you specifically need custom key policies or cross-account access.
Don't enable rotation on keys you'll delete
Operational hygieneKey rotation is free, but you can't disable it once enabled. Don't turn it on for short-lived or experimental keys.
Delete unused keys (with the 7-day window)
$1/month per deleted key, fasterEven keys scheduled for deletion bill until the window closes (default 30 days, minimum 7 days). For confirmed-unused keys, set deletion_
Consolidate keys by use case, not per-resource
Major in high-resource-count accountsCreating one KMS key per S3 bucket or RDS instance creates dozens of customer-managed keys, each $1/month. Group resources by encryption boundary (e.g., one key for all production application data) and use IAM policies to restrict access.
FAQ
Why does my KMS bill have so many $1/month line items?
Common patterns that explode KMS counts: per-bucket encryption keys, per-secret in Secrets Manager (each can have its own key), per-environment keys. Audit aws_
Are AWS-managed keys really free?
Yes. Keys like aws/s3, aws/ebs, aws/rds, aws/secretsmanager are free for the key itself. You still pay $0.03/10,000 for cryptographic operations against them, same as customer-managed keys.
Does c3x include cryptographic request costs?
Only with c3x-usage.yml. Each S3 write to an encrypted bucket triggers one GenerateDataKey operation, each read triggers one Decrypt. For high-volume KMS use, populate monthly_
What about KMS multi-Region keys?
Multi-Region keys (multi_
Related resources
More AWS resources
Further reading
- AWS CloudHSM cost: dedicated hardware security modules by the hour
CloudHSM bills per HSM instance-hour (around $1.45, so about $1,000+/month each), and you need at least two for high availability. It is expensive dedicated hardware for strict compliance needs. For most, KMS is far cheaper. Here is when CloudHSM is required.
- AWS KMS cost explained: $1 per key, then it is all API requests
KMS charges $1 per month per customer-managed key and $0.03 per 10,000 API requests. AWS-managed keys are free to hold but you still pay for requests. On a busy service, request volume, not key count, is the bill. Here is how to control it.
- Azure Key Vault cost: operations are cheap, HSM keys are not
Standard Key Vault bills about $0.03 per 10,000 operations, so software-protected secrets are nearly free. HSM-protected keys (Premium) and Managed HSM add fixed or per-key costs. Here is where the money actually is.
- GCP Secret Manager cost: per secret version and per access
Secret Manager bills about $0.06 per active secret version per location per month and about $0.03 per 10,000 access operations. It is cheap unless you store many versions or access secrets on every request. Here is the model and the caching lever.
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_.