Todos os produtos
Search
Central de documentação

Security Center:Add a self-managed Kubernetes cluster to Security Center

Última atualização: Sep 20, 2026

O Security Center oferece suporte à conexão de clusters K8s (Kubernetes) auto-gerenciados para gerenciamento centralizado e detecção de riscos de segurança. Este tópico descreve como conectar um cluster K8s auto-gerenciado.

Limites de versão

  • Assinatura: Ultimate (caso sua edição atual não ofereça suporte a este recurso, upgrade).

    Nota

    Certifique-se de que a edição de proteção do servidor corresponda à edição adquirida. Para mais informações, consulte Bind a server protection edition.

  • Pagamento conforme o uso: O pagamento conforme o uso de Host and Container Security está ativado (caso não esteja ativado, purchase).

    Nota

    O nível de proteção do servidor deve estar definido como Full Protection for Hosts and Containers. Para mais informações, consulte Bind a server protection level.

Restrições

As restrições de região para integração são as seguintes:

  • Se o tipo de rede do cluster K8s auto-gerenciado for VPC, você só poderá conectar o cluster nas regiões China (Hangzhou), China (Beijing), China (Shanghai), China (Shenzhen) e China (Hong Kong).

  • Se o tipo de rede do cluster K8s auto-gerenciado for rede pública, não há restrições de região.

Pré-requisitos

  • Um cluster K8s deve estar configurado no servidor.

  • O Docker deve estar instalado.

  • Caso queira usar o recurso de análise de exposição do cluster, você também deve concluir as seguintes configurações de rede com base no modo de implantação do seu cluster e nas configurações da política de controle de acesso. Para mais informações, consulte Analyze cluster exposure.

    • Se o seu cluster K8s estiver implantado em uma cloud híbrida e não puder ser acessado diretamente pela rede pública, configure regras de encaminhamento de tráfego para garantir a conectividade de rede antes de conectar o cluster ao Security Center.

      Configurar regras de encaminhamento de tráfego

      Especifique uma instância ECS e encaminhe o tráfego de acesso dessa instância ECS para o servidor IDC onde reside o servidor de API do cluster K8s de terceiros.

      Por exemplo, encaminhe o tráfego da porta A na instância ECS 10.0.XX.XX, que executa a tarefa de encaminhamento, para a porta B no servidor IDC 192.168.XX.XX, onde reside o servidor de API do cluster K8s de terceiros.

      • Comandos do CentOS 7

        • Use o firewall-cmd:

          firewall-cmd --permanent --add-forward-port=port=<Port A>:proto=tcp:toaddr=<192.168.XX.XX>:toport=<Port B>
        • Use o iptables.

        • # Enable port forwarding
          echo "1" > /proc/sys/net/ipv4/ip_forward
          # Configure port forwarding
          iptables -t nat -A PREROUTING -p tcp --dport <Port A> -j DNAT --to-destination <192.168.XX.XX>:<Port B>
      • Comandos do Windows

        netsh interface portproxy add v4tov4 listenport=<Port A> listenaddress=* connectaddress=<192.168.XX.XX> connectport=<Port B> protocol=tcp
    • Se houver políticas de controle de acesso configuradas para o seu cluster, certifique-se de que o pool de endereços IP da região onde os contêineres residem esteja adicionado à lista de permissões das políticas de controle de acesso.

      Pools de endereços IP que devem ser adicionados à lista de permissões

      Região

      Endereço IP público

      Endereço IP privado

      China (Hangzhou)

      47.96.166.214

      100.104.12.64/26

      China (Shanghai)

      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

      China (Qingdao)

      47.104.111.68

      100.104.87.192/26

      China (Beijing)

      47.95.202.245

      100.104.114.192/26

      China (Zhangjiakou)

      39.99.229.195

      100.104.187.64/26

      China (Hohhot)

      39.104.147.68

      100.104.36.0/26

      China (Shenzhen)

      120.78.64.225

      100.104.250.64/26

      China (Guangzhou)

      8.134.118.184

      100.104.111.0/26

      China (Hong Kong)

      8.218.59.176

      100.104.130.128/26

      Japan (Tokyo)

      47.74.24.20

      100.104.69.0/26

      Singapore

      8.219.240.137

      100.104.67.64/26

      US (Silicon Valley)

      47.254.39.224

      100.104.145.64/26

      US (Virginia)

      47.252.4.238

      100.104.36.0/26

      Germany (Frankfurt)

      47.254.158.71

      172.16.0.0/20

      UK (London)

      8.208.14.12

      172.16.0.0/20

      Indonesia (Jakarta)

      149.129.238.99

      100.104.193.128/26

