|
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. |
Metadatos de la directiva
El archivo de metadatos SUSE Security Admission Controller, metadata.yaml, es un archivo de configuración que contiene información y configuraciones importantes relacionadas con las directivas utilizadas dentro de Admission Controller.
Esta documentación es una visión general del propósito y uso del archivo de metadatos.
El archivo de directiva metadata.yaml tiene valores predeterminados para la directiva, así como metadatos como el autor y la descripción, establecidos por el autor de la directiva.
El comando kwctl annotate utiliza el archivo para anotar el archivo .wasm que contiene la directiva.
Por lo tanto, toda la información relevante necesaria para ejecutar la directiva está disponible.
Más información sobre cómo anotar la directiva se encuentra en la guía Distribución de Directivas.
Cuando los usuarios de la directiva quieren utilizar una directiva, generan un manifiesto YAML utilizando kwctl scaffold.
Este comando lee los metadatos de la directiva incrustados en el módulo Wasm enviado, realiza comprobaciones y devuelve un manifiesto YAML que el autor puede usar tal cual o modificar.
Como autor de la directiva, puedes adaptar el archivo metadata.yaml proporcionado durante la creación de tu directiva.
Consulte el siguiente ejemplo de un metadata.yaml:
rules:
- apiGroups: [""]
apiVersions: ["v1"]
resources: ["pods"]
operations: ["CREATE"]
mutating: false
contextAwareResources: []
executionMode: kubewarden-wapc
policyType: kubernetes
backgroundAudit: true
annotations:
# kubewarden specific:
io.kubewarden.policy.title: My policy
io.kubewarden.policy.version: 0.1.0 # should match the OCI tag
io.kubewarden.policy.description: Short description
io.kubewarden.policy.author: myself
io.kubewarden.policy.url: https://github.com/yourorg/my-policy
io.kubewarden.policy.source: https://github.com/yourorg/my-policy
io.kubewarden.policy.license: Apache-2.0
# The next two annotations are used in the policy report generated by the
# Audit scanner. Severity indicates policy check result criticality and
# Category indicates policy category. See more here at docs.kubewarden.io
io.kubewarden.policy.severity: medium
io.kubewarden.policy.category: Resource validation
# artifacthub specific: (optional, to release in Artifact Hub)
io.kubewarden.policy.ociUrl: ghcr.io/myorg/my-policy
io.artifacthub.displayName: Policy Name
io.artifacthub.resources: Pod
io.artifacthub.keywords: pod, cool policy, kubewarden
Habilitando comprobaciones de auditoría en segundo plano
El archivo de metadatos incluye una bandera, backgroundAudit, que habilita las comprobaciones de auditoría en segundo plano para una directiva específica.
Por defecto, esta bandera está configurada en true.
Existen directivas que, debido a la forma en que funcionan o al tipo de eventos que les conciernen, deben tener este campo establecido en false.
Puedes encontrar más información en la documentación del escáner de auditoría, en la sección de limitaciones.
Definiendo los recursos de Kubernetes a los que pueden acceder las directivas
Dentro del archivo de metadatos, utilizando el campo contextAwareResources, los usuarios pueden definir a qué recursos de Kubernetes puede acceder la directiva.
Por ejemplo, si la directiva necesita acceso al recurso Namespace.
El autor de la directiva puede definir el contextAwareResources como:
[...]
contextAwareResources:
- apiVersion: v1 kind: Namespace
[...]
Especificando directivas como mutantes o no mutantes
El archivo de metadatos tiene una bandera, mutating, que permite a los usuarios configurar una directiva como mutante o no mutante.
Una directiva mutante modifica las solicitudes entrantes o los recursos que se están gestionando.
Una directiva no mutante observa y hace cumplir restricciones sin realizar ningún cambio.
Esta distinción es crucial para determinar cómo interactúan las directivas con los recursos de Kubernetes y su impacto en el clúster.
Especificar el tipo de directiva como Kubernetes o Raw
El archivo de metadatos tiene una bandera, policyType, que permite a los usuarios marcar una directiva como kubernetes o raw.
Una directiva de Kubernetes es una directiva que valida los recursos de Kubernetes.
Una directiva Raw es una directiva que valida documentos JSON arbitrarios.
Por defecto, si no es especificado por el usuario, este campo se establece en kubernetes al anotar una directiva.
Consulta la sección Directivas Raw para más información.
Definiendo los objetivos de tipo de recurso
El archivo de metadatos proporciona a los usuarios la capacidad de definir las reglas dentro del campo rules, que determina los tipos de recursos a los que se aplica la directiva.
Esta función empodera a los usuarios para ejercer un control preciso sobre la aplicación de directivas, garantizando que las directivas solo se apliquen a los tipos de recursos previstos.
Con este control detallado, los usuarios pueden garantizar que las directivas se dirijan con precisión, alineándose con sus requisitos específicos y evitando cualquier aplicación no intencionada de directivas a tipos de recursos no relacionados.