Spec-Zone.ru › Chef 18

opa_api ресурс

[править на GitHub]

Используйте 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API