Рубрики
Uncategorized

Использование кухни-терраформы с профилем CIS CIS GCP

В последнем посте мы рассмотрели «местное» развитие. В духе непрерывной интеграции мы хотим t … Tagged с DevOps, Googlecloud, Terraform, Security.

CIS CIS CIS CIS-тестирование модуля Terraform с поваром Inspec, Kitchen-Terraform & GitHub (3 серии деталей)

В последнем Пост Мы рассмотрели «местное» развитие. В духе Непрерывная интеграция Мы хотим иметь возможность, чтобы члены команды интегрировали свою работу. Если вы помните, нарушения, которые у нас были от управления Inspec-gcp-cis-benchmark Профиль, у нас есть какая -то работа! Мы сделаем это с помощью Kitchen-terraform и запустить рабочий процесс в Действия GitHub Анкет В этом посте мы рассмотрим кухню-терраформу.

Настройка проекта

Структура каталогов важна при использовании кухни-терраформы. Моя текущая структура выглядит так:

Светильники

Вам нужно будет иметь светильники каталог.

Этот каталог-это то, где ваши модули корня Terraform будут жить или на языке кухни-терраформ »,-тестовые приспособления. «Он будет называть дочерним модулем, модуль, который мы разрабатываем. Этот язык совпадает с Модульная документация Итак, в нашем случае дочерний модуль находится в корне Репозиторий , и это модуль, который мы публикуем через GitHub для повторного использования. В этом примере у нас есть только один корневой модуль или тестовое приспособление, с которым мы тестируем. Там может и, скорее всего, будет больше, если мы не сможем покрыть несколько тестовых сценариев в одном приспособлении. У меня также есть общий каталог для общего кода в многочисленных тестовых приспособлениях, если это необходимо.

Интеграция

интеграция каталог будет держать ваш профиль с Chef Inspec DSSL Controls Вы хотите бежать против тестового прибора.

Для этого поста мы сосредоточимся только на cis_benchmark.rb и Inspec.yml файлы Поскольку Google сделал для нас все тяжелую работу, написав элементы управления для конкретных критериев, на которые мы тестируем, 3.1 Сеть и 4.4 Вм , мы можем добавить их очень быстро. Во -первых, вы добавляете хранилище, от которого вы зависите:

ПРИМЕЧАНИЕ: Вход gcp_project_id Это то, что ожидает профиль Inspec-GCP-CIS-Benchmark, чтобы узнать, с каким проектом для проведения тестов. Кухня-терраформ может делать атрибуты и картирование вывода терраформ. Я коснусь того, почему это важно, когда мы посмотрим на Kitchen.yml файл.

Затем, чтобы вызвать конкретный элемент управления, мы добавляем его в cis_benchmark.rb вот так:

Kitchen.yml

Последнее, что нам нужно сделать, это рассказать о кухне-терраформе, что делать! Мы делаем это, создав Kitchen.yml файл:

Вы можете прочитать документацию о Kitchen.yml Если вы хотите узнать больше. Тем не менее, я хочу затронуть пару вещей.

Три и четыре строки — это способ пройти -var = "foo = bar" к терраформу из внутренней кухни-терраформы. В этом примере я использую идентификатор счетов в качестве Секрет в GitHub Анкет Мы можем поговорить об этом немного больше, когда настраиваем рабочий процесс в действиях GitHub.

Другое дело-строки двадцать четыре и двадцать пять. Это связано с атрибутом и картированием вывода Terraform, о котором я говорил ранее. Я взял меня немного Обучение вслух Чтобы убрать это квадрат, но с некоторой помощью я смог получить это. Короче говоря, вот как я наметил свой терраформный выход Project_id к атрибуту, необходимому для запуска профиля Inspec-GCP-CIS-Benchmark.

Бег кухня-терраформный

Теперь мы можем запустить кухню сходиться и посмотреть, что у нас есть:

Это сделает для вас всевозможные работы. Это проверит версию клиента Terraform, Инициализировать Рабочий каталог Terraform, а также создает и переключается на Рабочая пространство :

Это также будет подтвердить Файлы конфигурации Terraform и, наконец, запустите Terraform применить :

Далее мы можем запустить тесты, используя кухню Проверьте и увидеть результаты:

Наконец, мы можем уничтожить инфраструктуру, используя кухню разрушать . Вы также можете сделать все вышеперечисленное в одной команде, используя кухню тест Анкет

В следующем посте я расскажу о запуске рабочего процесса тестирования через Действия GitHub !

CIS CIS CIS CIS-тестирование модуля Terraform с поваром Inspec, Kitchen-Terraform & GitHub (3 серии деталей)

Оригинал: «https://dev.to/brettcurtis/gcp-cis-benchmark-terraform-module-testing-with-chef-inspec-kitchen-terraform-github-actions-1227»