Controles personalizados (OPA / Rego)
Los clientes pueden escribir sus propios controles en Rego, el lenguaje de políticas de Open Policy Agent (OPA). Los controles personalizados se guardan en la Plataforma, se versionan y se envían completos con cada solicitud de evaluación. Se evalúan en un runtime de OPA sandboxeado — nunca como código nativo.
Ejemplo (ilustrativo)
# Rego — rechaza buckets S3 sin cifrado por defecto
package nimbusguard.custom.s3_encryption
default allow = false
allow {
input.resource.resource_type == "aws_s3_bucket"
input.resource.configuration.server_side_encryption == true
}
El control devuelve un resultado (status, message, evidence) que el Motor
convierte en un EvaluationResult estructurado.
:::warning Placeholder
⚠️ Reemplaza el snippet ilustrativo con el contrato real de Rego: forma del
input disponible, campos de salida esperados y cómo el resultado mapea a
PASS/FAIL.
:::