Error: KMS Key Access Denied Error DynamoDB

Answered by Rafal Wilinski
Last updated: October 23rd, 2026
Solution
A KMS access-denied error from DynamoDB means the encryption key cannot be used for the attempted operation. DynamoDB table permissions alone do not establish permission to use a customer managed KMS key.
- Identify the actual caller and the KMS key ARN in the table's SSEDescription. Check the matching KMS failure in CloudTrail to see which action was denied.
- Review the key policy, relevant IAM policy and grants together. Look for explicit denies, permissions boundaries, organization policies and restrictive kms:ViaService or encryption-context conditions.
- Check that the key is enabled and available in the table's Region. A disabled key or one pending deletion is a key-state issue, not a missing DynamoDB read permission.
- Grant only the KMS operations needed for that workflow on the specific key. Reading encrypted data can require kms:Decrypt; table creation or key changes can involve GenerateDataKey, CreateGrant, DescribeKey and re-encryption permissions.
aws dynamodb describe-table --table-name Orders \ --query 'Table.SSEDescription' aws kms describe-key --key-id YOUR_KEY_ARN
Use the ARN returned by DescribeTable and the same Region and role as the failing application. If the key policy delegates access to IAM, the caller also needs the corresponding IAM allow. If policies intentionally restrict use through DynamoDB, retain those restrictions while correcting the principal, Region or table context. Do not replace the policy with unrestricted KMS access.
See DynamoDB encryption and AWS documentation.
Other Common DynamoDB Errors (with Solutions)
- DynamoDB query is slow
- dynamodb attribute does not exist
- dynamodb number_value cannot be converted to string
- could not lookup table in dynamodb
- failed to list tables not authorized dynamodb
- DynamoDB Key element does not match the schema
- Unable to start DynamoDB Local process
- dynamodb-admin not working
- DynamoDB - The Security Token Included In The Request Is Invalid
- DynamoDB stream lambda error
- dynamodb mapper save not persisting
- is not authorized to perform dynamodb:* on resource
- dynamodb cannot assign requested address
- dynamodb-admin command not found
- DynamoDB local error unable to access JAR file dynamodblocal.jar
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today
Product Features
DynamoDB Tools
- SSH GUI Client
- Chat With Cloud
- MongoDB GUI Client
- AWS Cost Monitoring
- DynamoDB Query Builder
- DynamoDB Code Examples
- DynamoDB Node.js Queries
- DynamoDB JSON Converter
- DynamoDB UUID Generator
- DynamoDB Local Admin GUI
- DynamoDB Pricing Calculator
- DynamoDB Single-Table Design
- Best DynamoDB GUI Clients
- Dynobase vs DynoTable
DynamoDB Info
© 2026 Dynobase