Check ID: kafka_cluster_unrestricted_access_disabled
Provider: AWS
Service: kafka
Severity: CRITICAL
Categories: identity-access
Resource type: AwsMskCluster

What this check verifies

Amazon MSK clusters are evaluated for unauthenticated client access. Serverless clusters inherently require authentication; provisioned clusters are checked for configurations that allow unrestricted connections rather than authenticated clients.

Risk

Allowing unauthenticated access lets anyone connect and:
  • Read sensitive topics (confidentiality)
  • Publish or alter data (integrity)
  • Overload brokers and consumers (availability)
This enables message exfiltration, stream poisoning, and abuse of trusted data pipelines.

Recommendation

Disable unauthenticated access and require strong client authentication (mTLS or IAM/SASL).
  • Enforce least privilege with scoped ACLs
  • Restrict network paths via private connectivity and tight security groups
  • Encrypt in transit, monitor access, and rotate credentials regularly

Remediation

aws kafka update-security --cluster-arn <example_resource_arn> --current-version <example_current_version> --client-authentication 'Unauthenticated={Enabled=false}'

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = kafka_cluster_unrestricted_access_disabled. 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