Nesta página, você verá como acessar os registros de auditoria do apiserver do Kubernetes.
Visão geral
Cada cluster do GKE On-Prem tem um Kubernetes Audit Logging, que mantém um registro cronológico das chamadas feitas ao servidor da API Kubernetes do cluster. Os registros de auditoria são úteis para investigar solicitações de API suspeitas e coletar estatísticas.
Geração de registros de auditoria baseada em disco
Por padrão, os registros de auditoria de cada servidor de API são despejados em um disco permanente, para que as reinicializações/upgrades da VM não façam com que os registros desapareçam. O GKE On-Prem mantém até 10 GB de registros de auditoria.
Cloud Audit Logging
Se o Cloud Audit Logging estiver ativado, os registros de auditoria de atividade do administrador de todos os servidores de API serão enviados ao Google Cloud, usando o projeto e o local definidos durante a instalação.
Como acessar registros de auditoria do Kubernetes
Geração de registros de auditoria baseada em disco
Só é possível acessar os registros de auditoria por meio do cluster de administrador:
Veja os servidores da API do Kubernetes em execução nos clusters:
kubectl get pods --all-namespaces -l component=kube-apiserver
Faça o download dos registros de auditoria do servidor da API:
kubectl cp -n [NAMESPACE] [APISERVER_POD_NAME]:/var/log/kube-audit/kube-apiserver-audit.log /tmp/kubeaudit.log
Esse comando busca o arquivo de registro mais recente, que pode conter até 1 GB de dados para o cluster de administrador e até 850 GB para clusters de usuário.
Registros de auditoria mais antigos são mantidos em arquivos separados. Para visualizar esses arquivos:
kubectl exec -n [NAMESPACE] [APISERVER_POD_NAME] -- ls /var/log/kube-audit -la
O nome de arquivo de cada registro de auditoria tem um carimbo de data/hora que indica quando o arquivo foi alternado. Cada arquivo inclui registros de auditoria até esse horário e data.
Cloud Audit Logging
Console
No console do Google Cloud, acesse a página Registros no menu Logging.
Na caixa Filtrar por rótulo ou pesquisa de texto, logo acima dos menus suspensos discutidos anteriormente, clique na seta para baixo para abrir o menu suspenso. No menu, escolha Converter para filtro avançado.
Preencha a caixa de texto com o filtro a seguir:
resource.type="k8s_cluster" logName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" protoPayload.serviceName="anthosaudit.googleapis.com"
Clique em Enviar filtro para exibir todos os registros de auditoria dos clusters do GKE On-Prem que foram configurados para fazer login nesse projeto.
gcloud
Liste as duas primeiras entradas no registro de atividade do administrador do projeto que se aplicam ao tipo de recurso k8s_cluster
:
gcloud logging read \ 'logName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" \ AND resource.type="k8s_cluster" \ AND protoPayload.serviceName="anthosaudit.googleapis.com" ' \ --limit 2 \ --freshness 300d
[PROJECT_ID] é o ID do projeto.
A saída mostra duas entradas de registro. Observe que, para cada entrada de registro, o
campo logName
tem o valor
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity
,
e protoPayload.serviceName
é igual a anthosaudit.googleapis.com
.
Política de auditoria
O comportamento do registro de auditoria é determinado por uma política de registro de auditoria do Kubernetes configurada estaticamente. No momento, não é possível alterar essa política.