更新时间:2024-08-09 GMT+08:00
分享

接入集群容器资产

主机安全服务支持防护华为云CCE集群、第三方云集群、自建集群以及非集群容器,本章节为您介绍如何将这些资产接入HSS。

背景信息

HSS在提供“容器安装与配置”功能之前,提供了“集群Agent管理”功能实现集群容器资产接入HSS,但通过“集群Agent管理”功能接入HSS的集群资产,无法使用部分容器相关功能,例如容器防火墙、容器集群防护等。

因此HSS在Linux Agent 3.2.12及以上版本、Windows Agent 4.0.23及以上版本提供“容器安装与配置”功能,替代“集群Agent管理”功能,以实现将集群资产完全接入HSS,并能使用HSS提供的所有容器相关功能。

如果您此前使用“集群Agent管理”功能接入了集群资产,为了您能够享受到更好的容器安全防护服务,建议您为集群卸载Agent,再通过本章节提供的接入方式,重新接入集群资产。为集群卸载Agent的操作请参见卸载集群Agent

ANP-Agent说明

本文非CCE集群接入HSS过程中涉及集群连接组件(ANP-Agent),集群连接组件(ANP-Agent)的作用是用于打通主机安全服务到集群的通信,和HSS Agent是两个独立的组件,因此请您注意区分。HSS Agent概念说明请参见Agent概述

前提条件

  • CCE集群接入HSS前,请先将CCEOperatePolicy权限授予HSS,详细操作请参见授权关联云服务权限
  • 非CCE集群接入HSS前,请先准备kubeconfig文件。具体操作如下:

    kubeconfig文件用于将集群的操作权限授权给HSS,方式一配置的kubeconfig文件包含集群管理员权限,方式二生成的kubeconfig文件仅包含HSS所需权限,如果您担心过度授权的问题,请通过方式二准备kubeconfig文件。

    • 方式一:配置默认的kubeconfig文件
      默认的kubeconfig文件在$HOME/.kube/config路径下,您需要按以下操作创建HSS的专属命名空间。
      1. 登录任一集群节点。
      2. 创建hss.yaml文件,并将以下内容复制到hss.yaml文件中。
        {"metadata":{"name":"hss"},"apiVersion":"v1","kind":"Namespace"}
      3. 执行以下命令,创建HSS的专属命名空间。
        kubectl apply -f hss.yaml
    • 方式二:生成HSS专用的kubeconfig文件
      1. 创建HSS的专属命名空间和服务账号。
        1. 登录任一集群节点。
        2. 创建hss-account.yaml文件,并将以下内容复制到hss-account.yaml文件中。
          {"metadata":{"name":"hss"},"apiVersion":"v1","kind":"Namespace"}{"metadata":{"name":"hss-user","namespace":"hss"},"apiVersion":"v1","kind":"ServiceAccount"}{"metadata":{"name":"hss-user-token","namespace":"hss","annotations":{"kubernetes.io/service-account.name":"hss-user"}},"apiVersion":"v1","kind":"Secret","type":"kubernetes.io/service-account-token"}
        3. 执行以下命令,创建HSS的专属命名空间和服务账号。
          kubectl apply -f hss-account.yaml
      2. 生成kubeconfig文件。
        1. 创建gen_kubeconfig.sh文件,并将以下内容复制到gen_kubeconfig.sh文件中。
          #!/bin/bash
          
          KUBE_APISERVER=`kubectl config view  --output=jsonpath='{.clusters[].cluster.server}' | head -n1 `
          CLUSTER_NAME=`kubectl config view -o jsonpath='{.clusters[0].name}'`
          kubectl get secret hss-user-token -n hss -o yaml |grep ca.crt: | awk '{print $2}' |base64 -d >hss_ca_crt
          
          kubectl config set-cluster ${CLUSTER_NAME} --server=${KUBE_APISERVER}  --certificate-authority=hss_ca_crt  --embed-certs=true --kubeconfig=hss_kubeconfig.yaml
          kubectl config set-credentials hss-user --token=$(kubectl describe secret hss-user-token -n hss | awk '/token:/{print $2}') --kubeconfig=hss_kubeconfig.yaml
          kubectl config set-context hss-user@kubernetes --cluster=${CLUSTER_NAME} --user=hss-user --kubeconfig=hss_kubeconfig.yaml
          kubectl config use-context hss-user@kubernetes --kubeconfig=hss_kubeconfig.yaml
        2. 执行以下命令,生成名称为“hss_kubeconfig.yaml”的kubeconfig文件
          bash gen_kubeconfig.sh

约束与限制

  • CCE集群限制:
    • 版本限制:CCE标准版、CCE Turbo版。
    • 节点资源剩余要求:内存必须50MiB及以上,CPU必须200m及以上
  • 第三方云集群或自集群限制:
    • 节点规格要求:CPU必须2核及以上,内存必须4GiB及以上,系统盘必须40GiB及以上,数据盘必须100GiB及以上
    • 私网接入Region限制:目前仅北京一、北京四、上海一、上海二、广州、香港、新加坡、贵阳一、雅加达支持第三方云集群或自建集群通过私网接入HSS。

非集群节点接入HSS

非集群纳管的容器接入HSS,和普通主机接入HSS方式一致,即在节点上安装Agent即可。安装Agent操作详情请参见为主机安装Agent

集群接入HSS

集群接入HSS,即在集群节点上安装Agent,将集群资产接入HSS进行防护。不同类型的集群的接入方法,请参考以下方式:

后续操作

集群节点或非集群节点接入HSS后,还处于未防护状态,您需要为这些资产开启防护,详细操作请参见开启容器版防护

相关文档