Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
kinesis_stream_data_retention_periodProvider: AWS
Service:
kinesisSeverity: MEDIUM
Categories:
resilienceResource type:
AwsKinesisStreamWhat this check verifies
Kinesis Data Streams retention window is evaluated to confirm records are kept for at least the configured minimum duration (default168 hours).
Risk
Insufficient retention causes records to expire before consumers read or reprocess them, undermining availability and analytics integrity. Backlogs or outages can create irreversible data gaps, hinder investigations and recovery, and enable denial-of-service-by-lag against event pipelines.Recommendation
Set the retention period to exceed worst-case consumer lag, replay needs, and compliance windows; use at least168 hours by default (or customize as necessary) and raise as required. Enforce change control and least privilege on retention changes, monitor consumer lag, and maintain secondary durability (e.g., archival) for critical streams.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws kinesis increase-stream-retention-period —stream-name <example_resource_name> —retention-period-hours 168
References
- https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/kinesis-controls.html#kinesis-3
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = kinesis_stream_data_retention_period. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks