No Authenticated-Users Read Access
ID: CTL.S3.AUTH.READ.001
Category: Access Control
Severity: Critical
What This Checks
S3 buckets must not grant read access to the AuthenticatedUsers predefined group. Any bucket where authenticated_users_read is true is flagged as unsafe.
Why It Matters
The AuthenticatedUsers group includes every AWS account holder worldwide -- not just users in your organization. Granting read access to this group on a bucket like acme-patient-records-staging is nearly as dangerous as making the bucket fully public: any person with a free AWS account can read every object. This misconfiguration is a legacy of S3's original ACL model and is frequently found in older buckets that predate bucket policies. AWS itself recommends against using AuthenticatedUsers in any context.
What A Violation Looks Like
$ stave apply --controls controls/s3 --observations ./observations --max-unsafe 0s --now 2026-01-15T00:00:00Z
{
"control_id": "CTL.S3.AUTH.READ.001",
"control_name": "No Authenticated-Users Read Access",
"resource_id": "acme-patient-records-staging",
"resource_type": "aws_s3_bucket",
"resource_vendor": "aws",
"evidence": {
"matched_properties": [
{
"path": "properties.storage.visibility.authenticated_users_read",
"value": true
}
],
"first_unsafe_at": "2026-01-03T00:00:00Z",
"last_seen_unsafe_at": "2026-01-15T00:00:00Z",
"unsafe_duration_hours": 288,
"threshold_hours": 0,
"why_now": "Resource has been unsafe for 288 hours (threshold: 0 hours). Unsafe since 2026-01-03T00:00:00Z."
},
"mitigation": {
"description": "Control violation detected.",
"action": "Review the unsafe configuration and remediate."
}
}
Correct Configuration
A safe bucket does not grant read access to the AuthenticatedUsers group:
{
"storage": {
"visibility": {
"authenticated_users_read": false
}
}
}
To remediate: Remove the ACL grant to AuthenticatedUsers. Replace with specific IAM principals or use a bucket policy with explicit account IDs. Enable S3 Public Access Block with IgnorePublicAcls set to true to neutralize any remaining ACL-based grants.
Related Controls
CTL.S3.PUBLIC.004-- No Public Read via ACL (flagsAllUsersread grants, the fully public equivalent)CTL.S3.ACCESS.001-- No Unauthorized Cross-Account Access (flags external account principals in bucket policies)CTL.S3.CONTROLS.001-- Public Access Block Must Be Enabled (PAB can mitigate ACL-based grants)