Политика как код

Политика как код (PaC) — это современный подход, который дает группам, реализующим его, множество преимуществ с точки зрения автоматизации, эффективности, совместной работы и т. д.

Возможно, вы создали и сохранили политику организации в своих базах данных.

Но как часто вы отслеживаете вносимые в них изменения и правильно они применяются или нет?

Я понимаю, что сложно за всем уследить, особенно с учетом меняющихся правил и норм.

Однако если политики внедрены неправильно, это может нанести ущерб организации, например, в плане безопасности и соответствия требованиям.

При этом, если вы кодифицируете свою политику и представляете ее в текстовых файлах, всем становится легче ей следовать.

Это то, что дает вам политика как код, и даже больше. Это также позволяет вам отслеживать изменения, внесенные в ваши политики, и то, как они реализуются, а также помогает поддерживать безопасность и соответствие требованиям.

Итак, давайте разберемся с политикой как кодом, ее преимуществами и способами ее внедрения в вашей организации.

Что такое политика как код?

Чтобы лучше понять политику как код, давайте определим, что такое политика в этом контексте.

Политика : Политика может представлять собой правило, инструкцию или условие, регулирующее ИТ-процессы или операции. Он определяет критерии, которым всегда необходимо соответствовать, чтобы процесс был одобрен.

Например, определенный фрагмент кода должен соответствовать применимым политикам, чтобы он соответствовал политикам ИТ-безопасности и был развернут.

Политики могут быть разных типов: операционные политики, политики безопасности и политики соответствия.

политика как код: политика как код (PaC) — это подход к управлению политиками, который использует код для определения, совместного использования, применения и обновления политик. Это требует от команд написания политик с использованием языка программирования высокого уровня, такого как Python, Java, YAML и т. д., на основе используемых инструментов PaC.

PaC позволяет организациям ускорить свои процессы за счет использования автоматизации на основе кода, а не полагаться на ручные способы управления политиками. Это также облегчает заинтересованным сторонам в различных областях (например, ИТ-безопасность и развитие) лучшее понимание политики.

Например, если разработчик хочет внести некоторые обновления, он может изменить текущий код и даже при необходимости поделиться им с другими. Это позволит им видеть свою политику и гарантировать, что они не отклонятся от нее.

Политика как код против инфраструктуры как кода

Политика как код (PaC) по своей концепции аналогична инфраструктуре как код (IaC), но это не одно и то же.

Компании теперь используют современные методы от разработки до внедрения, множество инструментов и ресурсов. Это может включать локальную инфраструктуру, частные и общедоступные облака, виртуальные машины, модели и инструменты программного обеспечения как услуги (SaaS) и многое другое.

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

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

Хорошим решением этой проблемы является IaC. IaC использует файлы на основе кода для автоматизации процесса предоставления и настройки. Это обычная практика почти для каждой ИТ-команды.

С другой стороны, PaC расширяет IaC, устраняя разрыв между DevOps и IaC. PaC помогает улучшить управление данными, соблюдение требований и безопасность всех ваших развертываний. Кроме того, варианты его использования шире, чем у IaC; PaC используется на протяжении всего жизненного цикла разработки программного обеспечения.

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

Как работает политика как код?

Политика как код на самом деле представляет собой читаемый файл со сценарием, в котором описаны все положения и условия того, как что-то следует делать. Например, он может изложить политику тестирования приложения или его создания, развертывания и обслуживания.

Политики создаются с использованием языка программирования высокого уровня, такого как Java, Python и т. д., совместимого с различными инструментами, используемыми в организации.

Политики, написанные в виде кода, затем вводятся в систему (систему политик) с помощью запросов. Приняв код политики в качестве входных данных, механизм политики обрабатывает код и выводит результат запроса.

Затем в результате создается решение, согласующееся с текущей политикой. Это помогает определить подходящие типы тестирования безопасности программного обеспечения, а также когда группа тестирования должна его проводить и в каких областях.

Кроме того, политики реализуются посредством вызова API, выполняемого в конвейере CI, что позволяет легко запускать тесты безопасности, не нарушая при этом какой-либо код. При создании политики как кода учитывайте следующие моменты:

  • Проверьте зависимости и убедитесь, что тестирование может нарушить ваше развертывание или сборку. Определите проблемы и введите их в инструмент отслеживания проблем.
  • Проверьте, когда было сделано последнее изменение и какова была его величина. Также выясните, нужно ли для этого какое-либо дополнительное тестирование или проверка кода.
  • Узнайте, содержит ли программное обеспечение конфиденциальные данные, как выглядит его поверхность атаки и какие риски простоя могут возникнуть.

