Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
kinesis_stream_encrypted_at_restProvider: AWS
Service:
kinesisSeverity: HIGH
Categories:
encryptionResource type:
AwsKinesisStreamWhat this check verifies
Amazon Kinesis Data Streams with server-side encryption use AWS KMS to protect records at rest. The evaluation determines whether a stream hasSSE-KMS configured with a KMS key; streams lacking KMS-based at rest encryption are identified.
Risk
Without SSE-KMS, records in shards may be exposed in plaintext if storage, backups, or analytics exports are accessed, undermining confidentiality. Absence of KMS controls also reduces integrity and oversight by removing key policies, rotation, and audit trails-enabling covert data exfiltration or insider misuse.Recommendation
Enable SSE-KMS on all streams.- Use customer-managed keys for rotation and ownership
- Enforce least privilege on KMS grants; limit cross-account use
- Monitor key usage and require encryption in CI/CD
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws kinesis start-stream-encryption —stream-name <KINESIS_STREAM_NAME> —encryption-type KMS —key-id alias/aws/kinesis
References
- https://docs.aws.amazon.com/securityhub/latest/userguide/kinesis-controls.html#kinesis-1
- https://docs.aws.amazon.com/streams/latest/dev/getting-started-with-sse.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/Kinesis/server-side-encryption.html
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_encrypted_at_rest. 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