Политика как код и проверки соответствия требованиям
Добавьте защитный уровень в стратегию тестирования: проверяйте планы 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.dataCheckov для сканирования нескольких платформ
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.jsonOpen 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 — локальная установка не требуется.
Все уроки этого курса
- `validate` и `fmt` в Terraform
- Модульное тестирование с Terratest
- Интеграционное тестирование облачных ресурсов
- Политика как код и проверки соответствия требованиям