Todos os produtos
Search
Central de documentação

Security Center:Register a self-managed K8s cluster

Última atualização: Jun 27, 2026

O Security Center permite conectar clusters Kubernetes autogerenciados para centralizar a detecção de ameaças e o gerenciamento de riscos. Este tópico descreve como integrar um cluster Kubernetes autogerenciado ao Security Center e, opcionalmente, ativar a detecção de ameaças baseada em logs.

Requisitos de edição

Método de faturamento

Edição necessária

Requisito no nível do servidor

Assinatura

Ultimate

Defina a edição de proteção como Ultimate — consulte Vincular uma edição de proteção a um servidor

Pagamento conforme o uso

Host and Container Security ativado

Defina o nível de proteção como Host and Container Protection — consulte Vincular um nível de proteção de servidor

Se a edição atual não atender ao requisito, faça upgrade do Security Center ou adquira o serviço antes de continuar.

Limitações de região

As restrições regionais aplicam-se apenas a clusters implantados em uma Virtual Private Cloud (VPC):

  • Clusters baseados em VPC: O cluster deve residir na China (Hangzhou), China (Pequim), China (Xangai), China (Shenzhen) ou China (Hong Kong).

  • Clusters conectados à Internet: Não há restrições de região.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster Kubernetes em execução no servidor de destino

  • Docker instalado no servidor

  • (Para análise de exposição do cluster) Configuração de rede concluída conforme o tipo de implantação — consulte Gerenciar clusters e imagens

Configurar encaminhamento de tráfego para implantações de nuvem híbrida

Se o cluster estiver implantado em uma nuvem híbrida sem acesso pela Internet, configure o encaminhamento de portas em uma instância do Elastic Compute Service (ECS) para rotear o tráfego até o servidor local que executa o API server do cluster. Sem essa configuração, o cluster não se comunica com o Security Center.

Os exemplos abaixo encaminham o tráfego da Porta A na instância ECS 10.0.XX.XX para a Porta B no servidor local 192.168.XX.XX.

CentOS 7 — firewall-cmd

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

CentOS 7 — iptables

# Enable IP forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward

# Add the forwarding rule
iptables -t nat -A PREROUTING -p tcp --dport <Port A> -j DNAT --to-destination <192.168.XX.XX>:<Port B>

Windows — netsh

netsh interface portproxy add v4tov4 listenport=<Port A> listenaddress=* connectaddress=<192.168.XX.XX> connectport=<Port B> protocol=tcp

Adicionar endereços IP do Security Center à lista de permissões

Se houver políticas de controle de acesso no cluster, adicione os endereços IP do Security Center da sua região à lista de permissões. O bloqueio desses endereços impede a comunicação entre o cluster e o Security Center.

Região

Endereço IP público

Endereço IP privado

China (Hangzhou)

47.96.166.214

100.104.12.64/26

China (Xangai)

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 e 47.101.220.176

100.104.43.0/26

China (Qingdao)

47.104.111.68

100.104.87.192/26

China (Pequim)

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

Japão (Tóquio)

47.74.24.20

100.104.69.0/26

Singapura

8.219.240.137

100.104.67.64/26

EUA (Vale do Silício)

47.254.39.224

100.104.145.64/26

EUA (Virgínia)

47.252.4.238

100.104.36.0/26

Alemanha (Frankfurt)

47.254.158.71

172.16.0.0/20

Reino Unido (Londres)

8.208.14.12

172.16.0.0/20

Indonésia (Jacarta)

149.129.238.99

100.104.193.128/26

Adicionar um cluster Kubernetes autogerenciado ao Security Center

  1. Faça login no console do Security Centerconsole do Security Centerconsole do Security Center. Na barra de navegação superior, selecione a região do ativo: China ou Outside China.

  2. No painel de navegação à esquerda, escolha Assets > Container.

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

  4. No painel Self-built cluster management, clique em Self-built cluster access. Configure os parâmetros do cluster no painel exibido e clique em Generate Command.

    Parâmetro

    Descrição

    Cluster name

    Nome do cluster. Exemplo: text-001.

    Expiration Time

    Tempo de expiração do comando de integração gerado.

    Group

    Grupo de atribuição do cluster. Defina como o grupo do servidor onde o cluster está em execução.

    Service Provider

    Provedor do servidor onde o cluster está em execução.

  5. (Opcional) Na seção Enable Log Collection, escolha se deseja ativar a detecção de ameaças baseada em logs. Quando ativada, o Security Center coleta logs de auditoria adicionais para uma análise de risco mais profunda. Isso exige a configuração prévia dos componentes Logtail e das definições de auditoria do cluster — consulte Ativar detecção de ameaças baseada em logs.

  6. Faça login no servidor que executa o cluster. Crie um arquivo YAML com o nome do seu cluster (por exemplo, text-001.yaml), cole o comando gerado no arquivo e execute:

    kubectl apply -f text-001.yaml

    Após a conclusão do comando, o cluster aparecerá na lista de clusters na aba Cluster.

