Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Esta é uma documentação não divulgada para Admission Controller 1.34-dev.

Scanner de Auditoria - Relatórios de políticas

Ao usar o SUSE Security Admission Controller Audit Scanner, você armazena os resultados das varreduras de políticas usando os recursos customizados OpenReports.

Com SUSE Security Admission Controller 1.33, o recurso Audit Scanner salva os relatórios em OpenReports CRDs de [openreports.io](https://openreports.io) por padrão.

Os CRDs PolicyReport do grupo de trabalho de políticas do K8s não são instalados por padrão, estão marcados como descontinuados e serão removidos em uma versão futura.

Usuários que desejam continuar usando os PolicyReports descontinuados, ou seja, o comportamento anterior à 1.33, precisam: - Alterar o valor do gráfico do Helm kubewarden-crds de .Values.install.installPolicyReportCRDs para true. - Alterar o valor do gráfico do Helm kubewarden-controller de .Values.auditScanner.reportCRDsKind de openreports para policyreport.

Esses OpenReport CRDs oferecem uma maneira estruturada de armazenar e gerenciar os resultados da varredura de auditoria.

Você armazena os resultados das varreduras de políticas do Audit Scanner usando Report e ClusterReport. O Audit Scanner cria um Report ou um ClusterReport para cada recurso escaneado, dependendo do escopo do recurso. Objetos Report estão disponíveis no namespace do recurso, enquanto objetos ClusterReport estão disponíveis no escopo do cluster.

Os resultados da auditoria gerados pelo Audit Scanner incluem:

  • a política avaliada

  • o recurso escaneado

  • o resultado da avaliação (passar, falhar ou pular)

  • um carimbo de data/hora indicando quando a avaliação ocorreu.

Você também pode definir anotações de severidade e categoria para suas políticas.

Os operadores podem consultar os relatórios usando kubectl. Eles também podem usar a UI opcional fornecida pelo projeto de código aberto policy-reporter para monitoramento e observabilidade dos CRDs OpenReports.

Consultando os relatórios

Usando a CLI kubectl, é possível consultar os resultados da varredura:

Liste os relatórios no namespace padrão:

$ kubectl get report -o wide
NAME                                   KIND   NAME            PASS   FAIL   WARN   ERROR   SKIP   AGE
44da974b-6057-4745-a92c-9dd8a1b01cc4   Pod    nginx-secrets   6      1      0      0       0      33m

Liste os relatórios em todo o cluster:

$ kubectl get clusterreport -o wide
NAME                                   KIND        NAME                 PASS   FAIL   WARN   ERROR   SKIP   AGE
6c66175f-e15f-47e8-8c33-2c63d5ecde3e   Namespace   namespace1           3      1     0       0       0      1h
d0ffbf4f-7348-4350-af7b-fdbfc079cc49   Namespace   namespace2           0      4     0       0       0      1h
e48d9bbc-a9c4-4c36-8519-bc7390d9ec64   Namespace   namespace3           4      0     0       0       0      15h

Obtenha os detalhes de um Relatório específico:

kubectl get report 44da974b-6057-4745-a92c-9dd8a1b01cc4 -o yaml

Obtenha os detalhes de um ClusterReport específico:

kubectl get clusterreport e48d9bbc-a9c4-4c36-8519-bc7390d9ec64 -o yaml

Exemplo de relatório

O seguinte exemplo mostra um Report para o recurso Deployment deployment1 no namespace default. O relatório indica que o Pod falhou na safe-labels AdmissionPolicy.

apiVersion: wgpolicyk8s.io/v1beta1
kind: PolicyReport
metadata:
  creationTimestamp: “2024-02-29T06:55:37Z”
  generation: 6
  labels:
    app.kubernetes.io/managed-by: kubewarden
    kubewarden.io/policyreport-version: v2
  name: 009805e4-6e16-4b70-80c9-cb33b6734c82
  namespace: default
  ownerReferences:
    - apiVersion: apps/v1
      kind: Deployment
      name: deployment1
      uid: 009805e4-6e16-4b70-80c9-cb33b6734c82
  resourceVersion: “2685996”
  uid: c5a88847-d678-4733-8120-1b83fd6330cb
results:
  - category: Resource validation
    message: “The following mandatory labels are missing: cost-center”
    policy: namespaced-default-safe-labels
    properties:
      policy-resource-version: “2684810”
      policy-uid: 826dd4ef-9db5-408e-9482-455f278bf9bf
      policy-name: “safe-labels”
      policy-namespace: “default”
      validating: “true”
    resourceSelector: {}
    result: fail
    scored: true
    severity: low
    source: kubewarden
    timestamp:
      nanos: 0
      seconds: 1709294251
scope:
  apiVersion: apps/v1
  kind: Deployment
  name: deployment1
  namespace: default
  resourceVersion: “3”
  uid: 009805e4-6e16-4b70-80c9-cb33b6734c82
summary:
  error: 0
  fail: 1
  pass: 0
  skip: 0
  warn: 0

Exemplo de ClusterReport

O seguinte exemplo mostra um ClusterReport para o recurso Namespace default. O relatório indica que o recurso falhou na validação da safe-annotations ClusterAdmissionPolicy.

apiVersion: wgpolicyk8s.io/v1beta1
kind: ClusterPolicyReport
metadata:
  creationTimestamp: “2024-02-28T14:44:37Z”
  generation: 3
  labels:
    app.kubernetes.io/managed-by: kubewarden
    kubewarden.io/policyreport-version: v2
  name: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
  ownerReferences:
    - apiVersion: v1
      kind: Namespace
      name: default
      uid: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
  resourceVersion: “2403034”
  uid: 20a3d00e-e955-4f21-a887-317d40f3f052
results:
  - category: Resource validation
    message: “The following mandatory annotations are not allowed: owner”
    policy: clusterwide-safe-annotations
    properties:
      policy-resource-version: “2396437”
      policy-uid: 46780d6e-e51a-4d65-8572-a6af01380aa7
      policy-name: “safe-annotations”
      validating: “true”
    resourceSelector: {}
    result: fail
    scored: true
    severity: low
    source: kubewarden
    timestamp:
      nanos: 0
      seconds: 1709294251
scope:
  apiVersion: v1
  kind: Namespace
  name: default
  resourceVersion: “37”
  uid: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
summary:
  error: 0
  fail: 1
  pass: 0
  skip: 0
  warn: 0

Interface do Usuário do Policy Reporter

O Policy Reporter vem como um subchart de kubewarden-controller. Consulte a página Instalação do Audit Scanner para mais informações.

A interface do usuário do Policy Reporter fornece um painel mostrando todas as violações. Veja a captura de tela abaixo:

Painel de exemplo do Policy Reporter

Admission Controller envia a interface do usuário do Policy Reporter com um filtro pré-configurado que mostra apenas as políticas Admission Controller, juntamente com informações expandidas:

Exemplo de PolicyReports do Policy Reporter

Outros recursos do Policy Reporter incluem o encaminhamento de resultados para diferentes clientes (como Grafana Loki, Elasticsearch, aplicativos de chat), endpoints de métricas, entre outros. Veja a documentação da comunidade do Policy Reporter para mais informações.