Adicione um cluster Kubernetes auto-gerenciado ao Security Center

  1. Faça login no console do Security Center.

  2. No painel de navegação à esquerda, escolha Asset Center > Container. No canto superior esquerdo do console, selecione a região onde o ativo a ser protegido está localizado: Chinese Mainland ou Outside Chinese Mainland.

  3. Na aba Cluster, clique em Self-built cluster access.

  4. No painel Self-built cluster management, clique em Self-built cluster access, configure as informações sobre o cluster K8s auto-gerenciado que você deseja conectar e, em seguida, clique em Generate Command.

    Parâmetro

    Descrição

    Cluster name

    Insira o nome do cluster K8s auto-gerenciado. Exemplo: text-001.

    Expiration Time

    Selecione o tempo de expiração do comando usado para conectar o cluster K8s auto-gerenciado.

    Group

    Escolha o grupo do cluster após a conexão (ou seja, o grupo ao qual pertence o servidor onde o cluster reside).

    Service Provider

    Defina o provedor do servidor onde o cluster reside.

  5. (Opcional) Na seção Enable Log Collection, especifique se deseja ativar a detecção de ameaças baseada em logs do K8s.

    Após ativar a detecção de ameaças baseada em logs do K8s, o Security Center pode obter mais logs de auditoria para detectar riscos de segurança de maneira mais abrangente. Antes de ativar a detecção de ameaças, instale os componentes do Logtail no cluster K8s e conclua as configurações relacionadas à auditoria. Para mais informações, consulte Enable log-based threat detection.

  6. Faça login no servidor onde o cluster reside, crie um arquivo chamado text-001.yaml, copie o comando gerado para o arquivo e, em seguida, execute o comando kubectl apply -f text-001.yaml para conectar o cluster.

    Por padrão, o comando gerado em Step 4 não conecta nós mestres (master nodes) ou nós com taints. Caso queira conectar nós mestres e nós com taints, modifique as configurações no arquivo YAML com base nas instruções a seguir.

    Instruções sobre como conectar nós mestres e nós com taints

    Para conectar nós mestres ou nós com taints ao Security Center como parte do cluster, configure tolerâncias (tolerations) no modelo de pod do DaemonSet para permitir que os pods sejam agendados em nós mestres ou nós com taints.

    • Para nós mestres, em spec>template>spec no arquivo YAML, configure a seguinte Toleration, que permite que os pods deste DaemonSet sejam agendados em nós mestres com o taint node-role.kubernetes.io/master:NoSchedule. Isso conecta os nós mestres ao Security Center como parte do cluster.

      spec:
        template:
          spec:
            tolerations:
            - key: node-role.kubernetes.io/master
              operator: Exists
              effect: NoSchedule
    • Para nós aos quais taints foram adicionados, consulte a configuração de Toleration anterior para nós mestres a fim de agendar os pods do DaemonSet nos nós com taints. Isso conecta os nós com taints ao Security Center como parte do cluster.

    Nota

    O text-001 no nome do arquivo text-001.yaml anterior e o comando kubectl apply -f text-001.yaml são um exemplo de Cluster name. Ao executar as operações, substitua text-001 pelo Cluster name real.

Após conectar um cluster K8s auto-gerenciado, você pode visualizar as informações sobre os clusters conectados na lista de clusters na aba Cluster.

Ative a detecção de ameaças baseada em logs

Se a versão do cluster K8s for 1.16 ou posterior, você pode ativar a detecção de ameaças baseada em logs do K8s para fornecer uma detecção de riscos de segurança mais abrangente para o cluster auto-gerenciado, como a detecção de operações e ataques de alto risco.

Etapa 1. Instale o Logtail

Para mais informações, consulte Install Logtail components in a self-managed Kubernetes cluster, especificamente a seção Instale o Logtail.

Etapa 2. Ative a auditoria do cluster

