Skip to main content

More Info:

The Kubernetes Web Ui (Dashboard) Has Been A Historical Source Of Vulnerability And Should Only Be Deployed When Necessary.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. Identify all GKE clusters and their locations
    Run on: any machine with gcloud access.
    Replace PROJECT_ID with your GCP project ID and note each cluster name and location.
  2. Check dashboard add‑on status for each cluster
    Run on: any machine with gcloud access. For each cluster:
    • If the result is null or "disabled": true, the legacy add‑on is not enabled.
    • If "disabled": false or an object with enabled: true is present, the dashboard add‑on is enabled.
  3. Decide if the dashboard is strictly required
    • If any cluster shows the dashboard enabled, review with application/operations teams:
      • Is the dashboard actively used for operations, or could kubectl, Cloud Console, or other tools replace it?
      • Are there compliance or security requirements that prohibit in-cluster dashboards?
    • If not strictly required, plan to disable it. If required, ensure strong RBAC, restricted network access, and auditing.
  4. Disable the Kubernetes Dashboard add‑on where not needed
    Run on: any machine with gcloud access. For each cluster where you decided to disable:
    Operational impact: this removes the managed dashboard add‑on; any workflows depending on it will lose access and must use alternative tools.
  5. Verify the dashboard add‑on is disabled
    Run on: any machine with gcloud access. For each updated cluster:
    Confirm the output is null or shows "disabled": true.
  6. (Optional) Search for any other dashboard deployments
    This is not controlled by the add‑on setting but may indicate residual dashboards.
    Run on: any machine with gcloud and kubectl access. For each cluster, get credentials then:
    If you find custom dashboard deployments, review and remove them if they’re not strictly required.
kubectl cannot disable the managed Kubernetes Web UI (Dashboard) in GKE, because this setting is controlled at the GKE cluster add‑on level in the Google Cloud control plane. Use the cloud provider configuration (gcloud CLI/console/IaC) as described in the Manual Steps section to remediate this finding.
How to run (any machine with gcloud access):
What indicates a problem:
  • Any row where ADDON_STATUS is ENABLED indicates the Kubernetes Dashboard addon is active on that cluster and should be reviewed.
  • Rows with ADDON_STATUS=UNKNOWN mean the script could not confidently determine the state; investigate those clusters manually with:

Additional Reading: