|
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 |
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:
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:
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.