policyDefinitions/Kubernetes/forbidden-sysctl-interfaces/rego/src.rego (16 lines of code) (raw):

package k8sazureforbiddensysctls violation[{"msg": msg, "details": {}}] { sysctl := input.review.object.spec.securityContext.sysctls[_].name forbidden_sysctl(sysctl) msg := sprintf("The sysctl %v is not allowed, pod: %v. Forbidden sysctls: %v", [sysctl, input.review.object.metadata.name, input.parameters.forbiddenSysctls]) } # * may be used to forbid all sysctls forbidden_sysctl(sysctl) { input.parameters.forbiddenSysctls[_] == "*" } forbidden_sysctl(sysctl) { input.parameters.forbiddenSysctls[_] == sysctl } forbidden_sysctl(sysctl) { startswith(sysctl, trim(input.parameters.forbiddenSysctls[_], "*")) }