Всех с пятницей!
Устали от всех этих деплоев, контейнеров, бесконечных обновлений гитлаба и, прости господи, кубернетиса? Тогда сегодня, специально для вас мы представляем вашему вниманию настоящее возвращение к истокам!
А какие "истоки" могут быть более приятные, чем сборка собственного компьютера из комплектующих, закручивание винтиков со всей любовью и подключение многочисленных шлейфиков? Уж если не это, то что тогда?
Встречайте сегодняшнего гостя: Симулятор сборки ПК!
Забудьте на вечер про девопс, ведь тут есть:
🍬 топовые процессоры
🍬 быстрая память
🍬 жирнейшие диски
🍬 водяное охлаждение
🍬 дорогущая графика
🍬 и огромное количество винтиков
Брось девопс, открой бизнес, собирай компьютеры!
Устали от всех этих деплоев, контейнеров, бесконечных обновлений гитлаба и, прости господи, кубернетиса? Тогда сегодня, специально для вас мы представляем вашему вниманию настоящее возвращение к истокам!
А какие "истоки" могут быть более приятные, чем сборка собственного компьютера из комплектующих, закручивание винтиков со всей любовью и подключение многочисленных шлейфиков? Уж если не это, то что тогда?
Встречайте сегодняшнего гостя: Симулятор сборки ПК!
Забудьте на вечер про девопс, ведь тут есть:
🍬 топовые процессоры
🍬 быстрая память
🍬 жирнейшие диски
🍬 водяное охлаждение
🍬 дорогущая графика
🍬 и огромное количество винтиков
Брось девопс, открой бизнес, собирай компьютеры!
Всем привет!
Все мы понемногу становимся YAML-разработчиками. Отчасти – шутка, отчасти – правда!
Для того, чтобы разобраться что к чему и оптимизировать деятельность по созданию YAML-файлов можно воспользоваться рекомендациями, приведенными в статье:
🍭 В начале пути пишите YAML-файлы «в ручную», без использования «генераторов». Это поможет разобраться в структуре, а также соответствует принципам декларативного подхода описания сущностей
🍭 Используйте «квази-генераторы», с использование kubectl, --dry-run=client и -o yaml > %filename%. Будет некоторая избыточность, но вы уже знаете как и что поправить
🍭 Используйте… средства автоматизации для обработки YAML-файлов! Например, yq (идеологический аналог jq, но только для YAML). Инструмент позволит оптимизировать рутинные действия. Но, как и при работе с любым инструментом сперва необходимо освоить его
🍭 Что делать, если раньше использовали compose и есть потребность «переезда» на K8S manifest? Тут может помочь kompose. Да, скорее всего потребуется доработка результатов, но проблема «чистого листа» будет решена, а время – сэкономлено
🍭 И самый hardcore-вариант! Если вы владеете языками программирования, то можно писать конфигурационные файлы K8S прямо на «родном диалекте» с использованием CDK8S!
Вариантов много, главное – найти максимально удобный для себя. А поиск этого лишнего или, наоборот, недостающего пробела в большом manifest – бесценно ☺️
Все мы понемногу становимся YAML-разработчиками. Отчасти – шутка, отчасти – правда!
Для того, чтобы разобраться что к чему и оптимизировать деятельность по созданию YAML-файлов можно воспользоваться рекомендациями, приведенными в статье:
🍭 В начале пути пишите YAML-файлы «в ручную», без использования «генераторов». Это поможет разобраться в структуре, а также соответствует принципам декларативного подхода описания сущностей
🍭 Используйте «квази-генераторы», с использование kubectl, --dry-run=client и -o yaml > %filename%. Будет некоторая избыточность, но вы уже знаете как и что поправить
🍭 Используйте… средства автоматизации для обработки YAML-файлов! Например, yq (идеологический аналог jq, но только для YAML). Инструмент позволит оптимизировать рутинные действия. Но, как и при работе с любым инструментом сперва необходимо освоить его
🍭 Что делать, если раньше использовали compose и есть потребность «переезда» на K8S manifest? Тут может помочь kompose. Да, скорее всего потребуется доработка результатов, но проблема «чистого листа» будет решена, а время – сэкономлено
🍭 И самый hardcore-вариант! Если вы владеете языками программирования, то можно писать конфигурационные файлы K8S прямо на «родном диалекте» с использованием CDK8S!
Вариантов много, главное – найти максимально удобный для себя. А поиск этого лишнего или, наоборот, недостающего пробела в большом manifest – бесценно ☺️
Medium
How to create Kubernetes YAML files
Developing on Kubernetes
Привет!
Просто и крайне удобный инструмент для идентификации default passwords – Changeme!
В настоящее время поддерживается:
🍭 http/https
🍭 mssql
🍭 mysql
🍭 postgres
🍭 ssh, ssh w/key
🍭 snmp
🍭 mongodb
🍭 ftp
Файлы с идентифицируемыми credentials хранятся отдельно от кода, что упрощает процесс добавления «своих». Пример для MySQL и Postgres (все описано в виде yaml).
Есть небольшая Wiki, где описаны и продемонстрированы примеры использования утилиты с указанием определенных ключей (Basic Scan, Target Specification, Overriding Ports, Proxy, Multiple Ports)
Просто и крайне удобный инструмент для идентификации default passwords – Changeme!
В настоящее время поддерживается:
🍭 http/https
🍭 mssql
🍭 mysql
🍭 postgres
🍭 ssh, ssh w/key
🍭 snmp
🍭 mongodb
🍭 ftp
Файлы с идентифицируемыми credentials хранятся отдельно от кода, что упрощает процесс добавления «своих». Пример для MySQL и Postgres (все описано в виде yaml).
Есть небольшая Wiki, где описаны и продемонстрированы примеры использования утилиты с указанием определенных ключей (Basic Scan, Target Specification, Overriding Ports, Proxy, Multiple Ports)
GitHub
GitHub - ztgrace/changeme: A default credential scanner.
A default credential scanner. Contribute to ztgrace/changeme development by creating an account on GitHub.
Всем привет!
У HashiCorp есть множество крутых обучающих и методических материалов, посвященных их продуктам. Теперь получить к ним доступ стало еще проще, ведь Hashi сделали свой аналог «awesome» и собрали всю информацию о HashiCorp Learning Resources Reference Guide в одной статье!
В перечне материалов есть такие ресурсы, как:
🍭 Официальная документация (Boundary, Consul, Cloud Platform, Nomad, Packer, Sentinel, Terraform, Vagrant, Vault)
🍭 HashiCrop Learn (теория + лабораторные работы)
🍭 YouTube (очень много вебинаров по тому, как использовать решения компании, с примерами)
🍭 Blogs (официальный блог Hashi, блог ребят на Medium)
🍭 HashiConf Hands-on Labs (наборы лабораторных работ)
🍭 Technical Examples (общедоступные наработки команды) и не только!
На наш взгляд сохранить эту закладку – просто must, если вас интересует HashiCorp и их продукция!
У HashiCorp есть множество крутых обучающих и методических материалов, посвященных их продуктам. Теперь получить к ним доступ стало еще проще, ведь Hashi сделали свой аналог «awesome» и собрали всю информацию о HashiCorp Learning Resources Reference Guide в одной статье!
В перечне материалов есть такие ресурсы, как:
🍭 Официальная документация (Boundary, Consul, Cloud Platform, Nomad, Packer, Sentinel, Terraform, Vagrant, Vault)
🍭 HashiCrop Learn (теория + лабораторные работы)
🍭 YouTube (очень много вебинаров по тому, как использовать решения компании, с примерами)
🍭 Blogs (официальный блог Hashi, блог ребят на Medium)
🍭 HashiConf Hands-on Labs (наборы лабораторных работ)
🍭 Technical Examples (общедоступные наработки команды) и не только!
На наш взгляд сохранить эту закладку – просто must, если вас интересует HashiCorp и их продукция!
HashiCorp
HashiCorp Learning Resources Reference Guide
Read this curated list of HashiCorp learning resources to help practitioners and organizations better understand the cloud operating model.
Привет!
Syft – полезная утилита, которая позволяет сгенерировать Software Bill of Materials (SBOM) для образов контейнеров - перечень компонентов, из которых "состоит" ПО и образ.
Реализована поддержка пакетов и библиотек для APK, DEB, RPM, Ruby Bundles, Python Wheel/Egg/requirements.txt, JavaScript NPM/Yarn, Java JAR/EAR/WAR, Jenkins plugins JPI/HPI, Go modules.
Присутствует нативная интеграция с другим продуктом Anchore – Grype (сканер уязвимостей для образов контейнеров).
И, как обычно, поддержка большого количества output форматов: json, text, cyclonedx, spdx, spdx-json, table.
Кстати, недавно (11 октября) прошла конференция, посвященная безопасности Supply Chain – Supply Chain Security Con. Записей докладов пока нет, но можно скачать keynotes для того, чтобы быстро ознакомиться с ключевыми тезисами.
Syft – полезная утилита, которая позволяет сгенерировать Software Bill of Materials (SBOM) для образов контейнеров - перечень компонентов, из которых "состоит" ПО и образ.
Реализована поддержка пакетов и библиотек для APK, DEB, RPM, Ruby Bundles, Python Wheel/Egg/requirements.txt, JavaScript NPM/Yarn, Java JAR/EAR/WAR, Jenkins plugins JPI/HPI, Go modules.
Присутствует нативная интеграция с другим продуктом Anchore – Grype (сканер уязвимостей для образов контейнеров).
И, как обычно, поддержка большого количества output форматов: json, text, cyclonedx, spdx, spdx-json, table.
Кстати, недавно (11 октября) прошла конференция, посвященная безопасности Supply Chain – Supply Chain Security Con. Записей докладов пока нет, но можно скачать keynotes для того, чтобы быстро ознакомиться с ключевыми тезисами.
GitHub
GitHub - anchore/syft: CLI tool and library for generating a Software Bill of Materials from container images and filesystems
CLI tool and library for generating a Software Bill of Materials from container images and filesystems - anchore/syft
Привет!
Aqua Enterprise получила большое обновление.
Главное в версии 6.5 — фича под названием Advanced malware protection. Она добавляет новые функции встроенному антивирусу, такие как:
🍏 Защита в реальном времени для хостов и контейнеров.
🍏 Обнаружение вредоносов в файлах, буфере обмена и реестре Windows.
🍏 Обнаружение и предотвращение file-less атак.
🍏 Новые виджеты для главного дэшборда :)
Помимо этого, обновление содержит:
🍏 Новые фильтры для журналов аудита.
🍏 Поддержку установки в среде k3s.
🍏 Возможность настройки отдельных Enforcers (ранее настраивать можно было только Enforcer groups).
🍏 Поддержку интеграции с GitHub Container Registry.
🍏 Jenkins плагин теперь поддерживает сканирование с использованием Podman.
🍏 Aqua Starboard теперь по умолчанию деплоится вместе с KubeEnforcer-ами.
🍏 Появились новые команды для API и ряд других нововведений.
Апгрейд на версию 6.5 поддерживается для версий 6.2, 6.0 и 5.3.
Aqua Enterprise получила большое обновление.
Главное в версии 6.5 — фича под названием Advanced malware protection. Она добавляет новые функции встроенному антивирусу, такие как:
🍏 Защита в реальном времени для хостов и контейнеров.
🍏 Обнаружение вредоносов в файлах, буфере обмена и реестре Windows.
🍏 Обнаружение и предотвращение file-less атак.
🍏 Новые виджеты для главного дэшборда :)
Помимо этого, обновление содержит:
🍏 Новые фильтры для журналов аудита.
🍏 Поддержку установки в среде k3s.
🍏 Возможность настройки отдельных Enforcers (ранее настраивать можно было только Enforcer groups).
🍏 Поддержку интеграции с GitHub Container Registry.
🍏 Jenkins плагин теперь поддерживает сканирование с использованием Podman.
🍏 Aqua Starboard теперь по умолчанию деплоится вместе с KubeEnforcer-ами.
🍏 Появились новые команды для API и ряд других нововведений.
Апгрейд на версию 6.5 поддерживается для версий 6.2, 6.0 и 5.3.
Привет!
Отрицательный опыт – тоже опыт! Есть интересные подборки с anti-pattern, в которых описано как делать НЕ стоит и почему это так.
В статье приведены 10 anti-pattern для Kubernetes deployment:
🍭 Размещать конфигурацию внутри образа контейнера
🍭 НЕ использовать Helm или иные templating-решения
🍭 Deploy в определенном порядке (приложения не должны «падать», если их зависимости еще «не готовы»)
🍭 Deploy без указания Lim/Req для CPU и RAM
🍭 Использование образов с тэгом «latest» в продуктивных средах
🍭 Deploy обновлений через «убийство» pod (что влечет image pull, более корректный путь – через модификацию конфигурации, что приведет к обновлению с сохранением управления версионности)
🍭 Использование продуктивных и тестовых сущностей в одном кластере
🍭 НЕ использовать blue/green и/или canary deployment для обновления критичных приложений (rolling updates не всегда достаточны)
🍭 Отсутствие метрик для анализа успешности deployment
🍭 Cloud vendor lock-in: «привязка» к облачным услугам (корректный путь – создание сущностей таким образом, чтобы их можно было легко «переносить» между различными средами)
Почему тот или иной anti-pattern попал в перечень неплохо расписано в самой статье и с примерами (оценка Medium на время чтения статьи ~ 22 минуты)
P.S. Всех с пятницей! Отличных выходных!
Отрицательный опыт – тоже опыт! Есть интересные подборки с anti-pattern, в которых описано как делать НЕ стоит и почему это так.
В статье приведены 10 anti-pattern для Kubernetes deployment:
🍭 Размещать конфигурацию внутри образа контейнера
🍭 НЕ использовать Helm или иные templating-решения
🍭 Deploy в определенном порядке (приложения не должны «падать», если их зависимости еще «не готовы»)
🍭 Deploy без указания Lim/Req для CPU и RAM
🍭 Использование образов с тэгом «latest» в продуктивных средах
🍭 Deploy обновлений через «убийство» pod (что влечет image pull, более корректный путь – через модификацию конфигурации, что приведет к обновлению с сохранением управления версионности)
🍭 Использование продуктивных и тестовых сущностей в одном кластере
🍭 НЕ использовать blue/green и/или canary deployment для обновления критичных приложений (rolling updates не всегда достаточны)
🍭 Отсутствие метрик для анализа успешности deployment
🍭 Cloud vendor lock-in: «привязка» к облачным услугам (корректный путь – создание сущностей таким образом, чтобы их можно было легко «переносить» между различными средами)
Почему тот или иной anti-pattern попал в перечень неплохо расписано в самой статье и с примерами (оценка Medium на время чтения статьи ~ 22 минуты)
P.S. Всех с пятницей! Отличных выходных!
Medium
10 Anti-Patterns for Kubernetes Deployments
Common practices in Kubernetes deployments that have better solutions
Всем привет!
Veracode сделал общедоступными часть своих интерактивных курсов по обучению безопасной разработке!
Доступно несколько базовых направлений:
🍭 Base Terminal
🍭 Juice Shop
🍭 Python AppSec
🍭 React
Если Вас интересует интерактивное обучение, то можно обратить внимание на проекты Kontra (о котором мы писали тут) и Codebashing от Checkmarx (если платная и бесплатная версия).
Также ребята сделали удобное сравнение между платной и бесплатной версией своего продукта (доступно по ссылке). Согласно сравнительной табличке Community Edition является Forever Free 😊
Veracode сделал общедоступными часть своих интерактивных курсов по обучению безопасной разработке!
Доступно несколько базовых направлений:
🍭 Base Terminal
🍭 Juice Shop
🍭 Python AppSec
🍭 React
Если Вас интересует интерактивное обучение, то можно обратить внимание на проекты Kontra (о котором мы писали тут) и Codebashing от Checkmarx (если платная и бесплатная версия).
Также ребята сделали удобное сравнение между платной и бесплатной версией своего продукта (доступно по ссылке). Согласно сравнительной табличке Community Edition является Forever Free 😊
Veracode
Security Labs | Veracode
Application Security for the AI Era | Veracode
Всем привет!
Еще один cheatsheet на тему Docker security, на этот раз от GitGuardian!
Об этом есть множество аналогичных материалов, подборка от GitGuardian не стала исключением и состоит из знакомого перечня рекомендаций:
🍭 Корректное использование tags
🍭 Назначение default user
🍭 Исключение plain text секретов из ENV
🍭 Контроль доступа к docker daemon
🍭 Управление linux capabilities
🍭 Контроль файловой системы, возможностей на чтение/запись в определенные директории и другое
Что отличает рекомендации GitGuardian и почему стоит на них взглянуть? Крайне удобная схема, где все рекомендации собраны воедино. Можно использовать в качестве шпаргалки, когда надо посмотреть "а не забыл ли я что?" ☺️
Еще один cheatsheet на тему Docker security, на этот раз от GitGuardian!
Об этом есть множество аналогичных материалов, подборка от GitGuardian не стала исключением и состоит из знакомого перечня рекомендаций:
🍭 Корректное использование tags
🍭 Назначение default user
🍭 Исключение plain text секретов из ENV
🍭 Контроль доступа к docker daemon
🍭 Управление linux capabilities
🍭 Контроль файловой системы, возможностей на чтение/запись в определенные директории и другое
Что отличает рекомендации GitGuardian и почему стоит на них взглянуть? Крайне удобная схема, где все рекомендации собраны воедино. Можно использовать в качестве шпаргалки, когда надо посмотреть "а не забыл ли я что?" ☺️
GitGuardian Blog - Take Control of Your Secrets Security
Docker Security Best Practices: Cheat Sheet
Discover essential Docker Security Best Practices for DevOps engineers and security professionals. Cheat sheet included for quick implementation!
Всем привет!
Рано или поздно вам придется столкнуться с CrashLoopBackOff… Иногда понять в чем причина не всегда просто и можно воспользоваться рекомендациями из статьи.
Ребята выделили наиболее частые причины, которые приводят к указанному состоянию:
🍭 Insufficient resource – недостаток ресурсов, из-за которого контейнер не может запуститься
🍭 Locked file – файл был заблокирован другим контейнером
🍭 Locked database – база данных используется (заблокирована) другим контейнером
🍭 Failed reference – что-то внутри контейнера ссылается на скрипты/исполняемые файлы, которые отсутствуют в контейнере
🍭 Setup error – некорректная настройка init-container
🍭 Config loading error – невозможно загрузить требуемую конфигурацию
🍭 Misconfigurations – некорректные настройки системы
🍭 Connection issues – DNS или kube-DNS не может «связаться» со сторонним сервисом
🍭 Deploying failed services – попытка deploy сервиса/приложения, которое уже находится в статусе «failed» (например, из-за невозможности доступа к иным сервисам)
Помимо самих причин в статье представлены debug-рекомендации, разборы «не типовых» сценариев, которые могут привести к указанной ошибке
Рано или поздно вам придется столкнуться с CrashLoopBackOff… Иногда понять в чем причина не всегда просто и можно воспользоваться рекомендациями из статьи.
Ребята выделили наиболее частые причины, которые приводят к указанному состоянию:
🍭 Insufficient resource – недостаток ресурсов, из-за которого контейнер не может запуститься
🍭 Locked file – файл был заблокирован другим контейнером
🍭 Locked database – база данных используется (заблокирована) другим контейнером
🍭 Failed reference – что-то внутри контейнера ссылается на скрипты/исполняемые файлы, которые отсутствуют в контейнере
🍭 Setup error – некорректная настройка init-container
🍭 Config loading error – невозможно загрузить требуемую конфигурацию
🍭 Misconfigurations – некорректные настройки системы
🍭 Connection issues – DNS или kube-DNS не может «связаться» со сторонним сервисом
🍭 Deploying failed services – попытка deploy сервиса/приложения, которое уже находится в статусе «failed» (например, из-за невозможности доступа к иным сервисам)
Помимо самих причин в статье представлены debug-рекомендации, разборы «не типовых» сценариев, которые могут привести к указанной ошибке
Komodor
Troubleshoot and Fix Kubernetes CrashLoopBackoff Status
CrashLoopBackOff is a common Kubernetes error, which indicates that a pod failed to start, Kubernetes tried to restart it, and it continued to fail repeatedly.
Привет!
Статья, посвященная Autoscaling (динамической адаптации вычислительных ресурсов, таких как CPU и RAM в зависимости от потребностей и эффективности работы приложения). Autoscaling может работать как для увеличения ресурсов, так и для их сокращения, чтобы оптимизировать работу кластера.
Рассматривается несколько видов, доступных в Kubernetes:
🍭 Horizontal Pod Autoscaler (HPA): управление количеством pods, например, в replicas, scale out
🍭 Vertical Pod Autoscaler (VPA): управление мощностями существующих сущностей, scale up
🍭 Cluster Autoscaler: управление вычислительными мощностями кластера, если их недостаточно для корректного функционирования нагрузок
Принцип работы Autoscaler достаточно прост: создается Kubernetes API Resource и Controller. Controller взаимодействует с Metrics API Server и принимает решение о необходимости масштабирования, если оно требуется
В завершении статьи приводится небольшая инструкция, в которой показано, как это можно настроить на примере HPA.
Написано очень доступно, с диаграммами и объяснением каждого концепта «на пальцах». Для Ops-специалистов, скорее всего, не будет ничего нового, а для Sec, которым интересно погрузиться – вполне. Тем более, что ранее мы уже писали об интересном способе использования VPA для формирования Req/Lim для CPU и RAM с использованием Goldilocks.
Статья, посвященная Autoscaling (динамической адаптации вычислительных ресурсов, таких как CPU и RAM в зависимости от потребностей и эффективности работы приложения). Autoscaling может работать как для увеличения ресурсов, так и для их сокращения, чтобы оптимизировать работу кластера.
Рассматривается несколько видов, доступных в Kubernetes:
🍭 Horizontal Pod Autoscaler (HPA): управление количеством pods, например, в replicas, scale out
🍭 Vertical Pod Autoscaler (VPA): управление мощностями существующих сущностей, scale up
🍭 Cluster Autoscaler: управление вычислительными мощностями кластера, если их недостаточно для корректного функционирования нагрузок
Принцип работы Autoscaler достаточно прост: создается Kubernetes API Resource и Controller. Controller взаимодействует с Metrics API Server и принимает решение о необходимости масштабирования, если оно требуется
В завершении статьи приводится небольшая инструкция, в которой показано, как это можно настроить на примере HPA.
Написано очень доступно, с диаграммами и объяснением каждого концепта «на пальцах». Для Ops-специалистов, скорее всего, не будет ничего нового, а для Sec, которым интересно погрузиться – вполне. Тем более, что ранее мы уже писали об интересном способе использования VPA для формирования Req/Lim для CPU и RAM с использованием Goldilocks.
Всем привет!
Пока мы морально готовимся к «рабочим выходным», миримся с ушедшим бабьим летом и промокаем под постоянными дождями, наступила пятница!
И в этот день судьба решила порадовать нас и подарить чудесный солнечный день!
А мы порадуем вас интересной фичей - от команды хорошо знакомого нам GitHub. GitHub Actions!
Фича, по сути, не совсем новая, но для GitHub это эдакий свой взгляд на реализацию CI/CD. Как бы ни напрашивалось сравнение с GitLab CI, подход к реализации у GitHub получился иной.
🍩 Фича представляет из себя отдельный каталог в репозитории с набором YML манифестов, каждый из которых описывает какое то действие этапа сборки. Например action для test или merge коммита в мастер ветку.
🍩 Для начала работы не требуется никаких настроек или интеграций. Достаточно создать каталог .github/workflows, в котором будут размещены job манифесты
🍩 Actions могут быть особенно полезны в облачных инфраструктурах, так как описание абсолютно всех этапов и триггеров сборок могут быть размещены в одном репозитории, который клонируется, например в CodeCommit
🍩 В целом комплекс очень напоминает большие плейбуки Ansible с кросс ссылками друг на друга. Возможность создания подобных конструкций поможет создавать большие workflow с множеством различных trigger и специфичных jobs для разных event.
Отдельного упоминания заслуживает marketplace вендора, в котором собран набор манифестов часто используемых Actions, а так же возможность писать собственные action’ы и шарить их с комьюнити.
Ссылка как всегда ниже, приятного ознакомления! 👇
https://github.com/features/actions
Пока мы морально готовимся к «рабочим выходным», миримся с ушедшим бабьим летом и промокаем под постоянными дождями, наступила пятница!
И в этот день судьба решила порадовать нас и подарить чудесный солнечный день!
А мы порадуем вас интересной фичей - от команды хорошо знакомого нам GitHub. GitHub Actions!
Фича, по сути, не совсем новая, но для GitHub это эдакий свой взгляд на реализацию CI/CD. Как бы ни напрашивалось сравнение с GitLab CI, подход к реализации у GitHub получился иной.
🍩 Фича представляет из себя отдельный каталог в репозитории с набором YML манифестов, каждый из которых описывает какое то действие этапа сборки. Например action для test или merge коммита в мастер ветку.
🍩 Для начала работы не требуется никаких настроек или интеграций. Достаточно создать каталог .github/workflows, в котором будут размещены job манифесты
🍩 Actions могут быть особенно полезны в облачных инфраструктурах, так как описание абсолютно всех этапов и триггеров сборок могут быть размещены в одном репозитории, который клонируется, например в CodeCommit
🍩 В целом комплекс очень напоминает большие плейбуки Ansible с кросс ссылками друг на друга. Возможность создания подобных конструкций поможет создавать большие workflow с множеством различных trigger и специфичных jobs для разных event.
Отдельного упоминания заслуживает marketplace вендора, в котором собран набор манифестов часто используемых Actions, а так же возможность писать собственные action’ы и шарить их с комьюнити.
Ссылка как всегда ниже, приятного ознакомления! 👇
https://github.com/features/actions
GitHub
GitHub Actions
Easily build, package, release, update, and deploy your project in any language—on GitHub or any external system—without having to run code yourself.
Kubernetes cloud native operations report 06.21.pdf
3.6 MB
Всем привет!
В приложении отчет от Canonical – «Kubernetes and cloud native operations report 2021». Он содержит много интересной статистической информации на основе ответов 1200 респондентов.
Например:
🍭 Использование cloud (public, hybrid, private)
🍭 Информация о количестве кластеров
🍭 Использование виртуализации и/или bare metal
🍭 Helm-chart, насколько часто их используют
🍭 Основные опасения при работе с оркестраторами и многое другое!
Много цифр, мало «воды», рекомендуем к ознакомлению! ☺️
В приложении отчет от Canonical – «Kubernetes and cloud native operations report 2021». Он содержит много интересной статистической информации на основе ответов 1200 респондентов.
Например:
🍭 Использование cloud (public, hybrid, private)
🍭 Информация о количестве кластеров
🍭 Использование виртуализации и/или bare metal
🍭 Helm-chart, насколько часто их используют
🍭 Основные опасения при работе с оркестраторами и многое другое!
Много цифр, мало «воды», рекомендуем к ознакомлению! ☺️
Привет!
Отличная статья про написание Custom Scheduler для Kubernetes! В начале статьи описаны концепты Scheduling:
🍭 После запроса о создании pod попадает в Scheduling Queue
🍭 Далее pod надо назначить на node, это делается в 2 этапа: Scheduling и Binding
🍭 Scheduling происходит в несколько этапов. Сперва «отсекаются» nodes, которые не подходят для запуска pod (например, из-за taints). Далее оставшиеся (подходящие) nodes ранжируются (фильтруются) с целью выбор единственной
🍭 Binding – взаимодействие с Kubelet выбранной node, постановка задачи на создание pod
Изменение приоритетов scheduling может быть осуществлено при помощи plugins, которые могут видоизменять процесс на разных этапах (см. картинку в статье). Общий набор plugins, которые используются в процессе scheduling описывается в profile (грубо говоря, описываем, как и что надо делать, на каком этапе).
Вторая часть статьи посвящена созданию собственного plugin’a – “NetworkTraffic”, его настройке и последующему использованию в качестве «основного» механизма scheduling. Принцип простой - выбираем node на основе анализа сетевого трафика!
Много кода, конфигураций и примеров! Очень наглядно и понятно объясняет концепт принятия решения о том, где именно следует запустить pod
Отличная статья про написание Custom Scheduler для Kubernetes! В начале статьи описаны концепты Scheduling:
🍭 После запроса о создании pod попадает в Scheduling Queue
🍭 Далее pod надо назначить на node, это делается в 2 этапа: Scheduling и Binding
🍭 Scheduling происходит в несколько этапов. Сперва «отсекаются» nodes, которые не подходят для запуска pod (например, из-за taints). Далее оставшиеся (подходящие) nodes ранжируются (фильтруются) с целью выбор единственной
🍭 Binding – взаимодействие с Kubelet выбранной node, постановка задачи на создание pod
Изменение приоритетов scheduling может быть осуществлено при помощи plugins, которые могут видоизменять процесс на разных этапах (см. картинку в статье). Общий набор plugins, которые используются в процессе scheduling описывается в profile (грубо говоря, описываем, как и что надо делать, на каком этапе).
Вторая часть статьи посвящена созданию собственного plugin’a – “NetworkTraffic”, его настройке и последующему использованию в качестве «основного» механизма scheduling. Принцип простой - выбираем node на основе анализа сетевого трафика!
Много кода, конфигураций и примеров! Очень наглядно и понятно объясняет концепт принятия решения о том, где именно следует запустить pod
Medium
K8S- Creating a kube-scheduler plugin
Saying it in a few words, the K8S scheduler is responsible for assigning Pods to Nodes. Once a new pod is created it gets in the…
Всем привет!
SNYK подготовили собственный набор обучающих курсов по тематике безопасности приложений. На данный момент можно попробовать:
🍭 Java: SQLi, Directory Traversal, XSS
🍭 JavaScript: SQLi, Directory Traversal, XSS, Prototype Pollution
🍭 Kubernetes: Container does not drop all default capabilities
Помимо интерактивных demo приводится много интересной теории, а также объясняет, что именно плохо, почему это так, к чему это может привести и как это можно поправить.
Очень наглядно – схемы, примеры кода и ссылки на полезные ресурсы с информацией! Надеемся, что проект будет развиваться, а количество курсов - увеличиваться 😊
SNYK подготовили собственный набор обучающих курсов по тематике безопасности приложений. На данный момент можно попробовать:
🍭 Java: SQLi, Directory Traversal, XSS
🍭 JavaScript: SQLi, Directory Traversal, XSS, Prototype Pollution
🍭 Kubernetes: Container does not drop all default capabilities
Помимо интерактивных demo приводится много интересной теории, а также объясняет, что именно плохо, почему это так, к чему это может привести и как это можно поправить.
Очень наглядно – схемы, примеры кода и ссылки на полезные ресурсы с информацией! Надеемся, что проект будет развиваться, а количество курсов - увеличиваться 😊
Snyk Learn
Free Interactive Secure Development Training
Snyk Learn is developer-first security education that offers free interactive lessons on how to fix vulnerabilities in applications, containers, and IaC.
Привет!
Интересный проект, представляющий из себя средство защиты web-трафика, services и API - Curiefence. Поддерживается интеграция с Envoy и Nginx.
Согласно документации, включает в себя такие функции как:
🍭 WAF (включая позитивные и негативные модели)
🍭 Защита от DDoS на прикладном уровне
🍭 Защита API (включая schema enforcement) и не только
"Из коробки" доступны преднастроенные dashboards с использованием Kibana, так же можно анализировать метрики при помощи Grafana.
Общий концепт решения представлен в коротком видео. На Katacoda доступно несколько уроков для ознакомления: Getting Started и API Basics.
P.S. Проект является частью CNCF (CNCF Sandbox project). С документацией можно ознакомиться вот тут.
Интересный проект, представляющий из себя средство защиты web-трафика, services и API - Curiefence. Поддерживается интеграция с Envoy и Nginx.
Согласно документации, включает в себя такие функции как:
🍭 WAF (включая позитивные и негативные модели)
🍭 Защита от DDoS на прикладном уровне
🍭 Защита API (включая schema enforcement) и не только
"Из коробки" доступны преднастроенные dashboards с использованием Kibana, так же можно анализировать метрики при помощи Grafana.
Общий концепт решения представлен в коротком видео. На Katacoda доступно несколько уроков для ознакомления: Getting Started и API Basics.
P.S. Проект является частью CNCF (CNCF Sandbox project). С документацией можно ознакомиться вот тут.
Всем привет!
Статья, посвященная настройке аутентификации и авторизации в кластере Kubernetes при помощи Dex и LDAP (в статье рассматривается OpenLDAP)!
Целевая картинка, которая должна получиться:
🍭 Пользователь использует LDAP аутентификацию в Dex
🍭 Dex «уточняет» у LDAP валидность учетных данных
🍭 LDAP возвращает информацию о пользователе Dex'у
🍭 Dex предоставляет пользователю инструкцию, в которой описан алгоритм получения доступа к кластеру, а также информацию о группе в которой он состоит
В статье представлена подробная инструкция по реализации, ссылки на используемую конфигурацию и инструментарий.
Подобный подход удобен для пользователя, а для ИБ – удобный инструмент управления правами доступа (с точки зрения назначения/удаления) с использованием групп LDAP и RBAC K8S (mapping ролей K8S на доменные группы).
P.S. В завершении статьи как раз есть пример предоставления роли Cluster Admin группе «clusterusers». Но так, пожалуй, делать не стоит 😊 Всех с пятницей! Отличного вечера и выходных!
Статья, посвященная настройке аутентификации и авторизации в кластере Kubernetes при помощи Dex и LDAP (в статье рассматривается OpenLDAP)!
Целевая картинка, которая должна получиться:
🍭 Пользователь использует LDAP аутентификацию в Dex
🍭 Dex «уточняет» у LDAP валидность учетных данных
🍭 LDAP возвращает информацию о пользователе Dex'у
🍭 Dex предоставляет пользователю инструкцию, в которой описан алгоритм получения доступа к кластеру, а также информацию о группе в которой он состоит
В статье представлена подробная инструкция по реализации, ссылки на используемую конфигурацию и инструментарий.
Подобный подход удобен для пользователя, а для ИБ – удобный инструмент управления правами доступа (с точки зрения назначения/удаления) с использованием групп LDAP и RBAC K8S (mapping ролей K8S на доменные группы).
P.S. В завершении статьи как раз есть пример предоставления роли Cluster Admin группе «clusterusers». Но так, пожалуй, делать не стоит 😊 Всех с пятницей! Отличного вечера и выходных!
Medium
Kubernetes Authentication and Authorization through Dex & LDAP and RBAC rules
Written by developer-guy Emin Aktaş
Всем привет!
По ссылке доступен генератор YAML файлов для Deployment, StatefulSet и DaemonSet от Octopus Deploy.
Пользоваться крайне просто, надо лишь указать необходимую информацию о создаваемой сущности:
🍭 Сведения для Metadata
🍭 Deployment Strategy
🍭 Информацию о контейнерах и их характеристиках
🍭 Сведения о tolerations
🍭 Параметры pod security context и т.д.
Все вносимые изменения сразу отображаются в генерируемом YAML файле. Для каждого элемента конфигурации приведены ссылки на официальную документацию Kubernetes, где описывается что это такое и зачем
По ссылке доступен генератор YAML файлов для Deployment, StatefulSet и DaemonSet от Octopus Deploy.
Пользоваться крайне просто, надо лишь указать необходимую информацию о создаваемой сущности:
🍭 Сведения для Metadata
🍭 Deployment Strategy
🍭 Информацию о контейнерах и их характеристиках
🍭 Сведения о tolerations
🍭 Параметры pod security context и т.д.
Все вносимые изменения сразу отображаются в генерируемом YAML файле. Для каждого элемента конфигурации приведены ссылки на официальную документацию Kubernetes, где описывается что это такое и зачем
K8Syaml
Kubernetes YAML Generator
Octopus Deploy is a Deployment and Operations tool for AWS, Azure, .NET, Java, Kubernetes, Windows and Linux, and a Kubernetes YAML generator
Всем привет!
У нас была отдельная роль для Jenkins, обладающая доступом к SecretID, несколько приложений, которые использовали AppRole (RoleID и SecretID) и обладали своими собственными ролями на чтение секретов…
В статье представлен интересный подход использования AppRole в соответствии со следующей схемой:
🍭 Создаем Role [1] для приложения, используем AuthMethod: AppRole
🍭 Создаем политику [‘read’, ‘list’], применяем к Role приложения [1]
🍭 Получаем RoleID [RiD] приложения
🍭 Создаем Role [2] для Jenkins, используем AuthMethod: Token, генерируем Token [T]
🍭 Создаем политику [‘read’, ‘list’, ‘update’] для SecretID, которую применяем к Role Jenkins [2]
🍭 Настраиваем VAULT_TOKEN [T] и RoleID [RiD] как переменные окружения в Jenkins
🍭 Внутри отдельного build извлекаем SecretID: при помощи VAULT_TOKEN [T] Jenkins аутентифицируется в Vault и «изменяет» SecretID (права у него есть, [2]), записывает его в переменную [SiD]
🍭 Далее – используя RoleID [RiD] и SecretID [SiD] получаем доступ к секретам. Готово!
В рассматриваемом сценарии используется только одна относительно long-lived сущность, а именно – token, который используется Jenkins для аутентификации в Vault. Все остальные сущности – «одноразовые» или могу обладать небольшим сроком жизни (в зависимости от реализованных настроек).
У нас была отдельная роль для Jenkins, обладающая доступом к SecretID, несколько приложений, которые использовали AppRole (RoleID и SecretID) и обладали своими собственными ролями на чтение секретов…
В статье представлен интересный подход использования AppRole в соответствии со следующей схемой:
🍭 Создаем Role [1] для приложения, используем AuthMethod: AppRole
🍭 Создаем политику [‘read’, ‘list’], применяем к Role приложения [1]
🍭 Получаем RoleID [RiD] приложения
🍭 Создаем Role [2] для Jenkins, используем AuthMethod: Token, генерируем Token [T]
🍭 Создаем политику [‘read’, ‘list’, ‘update’] для SecretID, которую применяем к Role Jenkins [2]
🍭 Настраиваем VAULT_TOKEN [T] и RoleID [RiD] как переменные окружения в Jenkins
🍭 Внутри отдельного build извлекаем SecretID: при помощи VAULT_TOKEN [T] Jenkins аутентифицируется в Vault и «изменяет» SecretID (права у него есть, [2]), записывает его в переменную [SiD]
🍭 Далее – используя RoleID [RiD] и SecretID [SiD] получаем доступ к секретам. Готово!
В рассматриваемом сценарии используется только одна относительно long-lived сущность, а именно – token, который используется Jenkins для аутентификации в Vault. Все остальные сущности – «одноразовые» или могу обладать небольшим сроком жизни (в зависимости от реализованных настроек).
Corrarello
Reading Vault Secrets in your Jenkins pipeline
Всем привет!
APIClarity – инструмент для автоматической генерации OpenAPI спецификаций для приложений, запущенных в кластере среды контейнерной оркестрации.
Решение обладает таким функционалом как:
🍭 «Захват» API трафика с использованием ServiceMesh (например, Istio)
🍭 Создание OpenAPI спецификации по результатам анализа API трафика. Альтернатива – загрузка уже существующей спецификации
🍭 Оповещение о расхождении между «доверенной» OpenAPI спецификацией и API-вызовами, которые реализуются в runtime
🍭 Обладает web-интерфейсом для большей наглядности полученной информации
Больше информации можно узнать в документации, а также на web-сайте решения, особенно в разделе Resources, где приведены обзорные статьи. Например, «APIClarity in action»
P.S. Поздравляем всех с наступающими праздниками! Желанием отличного отдыха, множества положительных эмоций и приятного времяпрепровождения! 😊
APIClarity – инструмент для автоматической генерации OpenAPI спецификаций для приложений, запущенных в кластере среды контейнерной оркестрации.
Решение обладает таким функционалом как:
🍭 «Захват» API трафика с использованием ServiceMesh (например, Istio)
🍭 Создание OpenAPI спецификации по результатам анализа API трафика. Альтернатива – загрузка уже существующей спецификации
🍭 Оповещение о расхождении между «доверенной» OpenAPI спецификацией и API-вызовами, которые реализуются в runtime
🍭 Обладает web-интерфейсом для большей наглядности полученной информации
Больше информации можно узнать в документации, а также на web-сайте решения, особенно в разделе Resources, где приведены обзорные статьи. Например, «APIClarity in action»
P.S. Поздравляем всех с наступающими праздниками! Желанием отличного отдыха, множества положительных эмоций и приятного времяпрепровождения! 😊
GitHub
GitHub - openclarity/apiclarity: An API security tool to capture and analyze API traffic, test API endpoints, reconstruct Open…
An API security tool to capture and analyze API traffic, test API endpoints, reconstruct Open API specification, and identify API security risks. - GitHub - openclarity/apiclarity: An API security...
Всем привет!
Postee – утилита от Aqua Security, предназначенная для сбора и маршрутизации событий в сторонние системы. Утилита получает сообщения в формате JSON через webhook-интерфейс и доставляет их в соответствии с настроенными правилами.
Основное назначение этой утилиты – централизованный сбор событий с продуктов Aqua Security. Например, может интегрироваться с Aqua Enterprise (отправка отчетов о найденных уязвимостях) и open source утилитой Tracee, используемой для защиты и анализа действий runtime на уровне Linux (о ней мы писали тут).
Перечень доступных интеграций:
🍡JIRA,
🍡Email,
🍡Slack,
🍡Microsoft Teams,
🍡ServiceNow,
🍡Splunk
🍡Generic WebHook
Как использовать:
🍡Сначала необходимо настроить Postee config file, который содержит логику отправки сообщений. Правила маршрутизации пишутся на языке REGO
🍡Затем развернуть готовый образ, доступный из репозитория aquasec или собрать его из исходников
🍡Запустить Postee можно как в Docker, так и в Kubernetes с использованием манифестов или HELM-чарта
🍡Для упрощения операций по администрированию Postee имеет веб-интерфейс
Информацию о Postee можно найти по ссылке: https://github.com/aquasecurity/postee
Пример интеграции с Tracee есть в блоге Aqua Security: https://blog.aquasec.com/tracee-runtime-malware-alerts-aqua-postee
Postee – утилита от Aqua Security, предназначенная для сбора и маршрутизации событий в сторонние системы. Утилита получает сообщения в формате JSON через webhook-интерфейс и доставляет их в соответствии с настроенными правилами.
Основное назначение этой утилиты – централизованный сбор событий с продуктов Aqua Security. Например, может интегрироваться с Aqua Enterprise (отправка отчетов о найденных уязвимостях) и open source утилитой Tracee, используемой для защиты и анализа действий runtime на уровне Linux (о ней мы писали тут).
Перечень доступных интеграций:
🍡JIRA,
🍡Email,
🍡Slack,
🍡Microsoft Teams,
🍡ServiceNow,
🍡Splunk
🍡Generic WebHook
Как использовать:
🍡Сначала необходимо настроить Postee config file, который содержит логику отправки сообщений. Правила маршрутизации пишутся на языке REGO
🍡Затем развернуть готовый образ, доступный из репозитория aquasec или собрать его из исходников
🍡Запустить Postee можно как в Docker, так и в Kubernetes с использованием манифестов или HELM-чарта
🍡Для упрощения операций по администрированию Postee имеет веб-интерфейс
Информацию о Postee можно найти по ссылке: https://github.com/aquasecurity/postee
Пример интеграции с Tracee есть в блоге Aqua Security: https://blog.aquasec.com/tracee-runtime-malware-alerts-aqua-postee
GitHub
GitHub - aquasecurity/postee: Notice: Postee is no longer under active development or maintenance.
Notice: Postee is no longer under active development or maintenance. - aquasecurity/postee