Kubernetes Dashboard の利用状況の確認

不要な Dashboard を削除し、必要な管理 UI のアクセス経路と権限を制限してください。

説明

Kubernetes Dashboard はクラスターを Web で管理する UI ですが、認証・権限・ネットワークアクセスを継続的に管理する必要があります。存在するだけでインターネット公開を意味するわけではありません。不要なデプロイを残すと、アクセス制御の設定ミスやパッチ適用漏れの余地が増えます。

想定される影響

  • 認証や権限の設定ミスで、管理機能が過剰に公開されるおそれがあります。
  • 使っていないコンポーネントにもパッチ適用と管理が必要です。

対処方法

  • 運用に不要なら、Dashboard のデプロイと専用のアクセス経路・権限を確認して削除してください。他のワークロードと共有するリソースは先に確認してください。
  • 必要な場合はサポート対象のデプロイを維持し、強い認証、最小権限、ネットワーク制限を適用してください。実際にアクセスできる利用者と経路を確認してください。

例

最初の例は過去の Dashboard イメージを使う Deployment の抜粋で、完全なデプロイ構成ではありません。次の Secret は別のリソースであり、適用しても既存の Dashboard は削除されません。

変更前

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  template:
    spec:
      containers:
        - name: kubernetes-dashboard
          image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

過去の Dashboard コンテナーを定義しています。外部からの到達可否は Service やネットワーク設定などによります。

変更後

yaml
apiVersion: v1
kind: Secret
metadata:
  name: application-secret
  namespace: kube-system
type: Opaque

通常の Secret を定義するだけです。Dashboard を削除するには、実際のデプロイと関連リソースを別途整理する必要があります。

参考資料