More Info:
Non-default bindings to the group system:unauthenticated grant permissions to any unauthenticated caller. They should be removed or replaced with authenticated, least-privilege bindings.Risk Level
CriticalAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List all non-default bindings to
system:unauthenticated(run on any machine with kubectl access): -
For each listed binding, inspect its current permissions to understand the impact of removal (any machine with kubectl access):
-
Decide whether each binding is necessary. For any binding that must remain functionally, design a safer alternative:
- Identify or create an authenticated, user-defined group (for example
myorg-public-viewers) outside the cluster. - Plan to bind that group to the same Role/ClusterRole instead of
system:unauthenticated, and, if possible, reduce the role’s permissions to least privilege.
- Identify or create an authenticated, user-defined group (for example
-
Create replacement bindings using authenticated groups where needed (any machine with kubectl access). Example YAML for a replacement
ClusterRoleBinding:Adjust names, kind, and namespace for RoleBinding cases: -
After confirming that the replacement bindings satisfy your operational requirements (for example by testing access with an account in the new group), delete the unsafe bindings that reference
system:unauthenticated(any machine with kubectl access): -
Verification (any machine with kubectl access):
Confirm that the output is:
Using kubectl
Using kubectl
On any machine with kubectl access:Optionally inspect each binding and its permissions before removal, for example:Apply it:
- List all non-default bindings to
system:unauthenticated(review targets before deleting):
- Delete unsafe ClusterRoleBindings that bind
system:unauthenticated(after review):
- Delete unsafe RoleBindings that bind
system:unauthenticated(after review):
- (Optional) Create safer, authenticated bindings instead of
system:unauthenticated:
- Verification (rerun the benchmark audit command):
Automation
Automation

