日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

接入K8s自建集群

云安全中心支持接入K8s(Kubernetes)自建集群進行統一管理和安全風險檢測。本文介紹如何接入K8s自建集群。

版本限制

僅云安全中心的旗艦版支持該功能,其他版本不支持。購買和升級云安全中心服務的具體操作,請參見購買云安全中心升級與降配

使用限制

支持接入的地域限制如下:

  • 自建K8s集群網絡類型為VPC時,僅支持接入華東1(杭州)、華北2(北京)、華東2(上海)、華南1(深圳)和中國香港地域。

  • 自建K8s集群網絡類型為公網時,無地域限制。

前提條件

  • 已在服務器上搭建K8s集群。具體操作,請參見從零搭建K8s集群

  • 已安裝Docker。具體操作,請參見安裝Docker

  • 如果您的K8s集群是通過混合云的方式部署,且公網不可直接訪問,那么您需要先配置流量轉發規則,確保網絡連通后再進行集群接入。

    如何配置流量轉發規則?

    指定一臺ECS服務器,將其訪問流量轉發到第三方K8s集群API Server所在的IDC服務器上。

    例如:將執行轉發任務的ECS服務器10.0.XX.XX中A端口的流量,轉發至第三方K8s集群API Server所在的IDC服務器192.168.XX.XX的B端口。

    • CentOS 7命令

      • 使用firewallcmd:

        firewall-cmd --permanent --add-forward-port=port=<A端口>:proto=tcp:toaddr=<192.168.XX.XX>:toport=<B端口>
      • 使用iptables:

      • # 開啟端口轉發
        echo "1" 	> /proc/sys/net/ipv4/ip_forward
        
        # 設置端口轉發
        iptables -t nat -A PREROUTING -p tcp --dport <A端口> -j DNAT --to-destination <192.168.XX.XX>:<B端口>
    • Windows命令

      netsh interface portproxy add v4tov4 listenport=<端口A> listenaddress=* connectaddress=<192.168.XX.XX	> connectport=<端口B> protocol=tcp
  • 如果您的集群設置了訪問控制策略,請確保已將容器所在地域的IP地址池加入訪問控制的白名單。

    需要加白的IP地址池

    地域

    公網IP

    私網IP

    華東1(杭州)

    47.96.166.214

    100.104.12.64/26

    華東2(上海)

    139.224.15.48、101.132.180.26、47.100.18.171、47.100.0.176、139.224.8.64、101.132.70.106、101.132.156.228、106.15.36.12、139.196.168.125、47.101.178.223、47.101.220.176

    100.104.43.0/26

    華北1(青島)

    47.104.111.68

    100.104.87.192/26

    華北2(北京)

    47.95.202.245

    100.104.114.192/26

    華北3(張家口)

    39.99.229.195

    100.104.187.64/26

    華北5(呼和浩特)

    39.104.147.68

    100.104.36.0/26

    華南1(深圳)

    120.78.64.225

    100.104.250.64/26

    華南3(廣州)

    8.134.118.184

    100.104.111.0/26

    中國香港

    8.218.59.176

    100.104.130.128/26

    日本(東京)

    47.74.24.20

    100.104.69.0/26

    新加坡

    8.219.240.137

    100.104.67.64/26

    美國(硅谷)

    47.254.39.224

    100.104.145.64/26

    美國(弗吉尼亞)

    47.252.4.238

    100.104.36.0/26

    德國(法蘭克福)

    47.254.158.71

    172.16.0.0/20

    英國(倫敦)

    8.208.14.12

    172.16.0.0/20

    印度尼西亞(雅加達)

    149.129.238.99

    100.104.193.128/26

接入K8s自建集群

  1. 登錄云安全中心控制臺。在控制臺左上角,選擇需防護資產所在的區域:中國全球(不含中國)

  2. 在左側導航欄,選擇資產中心 > 容器資產

  3. 集群頁簽,單擊自建集群接入

  4. 自建集群管理面板,單擊自建集群接入,配置要接入的K8s自建集群的信息,然后單擊生成命令

    配置項

    說明

    集群名稱

    輸入自建K8s集群的名稱,例如:text-001。

    過期時間

    選擇自建K8s集群接入命令的過期時間。

    分組

    選擇集群接入后的分組(即選擇集群所在服務器的分組)。

    服務商

    選擇集群所在服務器的服務商。

  5. (可選)在開啟日志區域,選擇是否開啟K8s日志威脅檢測。

    開啟K8s日志威脅檢測,云安全中心可以獲取更多的審計日志以進行更全面的安全風險檢測。開啟威脅檢測前,您需要在K8s集群中安裝Logtail組件并完成審計相關配置。具體操作,請參見開啟日志威脅檢測

  6. 登錄集群所在服務器,新建text-001.yaml文件,將生成的命令拷貝到該文件中保存,然后執行kubectl apply -f text-001.yaml命令,完成集群接入。

    說明

    上述text-001.yaml、kubectl apply -f text-001.yaml中的text-001為集群名稱的示例。實際操作時,請使用實際設置的集群名稱替換text-001。

    完成K8s自建集群接入后,您可以在集群頁簽的集群列表中查看已接入集群的信息。

