Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Auditoria de operações do KubeAPI

Última atualização: Jun 28, 2026

O recurso de auditoria de operações do KubeAPI permite monitorar e auditar as operações do KubeAPI no Service Mesh ao registrar e rastrear atividades de usuários. Assim, você visualiza resumos de auditoria, detalhes de operações de contas e listas de operações específicas de recursos para acompanhar eventos importantes, analisar estatísticas e aprimorar a segurança e a rastreabilidade do mesh.

Pré-requisitos

Ative o Simple Log Service.

Informações básicas

  • Neste tópico, os recursos referem-se aos recursos do Istio, incluindo VirtualService, Gateway, DestinationRule, EnvoyFilter, Sidecar e ServiceEntry.

  • Após ativar o recurso de auditoria do mesh, haverá cobrança pelos logs de auditoria gerados. Para obter mais informações sobre faturamento, consulte Pagamento por recurso.

Etapa 1: Ativar a auditoria de operações do KubeAPI

Novas instâncias do ASM

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em Create ASM Instance. Selecione Enable Mesh Audit, configure os demais parâmetros e clique em Create Service Mesh.

    Para obter mais informações sobre os parâmetros, consulte Criar uma instância do ASM.

    Nota

    Por padrão, o ASM cria um Project para logs de auditoria chamado mesh-log-${Mesh-ID} e um Logstore chamado audit-${Mesh-ID} dentro desse Project para armazenar os logs.

Instâncias existentes do ASM

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Mesh Security Center > KubeAPI Operation Audit.

  3. Na página Mesh Audit, selecione Enable Mesh Audit e clique em OK.

Etapa 2: Visualizar relatórios de auditoria do KubeAPI

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Mesh Security Center > KubeAPI Operation Audit.

  3. Na página Mesh Audit, clique na aba API Access Overview ou Operation Details para visualizar os detalhes do relatório.

    • API Access Overview: visualize informações detalhadas sobre o comportamento de acesso ao KubeAPI da instância do mesh.

      A página API Access Overview inclui o gráfico de pizza Access source distribution, o painel Unauthorized access attempts e a tabela Public network access list. A lista de acesso à rede pública contém colunas como Source IP address, Access count, Failure rate %, Unauthorized access attempts, High-risk IP, Country, Province, City e ISP.

    • Operation Details: exibe uma lista detalhada de operações para um recurso específico na instância do mesh.

      Selecione ou insira um tipo de recurso para consultar em tempo real. Você pode visualizar a contagem total de vários eventos, distribuição por namespace, tendências de séries temporais e uma lista detalhada de operações. A parte superior da aba Resource operations oferece filtros como Resource type, Namespace e Status code. A área de visão geral mostra o número de operadores, namespaces, métodos de operação e a taxa de sucesso. Abaixo dessa área, encontram-se painéis como a linha do tempo Operation trace, Create event namespace distribution, Update event namespace distribution, Access event namespace distribution e Delete event namespace distribution.

Operações relacionadas

Registros detalhados de log

