More Info:
The Cluster Access Manager API streamlines management of authenticated IAM principals for EKS clusters. Choose the appropriate authentication mode to centralize and secure access control.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS EKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On any machine with kubectl access, confirm cluster identity and context to avoid changing the wrong cluster:
-
Still on the kubectl machine, check whether the legacy
aws-authConfigMap is in use and inspect its contents:Review:- Whether
mapRoles,mapUsers, ormapAccountsare present. - Who currently has access (IAM roles/users/accounts) and whether this matches your organization’s intended access model.
- Whether
-
In the AWS Management Console, navigate to Amazon EKS → your cluster → Access → Access configuration and review:
- The “Cluster authentication mode” setting (EKS API vs ConfigMap).
- Whether this matches your intended source of authenticated IAM principals (centralized via EKS Access Entries, or managed via
aws-auth).
-
If the cluster authentication mode does not align with your desired model and the cluster is newly created or being created via IaC, adjust it at creation time:
- In the console: choose either EKS API or ConfigMap under “Cluster authentication mode” before provisioning.
- In IaC (CloudFormation/Terraform/etc.): set the equivalent parameter for authentication mode so that future clusters are created with the correct setting.
-
For existing clusters (where authentication mode cannot be changed), decide on your management model:
- If using EKS API: ensure all required IAM principals are granted access via EKS Access Entries (console or IaC) and gradually phase out any reliance on
aws-auth. - If using ConfigMap: keep
aws-authas the source of truth and maintain it via GitOps/IaC, ensuring its contents are regularly reviewed and audited.
- If using EKS API: ensure all required IAM principals are granted access via EKS Access Entries (console or IaC) and gradually phase out any reliance on
-
Re-verify configuration after any changes:
- In the console: confirm the “Cluster authentication mode” under Access → Access configuration.
- With kubectl: confirm
aws-authmatches your intended mapping (or is empty/unused if you’ve fully moved to EKS API):
Using kubectl
Using kubectl
- If the ConfigMap does not exist or is empty but you expect to be using
ConfigMapauthentication mode, that’s a problem. - If
mapRoles/mapUsers/mapAccountscontain IAM principals that should not have cluster access, or use overly broad roles (e.g., admin roles for many users), that indicates a problem with access control design. - If there is an
eks.amazonaws.com/role-arnmapping you don’t recognize or that grants cluster-admin privileges widely, that is a red flag.
- Look for
ClusterRoleBindingobjects that bindcluster-admin(or other powerful roles) to subjects that correspond to IAM users/roles (often viasystem:mastersgroup or mapped IAM entities inaws-auth) more broadly than intended. - Any binding that effectively grants admin rights to principals you did not intend to be administrators is a problem.
- Confirm that
subjectsmatch only the IAM-mapped Kubernetes users/groups that should have that level of access. - Mismatches between intended IAM principals and actual bound subjects indicate misaligned access control.
- Run this as different principals (e.g., assume different IAM roles and re-run
kubectl auth can-i --list) to see what each IAM-mapped identity can do. - If non-admin IAM principals can perform cluster-admin-level actions (create clusterroles, clusterrolebindings, etc.) when they should not, that indicates a problem in your current combination of
aws-authmappings and RBAC.
kubectlcannot display or change the EKS Cluster Authentication Mode itself (EKS API vs ConfigMap); that setting is only visible and configurable via the AWS console/CLI/IaC at cluster creation time. Use the above commands to understand the effective access model and then review the cluster’s Authentication Mode manually in the AWS console as described in the remediation.
Automation
Automation
-
AUTH_MODE:API_AND_CONFIG_MAP(or similar mixed modes) requires review: both EKS Access Entries andaws-authare in play.EKSAUTH/EKS_API-only orCONFIG_MAP-only are consistent with a single source, but must match your intended design.
-
ACCESS_ENTRY_COUNT:- If
AUTH_MODEisEKS_API(or equivalent) andACCESS_ENTRY_COUNTis0, access via IAM/EKS API may be misconfigured or overly restrictive.
- If
-
HAS_CM/CM_MODE:- If
AUTH_MODEisEKS_APIbutHAS_CM=YESandCM_MODE=ACTIVE, there are legacyaws-authmappings that should be reviewed and possibly removed. - If
AUTH_MODEisCONFIG_MAPandHAS_CM=NOorCM_MODE=EMPTY, the cluster may not have any IAM principal mappings configured.
- If
aws-auth usage match your security requirements.