Substitua text-001 tanto no nome do arquivo quanto no comando pelo valor inserido em Cluster name na etapa 4.

Adicionar nós mestres e nós com taints

Por padrão, o comando gerado não agenda pods do DaemonSet em nós mestres ou nós com taints. Para incluir esses nós, adicione tolerâncias ao modelo de pod no arquivo YAML antes de executar kubectl apply.

Para nós mestres — adicione o seguinte em spec > template > spec:

spec:
  template:
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule

Essa tolerância permite agendar pods do DaemonSet em nós com o taint node-role.kubernetes.io/master:NoSchedule, adicionando os nós mestres ao Security Center como parte do cluster.

Para outros nós com taints — aplique o mesmo padrão de tolerância, correspondendo à chave e ao efeito do taint para cada tipo de nó.

Ativar detecção de ameaças baseada em logs

A detecção de ameaças baseada em logs está disponível para clusters com Kubernetes 1.16 ou posterior. Quando ativada, o Security Center detecta operações de alto risco e comportamentos de ataque ao analisar os logs de auditoria do API server.

Etapa 1. Instale o Logtail

Siga as instruções de Install Logtail em Instalar componentes Logtail em um cluster Kubernetes autogerenciado.

Etapa 2. Ativar auditoria do cluster

As etapas a seguir baseiam-se em Ativar auditoria de cluster para clusters registrados.

  1. Crie um cluster registrado ACK One e adicione o cluster Kubernetes autogerenciado a ele. Consulte Criar clusters registrados ACK One.

  2. Em cada nó mestre, atualize /etc/kubernetes/audit-policy.yaml com a seguinte política:

    Para clusters com versões do Kubernetes anteriores à 1,24, defina apiVersion como audit.k8s.io/v1beta1 . Para 1,24 e posteriores, use audit.k8s.io/v1 . Consulte (Descontinuado) Kubernetes 1.24 .
    apiVersion: audit.k8s.io/v1beta1
    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 responses 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. Em cada nó mestre, atualize /etc/kubernetes/manifests/kube-apiserver.yaml:

    1. Adicione as seguintes flags --audit-log-* à seção command:

      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
          ...
    2. Adicione as seguintes variáveis de ambiente à seção env. Substitua {cluster_id} pelo ID do seu cluster — encontre-o na aba Cluster no console do Security Center.

                  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"
    3. Monte o diretório de logs de auditoria e o arquivo de política nos pods do kube-apiserver:

                  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.Faça login no console do Security Center.Faça login no console do Security Center.

  2. Clique em no nome do projeto criado durante a instalação do Logtail.

  3. Confirme se os logs de auditoria estão fluindo para o Logstore esperado.

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

  1. Faça login no console do Security Centerconsole do Security Centerconsole do Security Center. Na barra de navegação superior, selecione China ou Outside China.

  2. No painel de navegação à esquerda, escolha Assets > Container.

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

  4. Localize o cluster e clique em Edit na coluna Actions.

  5. Na aba Enable Log Collection, selecione Enable Kubernetes Log Reporting to Detect Threats, configure os parâmetros a seguir e clique em Save.

    Parâmetro

    Descrição

    Exemplo

    Region of Log Audit Service

    Região para armazenamento dos logs

    Project of Log Audit Service

    Projeto do Simple Log Service criado durante a instalação do Logtail

    k8s-log-custom-sd89ehdq

    Logstore of Log Audit Service

    Logstore criado automaticamente durante a instalação do Logtail

    audit-027b007a7dd11967a9f7e2449d8dc497