Para executar consultas personalizadas e analisar logs de auditoria, acesse o console do Simple Log Service e visualize os registros detalhados de log.

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

  2. Na seção Projects, clique no Project chamado mesh-log-${Mesh-ID}.

  3. Selecione o Logstore chamado audit-${Mesh-ID} e clique em Search & Analyze para visualizar os logs de auditoria correspondentes.AlertasRecriando auditoria do mesh

    Nota
    • Ao ativar a auditoria do mesh, o sistema adiciona automaticamente um Logstore chamado audit-${Mesh-ID} ao Project gerado.

    • O Logstore para logs de auditoria possui um índice configurado por padrão. Não modifique esse índice; caso contrário, os relatórios podem não funcionar corretamente.

    • Por padrão, o Simple Log Service armazena logs de auditoria do API Server do ASM por 30 dias. Para alterar o período de retenção padrão, consulte Gerenciar um Logstore.

    As formas comuns de pesquisar logs de auditoria incluem:

    • Para consultar as operações de um usuário RAM específico, insira o id do usuário RAM na caixa de pesquisa e clique em Search & Analyze.

    • Para consultar operações em um recurso específico, digite o nome do recurso na caixa de pesquisa e clique em Search & Analyze.

    • Para filtrar operações executadas por componentes do sistema, insira NOT user.username: node NOT user.username: serviceaccount NOT user.username: apiserver NOT user.username: kube-scheduler NOT user.username: kube-controller-manager na caixa de pesquisa e clique em Search & Analyze.

    Para obter mais informações sobre métodos de consulta e análise, consulte Visão geral de consultas.

    Para receber alertas em tempo real sobre operações em recursos específicos, utilize o recurso de alerta do Simple Log Service. Os canais de notificação compatíveis incluem SMS, chatbots do DingTalk, e-mail, webhooks personalizados e Notification Center. Para mais detalhes, consulte Alertas.

    Também é possível usar as instruções de consulta dos relatórios de auditoria para pesquisar logs de auditoria:

    • Exemplo 1: Alerta sobre execução de comandos em contêineres

      Uma empresa possui restrições rigorosas quanto ao uso de sua instância de mesh e não permite que os usuários façam login em contêineres ou executem comandos. Se um usuário executar um comando, um alerta deve ser acionado imediatamente. O alerta deve incluir detalhes como o contêiner específico, o comando executado, o operador, o id do evento, o horário e o endereço ip de origem.

      • Instrução de consulta:

        verb : create and objectRef.subresource:exec and stage:  ResponseStarted | SELECT
          auditID as "event_id",
          date_format(from_unixtime(__time__), '%Y-%m-%d %T') as "event_time",
          regexp_extract("requestURI", '([^\?]*)/exec\?.*', 1) as "resource",
          regexp_extract("requestURI", '\?(.*)', 1) as "command",
          "responseStatus.code" as "status_code",
          CASE
            WHEN "user.username" != 'kubernetes-admin' THEN "user.username"
            WHEN "user.username" = 'kubernetes-admin' AND regexp_like("annotations.authorization.k8s.io/reason", 'RoleBinding')
              THEN regexp_extract("annotations.authorization.k8s.io/reason", ' to User "(\w+)"', 1)
            ELSE 'kubernetes-admin'
          END as "operator",
          CASE
            WHEN json_array_length(sourceIPs) = 1 THEN json_format(json_array_get(sourceIPs, 0))
            ELSE sourceIPs
          END as "source_ip"
        LIMIT 100
      • Expressão condicional:

        operation_event =~ ".*"
    • Exemplo 2: Alerta sobre falhas de acesso público

      Uma instância de mesh tem o acesso público ativado. Para evitar ataques maliciosos, monitore o número de tentativas de acesso público e a taxa de falha. Se o número de tentativas de acesso de um endereço ip atingir um limiar (por exemplo, 10) e a taxa de falha exceder um limiar (por exemplo, 50%), um alerta deve ser acionado imediatamente. O alerta deve incluir a região geográfica do endereço ip do usuário, o endereço ip de origem e se trata-se de um endereço ip de alto risco.

      • Instrução de consulta:

        * | SELECT
            ip                                           AS "source_ip",
            total                                        AS "request_count",
            round(rate * 100, 2)                         AS "failure_rate_pct",
            failCount                                    AS "forbidden_count",
            CASE WHEN security_check_ip(ip) = 1 THEN 'yes' ELSE 'no' END
                                                         AS "is_high_risk_ip",
            ip_to_country(ip)                            AS "country",
            ip_to_province(ip)                           AS "province",
            ip_to_city(ip)                               AS "city",
            ip_to_provider(ip)                           AS "isp"
        FROM (
            SELECT
                CASE
                    WHEN json_array_length(sourceIPs) = 1
                        THEN json_format(json_array_get(sourceIPs, 0))
                    ELSE sourceIPs
                END                                       AS ip,
                count(1)                                  AS total,
                sum(CASE WHEN "responseStatus.code" < 400 THEN 0 ELSE 1 END) * 1.0
                    / count(1)                            AS rate,
                count_if("responseStatus.code" = 403)     AS failCount
            FROM log
            GROUP BY ip
            LIMIT 10000
        )
        WHERE ip_to_domain(ip) != 'intranet'
        HAVING "request_count" > 10
           AND "failure_rate_pct" > 50
        ORDER BY "request_count" DESC
        LIMIT 100
      • Expressão condicional:

        source_ip =~ ".*"

    Se você excluir acidentalmente o Project do SLS para auditoria do mesh, recrie-o para continuar usando o recurso.

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Mesh Security Center > KubeAPI Operation Audit.

    3. Na página Mesh Audit, na caixa de diálogo Rebuild Mesh Audit, clique em Recreate.

      O nome do Project recriado será igual ao nome do Project anterior, com um carimbo de data/hora anexado.

Documentos relacionados