KMS key is publicly accessible
- Severity
- Medium
- Service
- KMS
- Check ID
- KMS_PUBLIC
What this check finds
This KMS key's policy allows access from anyone, not only principals in your own account. This may allow an attacker to decrypt data using the KMS key.
Passing looks like: KMS keys not publicly accessible.
How to fix it
Update the KMS key policy to remove the Principal '*' statement and restrict access to specific IAM roles or accounts.
AWS CLI
aws kms put-key-policy --key-id KEY_ID --policy-name default --policy 'POLICY_JSON'
Names in capitals are placeholders for your own resource. Review a command before you run it.
AWS console
KMS → Customer managed keys → select key → Key policy → Edit.
Compliance controls it is evidence for
A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works
| Framework | Controls |
|---|---|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
Checked on every scan
KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs