High-confidence secret in SSM String parameter (unencrypted)
- Severity
- Critical
- Service
- Secrets exposure
- Check ID
- SECRETS_SSM_PARAM_HIGH
What this check finds
An SSM Parameter Store parameter of type String or StringList matches a high-confidence credential pattern. String parameters are not encrypted at rest and are readable in plaintext by any IAM principal with ssm:GetParameter.
Passing looks like: No secrets in SSM string parameters.
How to fix it
Convert to SecureString: aws ssm put-parameter --name PARAM_NAME --value VALUE --type SecureString --key-id alias/aws/ssm --overwrite
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
More Secrets exposure checks
- CriticalHigh-confidence secret in API Gateway stage variable
- CriticalHigh-confidence secret in CloudFormation stack parameter (NoEcho disabled)
- CriticalHigh-confidence secret in CodeBuild PLAINTEXT environment variable
- CriticalHigh-confidence secret in EC2 user-data
- CriticalHigh-confidence secret in ECS running task environment variable
- CriticalHigh-confidence secret in ECS task definition environment variable
- CriticalHigh-confidence secret in Elastic Beanstalk environment variable
- CriticalHigh-confidence secret in Lambda environment variable