0Pricing
DevOps Bootcamp · Урок

Политика как код и проверки соответствия требованиям

Добавьте защитный уровень в стратегию тестирования: проверяйте планы Terraform на нарушения безопасности и требований соответствия до их попадания в рабочую среду.

«Политика как код и проверки соответствия требованиям» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Тестирование — это не только функциональность

Модульные и интеграционные тесты подтверждают, что ваша инфраструктура работает. Политика как код подтверждает, что она разрешена: общедоступных корзин S3 нет, используются только одобренные типы экземпляров, обязательные теги присутствуют. Эти проверки автоматически выполняются для каждого изменения.

Где выполняются проверки политик

Проверки политик выполняются между plan и apply. Вывод плана анализируется, а нарушение блокирует apply — так же как неудачный тест блокирует слияние.

Статическое сканирование с помощью tfsec

tfsec сканирует HCL в поисках известных ошибок конфигурации, не требуя облачных учётных данных. Он достаточно быстр, чтобы запускать его при каждом коммите.

tfsec .

Чтение вывода Scanner

Scanner сообщают идентификатор правила, серьёзность проблемы и ресурс, вызвавший нарушение. Используйте идентификатор, чтобы найти рекомендации по устранению проблемы или подавить принятую угрозу.

Result: aws-s3-enable-bucket-encryption
Severity: HIGH
Resource: aws_s3_bucket.data

Checkov для сканирования нескольких платформ

Checkov поддерживает Terraform и другие форматы IaC, а также сопоставляет найденные проблемы с такими платформами соответствия требованиям, как CIS и SOC2.

checkov -d . --framework terraform

Сканирование плана, а не только кода

Чтобы обнаружить проблемы, возникающие только после подстановки значений переменных, экспортируйте план в JSON и просканируйте этот результат.

terraform plan -out=tfplan.binary
terraform show -json tfplan.binary > plan.json
checkov -f plan.json

Open Policy Agent и Conftest

Для пользовательских организационных правил OPA вместе с conftest позволяет писать политики на языке Rego и проверять их по JSON-представлению плана.

conftest test plan.json --policy policy/

Простая политика Rego

Это правило Rego запрещает любую корзину S3, у которой ACL установлен в значение public-read. Если правило срабатывает, Conftest завершает запуск с ошибкой.

package main

deny[msg] {
  r := input.resource_changes[_]
  r.type == "aws_s3_bucket"
  r.change.after.acl == "public-read"
  msg := "S3 buckets must not be public-read"
}

Подавление принятых угроз

Иногда найденная проблема является известным исключением. Встроенные комментарии позволяют пропустить конкретное правило с сохранением аудиторского следа, не отключая всё сканирование.

resource "aws_s3_bucket" "logs" {
  # tfsec:ignore:aws-s3-enable-bucket-encryption
  bucket = "public-logs"
}

Ошибка сборки

В CI эти инструменты возвращают ненулевой код завершения при нарушениях, из-за чего конвейер завершается с ошибкой и применение несоответствующей конфигурации не выполняется.

tfsec . --soft-fail=false

Многоуровневые проверки

Зрелый конвейер сначала запускает fmt и validate, затем статическое сканирование политик (tfsec/checkov), после этого пользовательские правила OPA и только потом набор функциональных тестов Terratest. Каждый уровень выявляет свой класс проблем.

Быстрая проверка

Проверьте свои знания политики как кода.

Итоги: защитные ограничения для инфраструктуры

Вы добавили уровень соответствия требованиям в процесс тестирования:

  • tfsec и Checkov для поиска известных ошибок конфигурации.
  • OPA/conftest с Rego для пользовательских организационных правил.
  • Сканирование JSON-представления плана для обнаружения проблем с вычисленными значениями.
  • Ненулевые коды завершения блокируют применение несоответствующих конфигураций в CI.

Часто задаваемые вопросы

Урок «Политика как код и проверки соответствия требованиям» бесплатный?

Да — полный текст урока «Политика как код и проверки соответствия требованиям» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Политика как код и проверки соответствия требованиям»?

Добавьте защитный уровень в стратегию тестирования: проверяйте планы Terraform на нарушения безопасности и требований соответствия до их попадания в рабочую среду. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Политика как код и проверки соответствия требованиям»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. `validate` и `fmt` в Terraform
  2. Модульное тестирование с Terratest
  3. Интеграционное тестирование облачных ресурсов
  4. Политика как код и проверки соответствия требованиям
← Назад к DevOps Bootcamp