Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Kubernetes集群的CIS基准问题_Security_Kubernetes - Fatal编程技术网

Security Kubernetes集群的CIS基准问题

Security Kubernetes集群的CIS基准问题,security,kubernetes,Security,Kubernetes,我正在主节点上运行CIS kube bench工具,并试图解决此错误 [FAIL] 1.2.6 Ensure that the --kubelet-certificate-authority argument is set as appropriate (Automated). 我知道我需要更新API服务器清单YAML文件,该标志指向正确的CA文件--kubelet证书颁发机构。但是,我不确定哪一个是kubelet的正确CA证书 以下是我在PKI目录中的文件:- apiserver-etcd

我正在主节点上运行CIS kube bench工具,并试图解决此错误

[FAIL] 1.2.6 Ensure that the --kubelet-certificate-authority argument is set as appropriate (Automated). 
我知道我需要更新API服务器清单YAML文件,该标志指向正确的CA文件--kubelet证书颁发机构。但是,我不确定哪一个是kubelet的正确CA证书

以下是我在PKI目录中的文件:-

apiserver-etcd-client.crt
apiserver-etcd-client.key
apiserver-kubelet-client.crt
apiserver-kubelet-client.key
apiserver.crt
apiserver.key
ca.crt
ca.key
etcd
front-proxy-ca.crt
front-proxy-ca.key
front-proxy-client.crt
front-proxy-client.key
sa.key
sa.pub

3关于同一主题的非常相似的讨论。我不会提供给你们所有的步骤,因为它在文档和堆栈上的相关问题中写得很好。只有高层次的概述

  • 你的行动:

    • 遵循Kubernetes文档并设置
    这些连接终止于kubelet的HTTPS端点By 默认情况下,apiserver不验证kubelet的服务 证书,使连接受制于中间人 在不受信任和/或公共网络上运行不安全的攻击

    • 启用和
    然后,在主节点上编辑API服务器pod规范文件
    /etc/kubernetes/manifests/kube apiserver.yaml
    ,并将
    --kubelet certificate authority
    参数设置为证书颁发机构证书文件的路径


    来自@Matt

    • 使用
      /etc/kubernetes/ssl/ca.crt
      为具有有效IP SAN的kubelet签署新证书
    • 设置
      --kubelet证书颁发机构=/etc/kubernetes/ssl/ca.crt
      (有效ca)
    • /var/lib/kubelet/config.yaml
      (kubelet配置文件)中,设置
      tlsCertFile
      tlsPrivateKeyFile
      指向新创建的kubelet
      crt
      文件
    和来自:

    是的,您必须为kubelets生成证书并签名 提供的证书颁发机构位于主机上的此处
    /etc/kubernetes/ssl/ca.crt


    默认情况下,在Kubernetes中有3个不同的父CA(Kubernetes CA、etcd CA、Kubernetes front proxy CA)。您正在寻找kubernetes ca,因为kubelet正在使用kubernetes ca,您可以检查。kubernetes ca默认路径为/etc/kubernetes/pki/ca.crt,但也可以使用以下命令通过kubelet configmap进行验证

    kubectl get configmap -n kube-system $(kubectl get configmaps -n kube-system | grep kubelet  | awk '{print $1}') -o yaml | grep -i clientca