|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
|
Esta es documentación inédita para Admission Controller 1.34-dev. |
Escáner de Auditoría - InformesDeDirectiva
Al utilizar el Escáner de Auditoría SUSE Security Admission Controller, almacenas los resultados de los escaneos de directivas utilizando los Recursos Personalizados OpenReports.
|
Con SUSE Security Admission Controller 1.33, la función del Escáner de Auditoría guarda los informes en los CRDs de OpenReports de [openreports.io](https://openreports.io) por defecto. Los CRDs de PolicyReport del grupo de trabajo de Directivas de K8s no están instalados por defecto, están marcados como obsoletos y se eliminarán en una futura versión. Los usuarios que deseen seguir utilizando los PolicyReports obsoletos, es decir, el comportamiento anterior a 1.33, necesitan: - Cambiar el valor del gráfico Helm |
Estos CRDs de OpenReports ofrecen una forma estructurada de almacenar y gestionar los resultados de auditoría.
Almacenas los resultados del escaneo de directivas del escáner de auditoría utilizando Report y ClusterReport.
El escáner de auditoría crea un Report o un ClusterReport para cada recurso escaneado, dependiendo del alcance del recurso. Los objetos Report están disponibles en el espacio de nombres del recurso, mientras que los objetos ClusterReport están disponibles en el alcance del clúster.
Los resultados de auditoría generados por el escáner incluyen:
-
la directiva evaluada
-
el recurso escaneado
-
el resultado de la evaluación (aprobado, fallido o omitido)
-
una marca de tiempo que indica cuándo tuvo lugar la evaluación.
También puedes definir anotaciones de severidad y categoría para tus directivas.
Los operadores pueden consultar los informes utilizando kubectl. También pueden utilizar la interfaz de usuario opcional proporcionada por el proyecto de código abierto policy-reporter para la monitorización y la observabilidad de los CRDs de OpenReports.
Consultando los informes
Usando la CLI de kubectl, es posible consultar los resultados del escaneo:
Lista los informes en el espacio de nombres por defecto:
$ 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
Lista los informes a nivel de clúster:
$ 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
Obtén los detalles de un Informe específico:
kubectl get report 44da974b-6057-4745-a92c-9dd8a1b01cc4 -o yaml
Obtén los detalles de un ClusterReport específico:
kubectl get clusterreport e48d9bbc-a9c4-4c36-8519-bc7390d9ec64 -o yaml
Ejemplo de informe
El siguiente ejemplo muestra un Report para el recurso Deployment deployment1 en el espacio de nombres default. El informe indica que el Pod ha fallado la safe-labels directiva de admisión.
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
Ejemplo de ClusterReport
El siguiente ejemplo muestra un ClusterReport para el recurso Namespace default. El informe indica que el recurso ha fallado la validación de la 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
Interfaz de usuario del Policy Reporter
El Policy Reporter viene incluido como un subchart de kubewarden-controller. Consulta la página Audit Scanner Installation para más información.
La interfaz de usuario del Policy Reporter proporciona un panel que muestra todas las violaciones. Consulta la captura de pantalla a continuación:
Admission Controller incluye la interfaz de usuario del Policy Reporter con un filtro preconfigurado que solo muestra Admission Controller directivas, junto con información ampliada:
Otras características del Policy Reporter incluyen el reenvío de resultados a diferentes clientes (como Grafana Loki, Elasticsearch, aplicaciones de chat), puntos finales de métricas y más. Consulta la documentación de la comunidad de Policy Reporter para más información.