Secrets Manager secret's resource policy allows all principals
- Severity
- High
- Service
- Secrets Manager
- Check ID
- SECRETSMANAGER_SECRET_PUBLIC
What this check finds
The secret's resource policy grants access to Principal "*" with no condition that narrows it to your account or organisation. Every principal in your account can use it without an IAM grant, and if the secret is encrypted with a customer managed key whose policy allows it, so can anyone with an AWS account.
Passing looks like: Secret resource policies do not allow all principals.
How to fix it
Remove the Principal "*" statement, or narrow it with a condition such as aws:PrincipalOrgID or aws:PrincipalAccount.
AWS CLI
aws secretsmanager put-resource-policy --secret-id SECRET_NAME --resource-policy file://policy.json --block-public-policy
Names in capitals are placeholders for your own resource. Review a command before you run it.
AWS console
Secrets Manager → Secrets → select secret → Resource permissions → Edit permissions.
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 |
|---|---|
| PCI-DSS v4.0.1 |
|
| HIPAA Security Rule |
|
| SOC 2 — Trust Services Criteria |
|
| 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