Попытка понять концепцию лжи в OPA. Моя ситуация такова - мне нужно проверить, все ли облачные ресурсы находятся в разрешенных регионах AWS. Что у меня сейчас есть:
allowed_locations := ["eastus", "westus"]
exists(array, value) {
array[_] == value
}
all_resources_in_allowed_regions {
not any_resource_not_in_allowed_regions
}
any_resource_not_in_allowed_regions {
some index
exists(allowed_locations, input.planned_values.root_module.resources[index].values.location) != true
}
Проблема в том, что я думаю, что мне что-то не хватает в результате политик / функций, когда он не соответствует действительности - например, результат exists(allowed_locations, "westeurope")
не false, но «undefined» какого-то типа, что означает, что результат exists(allowed_locations, "westeurope") != true
также «undefined», что означает, что all_resources_in_allowed_regions присвоено not "undefined"
, что верно.
Как бы вы решили эту проблему с OPA? Я что-то упустил о том, как его правильно использовать?