opa_api ресурс
Используйте opa_api ресурс аудита Chef InSpec для запроса к Open Policy Agent (OPA) с помощью URL OPA и данных.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Синтаксис
Блок ресурса opa_api объявляет конфигурации политик OPA, которые могут быть проверены.
describe opa_api(url: "localhost:8181/v1/data/example/violation", data: "input.json") do
its(["result"]) { should eq 'value' }
end
где
-
'url'указывает URL сервера OPA, на котором запущена OPA. -
'data'указывает данные в формате JSON или JSON-файл. -
its(["returned_result"]) { should eq 'expected_result' }сравнивает результаты запроса с ожидаемым результатом в тесте.
Параметры
Для ресурса opa_api ресурса InSpec требуется url и data в виде JSON-файла или строки в формате JSON.
url (обязательно)
URL сервера API OPA.
data (обязательно)
Запрос OPA в виде JSON-файла данных или строки в формате JSON.
Свойства
result
Свойство result проверяет, возвращает ли запрос ресурса пустой результат.
its('result') { should be nil }
allow
Свойство allow проверяет, соответствует ли определённый вход политике, определённой в OPA. Этот матчер не будет работать, если allow не определён в файле политики.
its('allow') { should eq 'value' }
Примеры
Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.
describe opa_api(url: "localhost:8181/v1/data/example/allow", data: "input.json") do
its("result") { shoule_not be nil }
its(["result"]) { should eq true }
its("allow") { should eq "true" }
end
Приведённый выше пример показывает, как значение allow можно получить двумя способами.
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/opa_api/