Для работы политика как код использует три элемента:

  • Политика: PaC сам использует данную политику с кодом внутри для облегчения принятия решений.
  • Данные : PaC использует данные о данном программном приложении, среде или услуге.
  • Запрос : запрос запускает процесс принятия решения на основе доступных данных и введенной политики в механизм политики.

Зачем вам нужна политика как код?

Традиционные процессы обеспечения соблюдения политики являются полуавтоматическими или ручными. Здесь группа разработчиков программного обеспечения встраивает код обеспечения соблюдения политик в свои приложения.

Они реализуют код по своему желанию, поскольку не существует определенной структуры. В результате становится сложно проводить аудит этого кода, а также процесс становится сложно масштабировать.

Еще одна проблема с применением традиционных политик заключается в том, что политики часто обновляются в зависимости от меняющихся условий, что сложно отслеживать и реализовывать командам. Кроме того, разные команды могут по-разному интерпретировать и реализовывать политики, если не определены рамки.

Кроме того, современному бизнесу необходимо соблюдать такие нормативы, как PCI DSS, SOC2 и т. д., которые применяются вручную или как часть всей бизнес-логики. Эти фрагменты кода написаны на разных языках, управляются разными командами разработчиков и хранятся в репозиториях кода. Таким образом, изменение чего-либо может занять значительное время, от недель до месяцев.

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

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

Автоматизация

Политика как код упрощает автоматизацию с помощью различных инструментов. Такие инструменты позволяют пользователям автоматизировать повторяющиеся и утомительные задачи, такие как создание, определение, управление и обновление политик. Кроме того, вы даже можете автоматизировать процесс тестирования политик с помощью инструментов CI/CD и убедиться, что все в порядке перед развертыванием.

Тестирование и проверка

Политики представляют собой код, и вы можете легко проверить их поведение и синтаксис с помощью некоторых автоматизированных инструментов. Это также облегчает автоматическое тестирование через систему CI/CD. Это поможет вам обнаружить нарушения и уязвимости политики, а также определить, реализованы ли политики задолго до развертывания.

Более того, если вы объедините его с системой контроля версий (VCS), вы сможете перед интеграцией проверить, соответствует ли поведение системы ожиданиям. Вы можете устанавливать политики через графический интерфейс пользователя (GUI) и тестировать их с помощью запроса на включение.

Песочница

PaC обеспечивает безопасность «песочницы», чтобы изолировать программные решения друг от друга. Это помогает предотвратить угрозы безопасности. Поскольку песочницы требуют высокого уровня автоматизации, необходимо гарантировать, что эти системы автоматизации не будут выполнять опасные действия. Это делает ручную проверку непрактичной. Таким образом, применение PaC становится жизненно важным, если вы хотите безопасно реализовать свои песочницы.

Скорость и точность

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

Кодификация и наглядность

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

Таким образом, эта улучшенная видимость также устраняет необходимость снова и снова связываться с другими участниками, ускоряя рабочий процесс.

Контроль версий

Отслеживание, управление и контроль версий ваших политик становится проще, если вы храните политики в виде текстовых файлов. Если вам нужно обновить какую-либо политику, просто измените текущий код. Но если что-то выглядит не очень хорошо, у вас все равно есть возможность вернуться к предыдущей версии.

Кроме того, члены команды также могут определить, какие политики и когда были изменены. Это означает, что вы сможете воспользоваться такими функциями системы контроля версий (VCS), как история, запросы на включение, сравнение и многое другое.

Сотрудничество

Следование определенному способу написания политик и управления ими способствует сотрудничеству внутри внешних и внутренних команд. Политика как код объединяет различные команды и отделы, независимо от того, занимаетесь ли вы разработкой, тестированием, контролем версий или безопасностью.

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

Кроме того, команды могут использовать инструменты совместной работы, средства контроля версий и другие инструменты автоматизации для совместной работы. Они могут просматривать код, вносить предложения, оставлять комментарии для улучшения кода, работать над отзывами, следить за безопасностью кода и делать многое другое. Все это поможет ускорить релиз.

Варианты использования политики как кода

Различные варианты использования политики как кода:

№1. Предоставление инфраструктуры

Политика как код может автоматизировать процесс предоставления ресурсов инфраструктуры (таких как службы, базы данных и т. д.) для операций, соответствия требованиям и безопасности. Помимо предоставления ресурсов, он может включать в себя маркировку сетевых настроек, брандмауэров и других ресурсов.

