プロファイル適用性: レベル1
kubelet接続にhttpsを使用します。
apiserver
からkubelets
への接続は、シークレットやキーなどの機密データを含む可能性があります。そのため、apiserver
とkubelets
間の通信には、転送中の暗号化を使用することが重要です。![]() |
注意デフォルトでは、kubelet接続は暗号化されています。
|
影響
apiserver
およびkubelets
でTLSを構成する必要があります。監査
OpenShiftは--kubelet-https引数を使用しません。OpenShiftはコントロールプレーンコンポーネントの認証にX.509証明書を利用します。OpenShiftはAPIサーバを構成して、TLSネゴシエーション中に送信されたユーザ証明書を検証するために内部証明書機関
(CA) を使用します。証明書の検証が成功すると、リクエストは認証され、ユーザ情報は証明書のサブジェクトフィールドから取得されます。
kubeletクライアント証明書が存在することを確認するには、次のコマンドを実行します:
oc get configmap config -n openshift-kube-apiserver -ojson | jq -r '.data["config.yaml"]' | jq '.apiServerArguments["kubelet-client- certificate"]' oc get configmap config -n openshift-kube-apiserver -ojson | jq -r '.data["config.yaml"]' | jq '.apiServerArguments["kubelet-client-key"]' oc -n openshift-apiserver describe secret serving-cert # Run the following command and the output should return true or no output at all oc get configmap config -n openshift-kube-apiserver -ojson | jq -r '.data["config.yaml"]' | jq '.apiServerArguments["kubelet-https"]'
kubeletクライアント証明書およびkubeletクライアントキーのファイルが存在することを確認してください。
クライアント認証ファイル:
/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/kubelet-client/tls.crt
クライアントキー:
/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/kubelet-client/tls.key
openshift-apiserver
のserving-certがkubernetes.io/tlsタイプであり、返されたデータにtls.crt
とtls.key
が含まれていることを確認してください。修復
修復は必要ありません。OpenShiftプラットフォームコンポーネントは認証にX.509証明書を使用します。OpenShiftはプラットフォームコンポーネントのCAと証明書を管理します。これは構成可能ではありません。