プロファイル適用性: レベル1
kubeletが実行中の場合、そのkubeconfigファイルの所有権がroot:rootに設定されていることを確認してください。kubeletのkubeconfigファイルは、ワーカーノード内のkubeletサービスのさまざまなパラメータを制御します。ファイルの整合性を維持するために、そのファイルの所有権を設定する必要があります。ファイルはroot:rootが所有する必要があります。
注意AWS EKSのドキュメントでデフォルト値を確認してください。
|
監査
方法1
- ワーカーノードにSSHで接続します。
- Kubeletサービスが実行中かどうかを確認するには、次のコマンドを入力してください。
sudo systemctl status kubelet
出力はActive: active (running) since..を返す必要があります。 - 各ノードで次のコマンドを実行して、適切なkubeconfigファイルを見つけてください。
ps -ef | grep kubelet
上記のコマンドの出力は、kubeconfigファイルの場所である--kubeconfig/var/lib/kubelet/kubeconfigに類似したものを返すはずです。 - このコマンドを実行してkubeconfigファイルの所有権を取得します:
stat -c %U:%G /var/lib/kubelet/kubeconfig
-
所有権が
root:rootに設定されていることを確認してください。
方法2
特権ポッドを作成して実行する
- ホストのファイルシステムにアクセスするために十分な権限を持つポッドを実行します。これを行うには、hostPathボリュームを使用してノードのファイルシステムをポッドにマウントするポッドをデプロイします。
ホストのルートをポッド内の/hostにマウントするシンプルなポッド定義の例:
apiVersion: v1 kind: Pod metadata: name: file-check spec: volumes: - name: host-root hostPath: path: / type: Directory containers: - name: nsenter image: busybox command: ["sleep", "3600"] volumeMounts: - name: host-root mountPath: /host securityContext: privileged: true - これをファイル (例: file-check-pod.yaml) に保存し、ポッドを作成してください。
kubectl apply -f file-check-pod.yaml
- Podが実行されている場合、ノード上のファイル権限を確認するためにexecでアクセスしてください。
kubectl exec -it file-check -- sh
- 現在、Pod内のシェルにいますが、/hostディレクトリを通じてノードのファイルシステムにアクセスし、ファイルの権限レベルを確認できます。
ls -l /host/var/lib/kubelet/kubeconfig
- 所有権が
root:rootに設定されていることを確認してください。
修復
各ワーカーノードで (システム上のファイルの場所に基づいて) 以下のコマンドを実行してください:
chown root:root <proxy kubeconfig file>