Маркировка ресурсов по подразделениям или командам может помочь вам эффективно управлять своими ресурсами. Кроме того, PaC можно использовать для создания списка всех разрешенных IP-адресов и предоставления его, чтобы вы могли получать доступ к приложениям или страницам с внешнего IP-адреса.

Кроме того, PaC полезен для предоставления ресурсов разных типов для разных сред, таких как разработка, песочница, производство и промежуточная среда. Таким образом, вы можете настроить подходящие машины для всех этих сред.

№2. Элементы управления Кубернетесом

Если вы используете Kubernetes в своих процессах, вы, вероятно, захотите настроить свои политики как PaC. Вы можете создавать политики для эффективного управления ресурсами Kubernetes, такими как узлы, пространства имен, модули и т. д.

Кроме того, вы можете настроить ограничения ЦП и памяти для создания контейнеров и выполнения запросов. Это помогает предотвратить нехватку памяти (OOM) и перегрузку ресурсов.

Таким образом, приложение всегда будет доступно и работает оптимально. Рекомендуется настроить политики для максимального и минимального количества реплик, чтобы легко удовлетворить требования, не вызывая чрезмерного потребления или нехватки ресурсов.

№3. Контроль доступа и авторизации

Создавая политику, в которой прописаны правила авторизации доступа к сервису, вы существенно повышаете его безопасность. В нем будут пункты о том, какие пользователи могут получить доступ к каким ресурсам. Вы также можете выделить разрешенные методы доступа, чтобы не произошло взлома.

Например, вы можете настроить политику, согласно которой разрешены только соединения HTTPS. Это поможет улучшить ситуацию с безопасностью. Другим примером может быть установка политики, запрещающей определенный тип службы, который вы считаете ненадежным.

№4. Аудит и соблюдение требований

В настоящее время организациям необходимо соблюдать действующие государственные и отраслевые стандарты. Он может включать такие правила, как HIPAA, GDPR, PCI DSS и т. д. Эти стандарты требуют от вас соблюдения правил, касающихся хранения данных, вычислений и работы в сети.

Проблема в том, что эти правила могут измениться в любой момент в зависимости от условий, и отслеживать их может быть сложно и утомительно.

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

№5. Контроль расходов

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

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

Как реализовать политику как код

Теперь, если вы считаете, что политика как код полезна для вашей организации, и задаетесь вопросом, как ее реализовать, читайте дальше.

Чтобы наиболее простым способом использовать политику как код, вы можете использовать качественный инструмент, поддерживающий политику как код в тех областях, где эта концепция требуется (например, безопасность, соответствие требованиям, обеспечение и т. д.). Но прежде чем выбрать один из них, рассмотрите варианты использования и организационные стратегии, а также масштабируемость инструмента, модель поддержки, интеграцию и другие функции.

Некоторые из лучших инструментов политики как кода:

№1. Агент открытой политики

Агент открытой политики — это механизм политики общего назначения с открытым исходным кодом, который может унифицировать все меры по обеспечению соблюдения политики. Он работает для любого домена, предоставляя общую структуру реализации политики как кода. Он поддерживает такие сервисы, как Kubernetes, Terraform, AWS, Docker, Envoy, GKE и другие.

№2. Призма Облако

Prisma Cloud предназначен для обеспечения безопасности и позволяет вам определять все политики безопасности с помощью кода. Вы можете автоматически сканировать файлы политик, а затем проверять их на предмет уязвимостей или неправильных конфигураций перед фактическим развертыванием кода. Другими инструментами безопасности в виде политики как кода являются Checkov, Bridgecrew и т. д.

№3. БезопасностьRAT

SecurityRAT — это инструмент с открытым исходным кодом от OWASP, который полезен на этапе планирования. Это поможет вам создать потребности в ИТ-безопасности в виде кода и интегрировать их в свой проект. Это также облегчает аудит; и, следовательно, способствует соблюдению требований соответствия.

№4. Страж

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

Другие хорошие инструменты — TruffleHog, Git-Secrets, Gitty Leaks, InSpec, Terraform и т. д.

Заключение

Политика как код полезна для бизнеса во многих отношениях, таких как предоставление ресурсов, контроль доступа, контроль затрат, аудит и соблюдение требований, а также безопасность.

Я надеюсь, что эта статья поможет вам понять политику как код, а также понять, почему вам следует внедрить ее в своей организации и как.

Вы также можете изучить некоторые интересные инструменты для аудита и управления качеством кода.

Источник