更新时间:2023-07-06 GMT+08:00

CCE安全使用指引

节点安全加固说明

CCE服务的集群节点基于公有云IMS服务发布的公共镜像进行制作。CCE会对节点上安装的CCE软件进行安全加固,而OS相关的配置默认与公共镜像保持一致,用户应根据自身的安全诉求进行相应的安全加固。

容器安全使用建议

CCE给用户提供的是一个独享集群,不建议以共享集群方式为多租户使用。当用户以共享集群的方式提供给多租户使用时,请参考如下容器安全使用建议进行安全加固。

表1 容器安全使用建议

分类

安全使用建议

权限最小化

  1. 容器中通过sudo白名单的方式限制普通用户可以执行的docker命令(白名单)。
  2. 建议Kubernetes pod限制使用特权容器,即不要使用如下方式:
    apiVersion: v1
    kind: Pod
    metadata:
      name: hello-world
    spec:
      containers:
        - name: hello-world-container
          # The container definition
          # ...
          securityContext:
            privileged: true

默认不使用default serviceaccount下的Token。

  • 默认关闭default serviceaccount下的自动挂载开关。完成automountServiceAccountToken: false设置后,创建的工作负载将不会默认挂载token。
    注意:

    每个命名空间都要按需设置;设置完毕后滚动重启相应命名空间下的pod。

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: default
    automountServiceAccountToken: false
  • 有选择性的在工作负载中挂载default serviceaccount下的Token:
    ...
    spec:
      template:
        spec:
          serviceAccountName: default
          automountServiceAccountToken: true
          ...

网络隔离

集群内容器之间的网络隔离安全加固:

通过networkpolicy策略实现访问控制。

容器和集群外主机的网络隔离安全加固:

通过VPC内的安全组实现访问控制。

容器和集群管理面的网络隔离安全加固:

由于CCE集群是私有集群,且工作负载有访问集群apiserver的场景,因此CCE未限制容器和Kubernetes管理面的网络通信,用户如通过限制Pod的QoS保证加固网络安全。

禁止挂载敏感主机目录

  • 如非必须,在启动容器时请不要挂载主机上的/var/run/docker.sock文件到容器内。
  • 不要将主机上的hostPath目录挂载到容器中,如确有必要,则以只读的方式挂载,例如:/、/boot、/dev、/etc、/lib、/proc、/sys、/usr等。