Use o registo de auditoria do Kubernetes

Este documento descreve como usar os registos de auditoria do Cloud para o Google Distributed Cloud (apenas software) em hardware não processado. O Google Distributed Cloud usa o registo de auditoria do Kubernetes, que mantém um registo cronológico das chamadas feitas a um servidor da API Kubernetes de um cluster. Os registos de auditoria são úteis para investigar pedidos de API suspeitos e para recolher estatísticas. Para obter informações sobre o registo de auditoria da API GKE On-Prem, consulte o registo de auditoria da API Cloud.

Acerca dos registos de auditoria do Cloud

Os registos de auditoria são escritos nos registos de auditoria do Cloud no seu Google Cloud projeto. A escrita nos registos de auditoria do Cloud tem várias vantagens em relação à escrita em disco ou à captura de registos num sistema de registo no local:

  • Os registos de auditoria de todos os clusters do GKE podem ser centralizados.
  • As entradas de registo escritas nos registos de auditoria do Cloud são imutáveis.
  • As entradas dos registos de auditoria da nuvem são retidas durante 400 dias.
  • A funcionalidade Cloud Audit Logs está incluída no preço do software Google Distributed Cloud apenas.
  • Pode configurar o Google Distributed Cloud para escrever registos no disco ou nos registos de auditoria do Cloud.

Registo de auditoria baseado em disco

Se os registos de auditoria na nuvem estiverem desativados explicitamente, os registos de auditoria são escritos num disco persistente para que os reinícios e as atualizações do cluster não façam com que os registos desapareçam. O Google Distributed Cloud apenas de software retém até 1 GiB de entradas do registo de auditoria.

Aceda aos registos de auditoria baseados em disco iniciando sessão nos nós do plano de controlo. Os registos estão localizados no diretório /var/log/apiserver/.

Cloud Audit Logs

As entradas do registo de auditoria da atividade do administrador de todos os servidores da API Kubernetes são enviadas para Google Cloud, através do projeto e da localização que especifica quando cria um cluster de utilizador. Para colocar em buffer e escrever entradas de registo nos registos de auditoria do Google Cloud, o Google Distributed Cloud implementa um conjunto de daemons audit-proxy que é executado nos nós do plano de controlo.

Limitações

No bare metal, os registos de auditoria do Cloud têm as seguintes limitações:

  • O registo de acesso a dados não é suportado.
  • A modificação da política de auditoria do Kubernetes não é suportada.
  • Os registos de auditoria da nuvem não são resilientes a falhas de rede prolongadas. Se não for possível exportar as entradas do registo para Google Cloud, estas são colocadas em cache num buffer de disco de 10 GiB. Se esse buffer ficar cheio, as entradas mais antigas são eliminadas.
    • Um projeto pode suportar até aproximadamente 1000 contas de serviço para utilização com os registos de auditoria do Google Cloud. Vários clusters podem usar a mesma conta de serviço.

Criar uma conta de serviço para os registos de auditoria da nuvem

Antes de poder usar o Cloud Logging e o Cloud Monitoring com o software Google Distributed Cloud, tem de configurar o seguinte:

  1. Crie um espaço de trabalho do Cloud Monitoring no Google Cloud projeto, se ainda não tiver um.

    Na Google Cloud consola, clique no seguinte botão e siga o fluxo de trabalho.

    Aceder a Monitorização

  2. Clique nos seguintes botões para ativar as APIs necessárias:

    Ative a API Anthos Audit

    Ative a API Stackdriver

    Ative a API Monitoring

    Ative a API Logging

  3. Atribua as seguintes funções do IAM à conta de serviço usada pelos agentes do Stackdriver:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Aceder aos registos de auditoria do Cloud

Consola

  1. Na Google Cloud consola, aceda à página Explorador de registos no menu Registo.

    Aceda ao Explorador de registos

    Se a página Visualizador de registos antigo for aberta, escolha Atualizar para o novo Explorador de registos no menu pendente Atualizar.

  2. Clique em Consulta para aceder ao campo de envio de consultas.

  3. Preencha o campo com a seguinte consulta:

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    Substitua PROJECT_ID pelo ID do seu projeto.

  4. Clique em Executar consulta para apresentar todos os registos de auditoria de clusters que foram configurados para iniciar sessão neste projeto.

gcloud

Indique as duas primeiras entradas do registo no Registo de atividade de administrador do seu projeto que se aplicam ao k8s_cluster tipo de recurso:

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

Substitua PROJECT_ID pelo ID do seu projeto.

O resultado mostra duas entradas do registo. Tenha em atenção que, para cada entrada de registo, o campo logName tem o valor projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity e protoPayload.serviceName é igual a anthosgke.googleapis.com.

Política de auditoria

A política de auditoria do Kubernetes define regras para os eventos que são registados como entradas de registo e especifica os dados que as entradas de registo devem incluir. A alteração desta política para modificar o comportamento dos registos de auditoria do Cloud não é suportada.