GKE Kubernetes Dashboardを無効化する手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、gcloud CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、GKEクラスタでKubernetes Dashboardが有効化されているリスクと、それを無効化する方法について解説します。

ポリシーの説明
Kubernetes Dashboardは、Kubernetesクラスタを管理するためのWebベースのユーザーインターフェースです。便利な管理ツールである一方、GKEではGoogle Cloud Consoleという、より安全で機能豊富な代替手段が提供されています。
Kubernetes Dashboardには以下のような特徴があります:
- クラスタ内のリソース(Pod、Service、Deploymentなど)の表示と管理
- ログの確認やコンテナへのシェルアクセス
- YAMLファイルを通じたリソースの作成と編集
- クラスタの状態やメトリクスの可視化
しかし、このダッシュボードはセキュリティ上の懸念があるため、GKEではデフォルトで無効化されており、有効化は推奨されていません。
現在は提供されていないため、古いクラスターでのみ対象となる可能性があります。
修復方法
コンソールでの修復手順
Google Cloud ConsoleからKubernetes Dashboardを無効化する直接的な方法はありませんが、以下の手順で確認と対応ができます:
- Google Cloud Consoleにアクセスし、対象のプロジェクトを選択します。
- Kubernetes Engine > クラスタに移動します。
- 対象のクラスタ名をクリックして詳細画面を開きます。
- ワークロードタブを選択し、
kubernetes-dashboard
という名前のDeploymentやServiceが存在するか確認します。 - もし存在する場合は、Cloud Shellを開いて以下のコマンドで削除します:
# クラスタの認証情報を取得
gcloud container clusters get-credentials [CLUSTER_NAME] --zone [ZONE] --project [PROJECT_ID]
# Kubernetes Dashboardの削除
kubectl delete deployment kubernetes-dashboard -n kubernetes-dashboard
kubectl delete service kubernetes-dashboard -n kubernetes-dashboard
kubectl delete namespace kubernetes-dashboard
gcloud CLIでの修復手順
- Kubernetes Dashboardの存在確認:
# クラスタの認証情報を取得
gcloud container clusters get-credentials [CLUSTER_NAME] \
--zone [ZONE] \
--project [PROJECT_ID]
# Dashboardのリソースを確認
kubectl get all -n kubernetes-dashboard
- Kubernetes Dashboardの削除:
# Dashboardの全リソースを削除
kubectl delete namespace kubernetes-dashboard
# または個別に削除
kubectl delete deployment kubernetes-dashboard -n kubernetes-dashboard
kubectl delete service kubernetes-dashboard -n kubernetes-dashboard
kubectl delete serviceaccount kubernetes-dashboard -n kubernetes-dashboard
kubectl delete clusterrolebinding kubernetes-dashboard
kubectl delete clusterrole kubernetes-dashboard
- 削除の確認:
# namespaceが削除されたことを確認
kubectl get namespace kubernetes-dashboard
# Error from server (NotFound): namespaces "kubernetes-dashboard" not found
最後に
この記事では、GKEクラスタでKubernetes Dashboardを無効化する方法について解説しました。Kubernetes Dashboardは便利なツールですが、セキュリティリスクを考慮すると、GKEではGoogle Cloud Consoleを使用することが推奨されます。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。