ビュー:
プロファイル適用性: レベル1
kubeletが実行されている場合、そのkubeconfigファイルの所有権がroot:rootに設定されていることを確認してください。
kubeletのkubeconfigファイルは、ワーカーノード内のkubeletサービスの様々なパラメータを制御します。ファイルの整合性を維持するために、そのファイルの所有権を設定する必要があります。ファイルはroot:rootによって所有されるべきです。
注意
注意
デフォルト値についてはAWS EKSのドキュメントを参照してください。

監査

方法1
ワーカーノードへのSSH。
  1. Kubeletサービスが実行されているか確認するために、次のコマンドを入力してください。
    sudo systemctl status kubelet
    出力はActive: active (running) since..を返す必要があります。
  2. 各ノードで次のコマンドを実行して、適切なkubeconfigファイルを見つけてください。
    ps -ef | grep kubelet
    出力は、kubeconfigファイルの場所を示す--kubeconfig /var/lib/kubelet/kubeconfigのようなものを返す必要があります。
  3. このコマンドを実行してkubeconfigファイルの所有権を取得してください。
    stat -c %U:%G /var/lib/kubelet/kubeconfig
  4. 所有権がroot:rootに設定されていることを確認してください。
方法2
特権ポッドを作成して実行する
  1. ホストのファイルシステムにアクセスするために十分な権限を持つポッドを実行します。これを行うには、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
  2. これをファイル (例: file-check-pod.yaml) に保存し、ポッドを作成してください。
    kubectl apply -f file-check-pod.yaml
  3. Podが実行されている場合、ノード上のファイル所有権を確認するためにPodにexecしてください。
    kubectl exec -it file-check -- sh
  4. 現在、Pod内のシェルにいますが、/hostディレクトリを通じてノードのファイルシステムにアクセスし、ファイルの所有権を確認できます。
    ls -l /host/var/lib/kubelet/kubeconfig
  5. 所有権がroot:rootに設定されていることを確認してください。

修復

各ワーカーノードで (システム上のファイルの場所に基づいて) 以下のコマンドを実行してください。例えば:
chown root:root <proxy kubeconfig file>