As etapas a seguir são apenas para referência. Para mais informações, consulte Use cluster auditing.

  1. Crie um cluster registrado e conecte o cluster Kubernetes auto-gerenciado a ele. Para mais informações, consulte Create an ACK One registered cluster.

  2. Configure o arquivo de política de auditoria nos nós mestres.

    Faça login em um nó mestre e edite /etc/kubernetes/audit-policy.yaml usando o modelo abaixo. Repita esta etapa em todos os outros nós mestres.

    Nota

    O valor de apiVersion depende da sua versão do Kubernetes:

    • Kubernetes anterior à 1.24: use audit.k8s.io/v1beta1

    • Kubernetes 1.24 e posterior: use audit.k8s.io/v1

    Para obter detalhes, consulte Notas de lançamento do Kubernetes 1.24.

    apiVersion: audit.k8s.io/v1beta1  # Use audit.k8s.io/v1 for Kubernetes >= 1.24
    kind: Policy
    # Suppress events in the RequestReceived stage.
    omitStages:
      - "RequestReceived"
    rules:
      # High-volume, low-risk requests — not logged.
      - 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"]
      # Read-only URLs — not logged.
      - level: None
        nonResourceURLs:
          - /healthz*
          - /version
          - /swagger*
      # Events — not logged.
      - level: None
        resources:
          - group: "" # core
            resources: ["events"]
      # Secrets, ConfigMaps, and TokenReviews contain sensitive or binary data —
      # log metadata only.
      - level: Metadata
        resources:
          - group: "" # core
            resources: ["secrets", "configmaps"]
          - group: authentication.k8s.io
            resources: ["tokenreviews"]
      # Read requests for known API groups — log request metadata only (responses can be large).
      - 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"
      # Write requests for known API groups — log full request and response.
      - 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"
      # All other requests — log metadata only.
      - level: Metadata
  3. Configure o arquivo do Kube API Server nos nós mestres.

    Faça login em todos os nós mestres, um por um, e conclua as seguintes configurações no arquivo do Kube API Server no caminho /etc/kubernetes/manifests/kube-apiserver.yaml:

    • Adicione o parâmetro --audit-log-* ao comando com base no exemplo a seguir:

      ...
      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
          ...
    • Adicione o parâmetro env aliyun_logs_audit-* com base no exemplo a seguir:

      Substitua {cluster_id} no exemplo a seguir pelo ID do seu cluster. Você pode fazer login no console do Security Center e obter o ID do cluster na página Container. ${cluster_id} especifica o ID do cluster. Você pode fazer login no console do Security Center e obter o ID do cluster de destino na coluna Cluster Information na lista de clusters na página Container Assets > Cluster.

      ...
      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
    • Monte /etc/kubernetes/audit-policy.yaml no Pod do API Server conforme mostrado no exemplo a seguir.

      ...
      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
        ...

Etapa 3. Verifique a coleta de logs

  1. Faça login no console do Simple Log Service.

  2. Clique no nome do projeto de destino.

  3. Verifique se os logs relacionados foram coletados no Logstore sob o projeto de destino.

Etapa 4. Ative a detecção de ameaças

  1. Faça login no console do Security Center.

  2. No painel de navegação à esquerda, escolha Asset Center > Container. No canto superior esquerdo do console, selecione a região onde o ativo a ser protegido está localizado: Chinese Mainland ou Outside Chinese Mainland.

  3. Na aba Cluster, clique em Self-built cluster access.

  4. Encontre o cluster auto-gerenciado para o qual você deseja ativar a detecção de ameaças baseada em logs do K8s. Na coluna Actions, clique em Edit.

  5. Na aba Enable Log Collection, selecione Enable Kubernetes Log Reporting to Detect Threats, configure as informações de log de auditoria e, em seguida, clique em Save.

    • Region of Log Audit Service: Selecione a região na qual os logs de auditoria são armazenados.

    • Project of Log Audit Service: Insira o nome do projeto criado em Step 1. Install Logtail. Exemplo: k8s-log-custom-sd89ehdq.

    • Logstore of Log Audit Service: Insira o nome do Logstore criado automaticamente em Step 1. Install Logtail. Exemplo: audit-027b007a7dd11967a9f7e2449d8dc497.