開啟日志威脅檢測

K8s集群版本為1.16及以上時,您可以通過開啟K8s日志威脅檢測為自建集群提供更全面的安全風險檢測,例如檢測高危操作、攻擊行為等。

一、安裝Logtail組件

具體操作,請參見安裝Logtail組件(自建Kubernetes集群)安裝Logtail章節。

二、開啟集群審計功能

以下步驟供您參考。更多信息,請參見啟用集群API Server審計功能

  1. 已創建注冊集群,并將自建Kubernetes集群接入注冊集群。具體操作,請參見通過控制臺創建注冊集群

  2. 在Master節點上配置審計配置策略文件。

    依次登錄所有Master節點,在審計配置策略文件的路徑/etc/kubernetes/audit-policy.yaml,請根據以下內容修改審計配置策略:

    apiVersion: audit.k8s.io/v1beta1 # This is required.
    kind: Policy
    # Don't generate audit events for all requests in RequestReceived stage.
    omitStages:
      - "RequestReceived"
    rules:
      # The following requests were manually identified as high-volume and low-risk,
      # so drop them.
      - level: None
        users: ["system:kube-proxy"]
        verbs: ["watch"]
        resources:
          - group: "" # core
            resources: ["endpoints", "services"]
      - level: None
        users: ["system:unsecured"]
        namespaces: ["kube-system"]
        verbs: ["get"]
        resources:
          - group: "" # core
            resources: ["configmaps"]
      - level: None
        users: ["kubelet"] # legacy kubelet identity
        verbs: ["get"]
        resources:
          - group: "" # core
            resources: ["nodes"]
      - level: None
        userGroups: ["system:nodes"]
        verbs: ["get"]
        resources:
          - group: "" # core
            resources: ["nodes"]
      - level: None
        users:
          - system:kube-controller-manager
          - system:kube-scheduler
          - system:serviceaccount:kube-system:endpoint-controller
        verbs: ["get", "update"]
        namespaces: ["kube-system"]
        resources:
          - group: "" # core
            resources: ["endpoints"]
      - level: None
        users: ["system:apiserver"]
        verbs: ["get"]
        resources:
          - group: "" # core
            resources: ["namespaces"]
      # Don't log these read-only URLs.
      - level: None
        nonResourceURLs:
          - /healthz*
          - /version
          - /swagger*
      # Don't log events requests.
      - level: None
        resources:
          - group: "" # core
            resources: ["events"]
      # Secrets, ConfigMaps, and TokenReviews can contain sensitive & binary data,
      # so only log at the Metadata level.
      - level: Metadata
        resources:
          - group: "" # core
            resources: ["secrets", "configmaps"]
          - group: authentication.k8s.io
            resources: ["tokenreviews"]
      # Get repsonses can be large; skip them.
      - level: Request
        verbs: ["get", "list", "watch"]
        resources:
          - group: "" # core
          - group: "admissionregistration.k8s.io"
          - group: "apps"
          - group: "authentication.k8s.io"
          - group: "authorization.k8s.io"
          - group: "autoscaling"
          - group: "batch"
          - group: "certificates.k8s.io"
          - group: "extensions"
          - group: "networking.k8s.io"
          - group: "policy"
          - group: "rbac.authorization.k8s.io"
          - group: "settings.k8s.io"
          - group: "storage.k8s.io"
      # Default level for known APIs
      - level: RequestResponse
        resources:
          - group: "" # core
          - group: "admissionregistration.k8s.io"
          - group: "apps"
          - group: "authentication.k8s.io"
          - group: "authorization.k8s.io"
          - group: "autoscaling"
          - group: "batch"
          - group: "certificates.k8s.io"
          - group: "extensions"
          - group: "networking.k8s.io"
          - group: "policy"
          - group: "rbac.authorization.k8s.io"
          - group: "settings.k8s.io"
          - group: "storage.k8s.io"
      # Default level for all other requests.
      - level: Metadata
  3. 在Master節點上配置Kube API Server文件。

    依次登錄所有Master節點機器,在Kube API Server文件的路徑/etc/kubernetes/manifests/kube-apiserver.yaml,完成以下相關配置:

    • 根據以下示例添加command參數--audit-log-*

      ...
      spec:
        containers:
        - command:
          - kube-apiserver
          - --audit-log-maxbackup=10
          - --audit-log-maxsize=100
          - --audit-log-path=/var/log/kubernetes/kubernetes.audit
          - --audit-log-maxage=30
          - --audit-policy-file=/etc/kubernetes/audit-policy.yaml
          ...
    • 根據以下示例添加env參數aliyun_logs_audit-*

      您需要將以下示例中的{cluster_id}替換為您集群的Cluster ID。您可以登錄云安全中心控制臺,在容器資產頁面獲取集群的Cluster ID,具體位置請參見下圖。獲取集群Cluster-ID

      ...
      spec:
        containers:
        - command:
          - kube-apiserver
          - --audit-log-maxbackup=10
          - --audit-log-maxsize=100
          - --audit-log-path=/var/log/kubernetes/kubernetes.audit
          - --audit-log-maxage=30
          - --audit-policy-file=/etc/kubernetes/audit-policy.yaml
          ...
          ...
          env:
          - name: aliyun_logs_audit-${cluster_id}
            value: /var/log/kubernetes/kubernetes.audit
          - name: aliyun_logs_audit-${cluster_id}_tags
            value: audit=apiserver
          - name: aliyun_logs_audit-${cluster_id}_product
            value: k8s-audit
          - name: aliyun_logs_audit-${cluster_id}_jsonfile
            value: "true"
          image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/kube-apiserver:v1.20.4-aliyun.1
    • 根據以下示例掛載/etc/kubernetes/audit-policy.yaml到API Server Pod。

      ...
      spec:
        containers:
        - command:
          - kube-apiserver
          - --audit-log-maxbackup=10
          - --audit-log-maxsize=100
          - --audit-log-path=/var/log/kubernetes/kubernetes.audit
          - --audit-log-maxage=30
          - --audit-policy-file=/etc/kubernetes/audit-policy.yaml
          ...
          ...
          env:
          - name: aliyun_logs_audit-${cluster_id}
            value: /var/log/kubernetes/kubernetes.audit
          - name: aliyun_logs_audit-${cluster_id}_tags
            value: audit=apiserver
          - name: aliyun_logs_audit-${cluster_id}_product
            value: k8s-audit
          - name: aliyun_logs_audit-${cluster_id}_jsonfile
            value: "true"
          image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/kube-apiserver:v1.20.4-aliyun.1
          ...
          ...
          volumeMounts:
          - mountPath: /var/log/kubernetes
            name: k8s-audit
          - mountPath: /etc/kubernetes/audit-policy.yaml
            name: audit-policy
            readOnly: true
          ...
          ...
        volumes:
        - hostPath:
            path: /var/log/kubernetes
            type: DirectoryOrCreate
          name: k8s-audit
        - hostPath:
            path: /etc/kubernetes/audit-policy.yaml
            type: FileOrCreate
          name: audit-policy
        ...

三、驗證日志采集結果

  1. 登錄日志服務控制臺

  2. 單擊目標Project名稱。

  3. 查看相關日志是否已采集到目標Project下的日志庫(Logstore)。

四、開啟威脅檢測

  1. 登錄云安全中心控制臺。在控制臺左上角,選擇需防護資產所在的區域:中國全球(不含中國)

  2. 在左側導航欄,選擇資產中心 > 容器資產

  3. 集群頁簽,單擊自建集群接入

  4. 找到需要開啟K8s日志威脅檢測的自建集群,在操作列單擊編輯

  5. 開啟日志頁簽,選中開啟K8S日志上報進行威脅檢測,配置審計日志信息,然后單擊保存

    • 審計日志Region:選擇審計日志的存儲地域。

    • 審計日志Project:輸入一、安裝Logtail組件中創建的Project名稱。例如:如k8s-log-custom-sd89ehdq。

    • 審計日志LogStore:輸入一、安裝Logtail組件中自動創建的LogStore名稱。例如:audit-027b007a7dd11967a9f7e2449d8dc497。