説明
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 を削除するには、実際のデプロイと関連リソースを別途整理する必要があります。