Всем DevOps! 🖖
Как прошли выходные?
Предлагаем начать неделю со статьи под кодовым названием «pipeline to hell», точнее — как случайно не сделать такой пайплайн.
Вообще статья называется «CI/CD Security: What is It, Risks & Best Practices»: почему безопасность CI/CD имеет решающее значение, OWASP Top 10 CI/CD рисков безопасности, как сделать безопасный пайплайн и прочие полезные рекомендации.
Примерное время прочтения: 27 минут, нужно использовать VPN :(
#статьи
Как прошли выходные?
Предлагаем начать неделю со статьи под кодовым названием «pipeline to hell», точнее — как случайно не сделать такой пайплайн.
Вообще статья называется «CI/CD Security: What is It, Risks & Best Practices»: почему безопасность CI/CD имеет решающее значение, OWASP Top 10 CI/CD рисков безопасности, как сделать безопасный пайплайн и прочие полезные рекомендации.
Примерное время прочтения: 27 минут, нужно использовать VPN :(
#статьи
⚡7👍3
Представляем nxs-data-anonymizer — удобный инструмент для анонимизации баз данных 🔥
И не просто инструмент, а open source инструмент компании Nixys! Поддерживает PostgreSQL (все версии) и MySQL/MariaDB/Percona (все версии).
Решение получилось достаточно гибким и простым в эксплуатации, и строится на следующих основных идеях:
⚙️ Потоковая обработка данных. Не обязательно предварительно готовить и сохранять где-то на диске дамп исходной базы. Инструмент может менять на лету данные, которые ему передаются на stdin. А выдавать всё — на stdout.
⚙️ Значения описываются Go template. То, на что вы хотите заменить нужные вам ячейки в таблице, определяется шаблонами как в Helm, который многим должен быть знаком.
⚙️ Использование условий и данных других ячеек в строке. Фильтры могут быть гибкими и делать те или иные подстановки в зависимости от значений других (или даже себя самого) ячеек в той же строке;
⚙️ Проверка уникальности данных.
Подробно рассказали про инструмент в статье на Хабре! Делитесь вашим мнением в комментариях :)
И, конечно, заходите в репозиторий — пользуйтесь инструментом, ставьте звездочки, оставляйте PR, рассказывайте коллегам 🦾
💻 Ссылка на GitHub
#open_source #статья_Nixys
И не просто инструмент, а open source инструмент компании Nixys! Поддерживает PostgreSQL (все версии) и MySQL/MariaDB/Percona (все версии).
Решение получилось достаточно гибким и простым в эксплуатации, и строится на следующих основных идеях:
⚙️ Потоковая обработка данных. Не обязательно предварительно готовить и сохранять где-то на диске дамп исходной базы. Инструмент может менять на лету данные, которые ему передаются на stdin. А выдавать всё — на stdout.
⚙️ Значения описываются Go template. То, на что вы хотите заменить нужные вам ячейки в таблице, определяется шаблонами как в Helm, который многим должен быть знаком.
⚙️ Использование условий и данных других ячеек в строке. Фильтры могут быть гибкими и делать те или иные подстановки в зависимости от значений других (или даже себя самого) ячеек в той же строке;
⚙️ Проверка уникальности данных.
Подробно рассказали про инструмент в статье на Хабре! Делитесь вашим мнением в комментариях :)
И, конечно, заходите в репозиторий — пользуйтесь инструментом, ставьте звездочки, оставляйте PR, рассказывайте коллегам 🦾
#open_source #статья_Nixys
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍10🎉6
Мы не договорили! 😁 Недавно делали подборку про Network Policy в Kubernetes, сегодня хочется сделать тематический день и рассказать про управление трафиком в Kubernetes-кластере с Calico.
Поехали!💻
Одно из ключевых и очевидных преимуществ Calico перед другими плагинами — это значительное расширение функционала для настройки сетевых политик — возможность в качестве источников и целей при создании правил задавать диапазоны портов и IP-адресов, протоколы, атрибуты HTTP-запросов, и даже возможность задавать логирование определенного трафика.
Помимо этого Calico добавляет свою политику GlobalNetworkPolicy. Она позволяет применять набор правил доступа по селектору не только для pod’ов, но и для групп хостов/контейнеров/pod’ов, и контролировать применение мер безопасности для различных цепочек путей трафика с помощью таких параметров, как preDNAT, doNotTrack и applyOnForward.
Задачу по обеспечению базовых принципов безопасности мы условно разделим на две:
1) на подзадачу по настройке взаимодействия между pod’ами
2) на подзадачу по настройке доступа к узлу в целом
Решить первую подзадачу можно при помощи такой сущности Kubernetes как NetworkPolicies и при этом можно расширить функционал данной сущности, если использовать её с api, предоставляемого Calico. Для решения второй подзадачи мы будем использовать сущность GlobalNetworkPolicy. По ходу дела так же будем анализировать детали и начнем с Zero Trust Networking.
Zero Trust Networking
Первое, что стоит учесть при написании сетевых политик, это то, что и Kubernetes, и Calico считают наилучшим подход Zero Trust Networking, то есть по умолчанию запросы из используемой сети всегда считаются враждебными.
Согласно данной концепции существуют следующие требования к контролю доступа:
* Правила применяются ко всем сетевым подключениям (не только к тем, которые пересекают границы защищаемой зоны).
* Идентификация удаленного endpoint всегда основана на нескольких критериях, включая надежные криптографические доказательства идентичности. В частности, идентификаторы сетевого уровня, такие как IP-адрес и порт, сами по себе недостаточны, поскольку могут быть подделаны враждебной сетью.
* Все ожидаемые и разрешенные сетевые подключения явно указаны в белом списке. Любое соединение, явно не занесенное в белый список, отклоняется.
* Трафик от скомпрометированных workload (pod/VM/container) не должен иметь возможности обойти применение сетевых политик.
Во многих Zero Trust Networks также реализуется шифрование всего сетевого трафика. Это не является обязательным требованием (если речь идет не о передаче приватных данных), но для соответствия критериям Zero Trust Networks шифрование должно использоваться для каждого сетевого соединения.
Эти принципы влияют, к примеру, на следующее: если есть какая-либо сущность, имеющая метку, то по умолчанию весь трафик для неё разрешён. Но если будет создана хоть одна Policy, в которой будет фигурировать метка конкретной сущности, то для этой сущности будет запрещён весь трафик, кроме того, который был явно разрешён в только что созданной или уже имеющихся политиках.
Аналогично с HostEndpoint, как только он будет создан, весь трафик к хосту будет запрещен, кроме определенного перечня портов, который останется открытым. Причем, даже если вы создадите политики, которые явно запрещают доступ к этим портам, они останутся открытыми.
Для того, чтобы запретить доступ к этим портам нужно будет изменить конфигурацию Felix. Felix — это компонент Calico, демон, запущенный на всех машинах, которые обслуживает Calico.
*️⃣ 1/6: продолжение следует :)
#лонгрид
Поехали!
Одно из ключевых и очевидных преимуществ Calico перед другими плагинами — это значительное расширение функционала для настройки сетевых политик — возможность в качестве источников и целей при создании правил задавать диапазоны портов и IP-адресов, протоколы, атрибуты HTTP-запросов, и даже возможность задавать логирование определенного трафика.
Помимо этого Calico добавляет свою политику GlobalNetworkPolicy. Она позволяет применять набор правил доступа по селектору не только для pod’ов, но и для групп хостов/контейнеров/pod’ов, и контролировать применение мер безопасности для различных цепочек путей трафика с помощью таких параметров, как preDNAT, doNotTrack и applyOnForward.
Задачу по обеспечению базовых принципов безопасности мы условно разделим на две:
1) на подзадачу по настройке взаимодействия между pod’ами
2) на подзадачу по настройке доступа к узлу в целом
Решить первую подзадачу можно при помощи такой сущности Kubernetes как NetworkPolicies и при этом можно расширить функционал данной сущности, если использовать её с api, предоставляемого Calico. Для решения второй подзадачи мы будем использовать сущность GlobalNetworkPolicy. По ходу дела так же будем анализировать детали и начнем с Zero Trust Networking.
Zero Trust Networking
Первое, что стоит учесть при написании сетевых политик, это то, что и Kubernetes, и Calico считают наилучшим подход Zero Trust Networking, то есть по умолчанию запросы из используемой сети всегда считаются враждебными.
Согласно данной концепции существуют следующие требования к контролю доступа:
* Правила применяются ко всем сетевым подключениям (не только к тем, которые пересекают границы защищаемой зоны).
* Идентификация удаленного endpoint всегда основана на нескольких критериях, включая надежные криптографические доказательства идентичности. В частности, идентификаторы сетевого уровня, такие как IP-адрес и порт, сами по себе недостаточны, поскольку могут быть подделаны враждебной сетью.
* Все ожидаемые и разрешенные сетевые подключения явно указаны в белом списке. Любое соединение, явно не занесенное в белый список, отклоняется.
* Трафик от скомпрометированных workload (pod/VM/container) не должен иметь возможности обойти применение сетевых политик.
Во многих Zero Trust Networks также реализуется шифрование всего сетевого трафика. Это не является обязательным требованием (если речь идет не о передаче приватных данных), но для соответствия критериям Zero Trust Networks шифрование должно использоваться для каждого сетевого соединения.
Эти принципы влияют, к примеру, на следующее: если есть какая-либо сущность, имеющая метку, то по умолчанию весь трафик для неё разрешён. Но если будет создана хоть одна Policy, в которой будет фигурировать метка конкретной сущности, то для этой сущности будет запрещён весь трафик, кроме того, который был явно разрешён в только что созданной или уже имеющихся политиках.
Аналогично с HostEndpoint, как только он будет создан, весь трафик к хосту будет запрещен, кроме определенного перечня портов, который останется открытым. Причем, даже если вы создадите политики, которые явно запрещают доступ к этим портам, они останутся открытыми.
Для того, чтобы запретить доступ к этим портам нужно будет изменить конфигурацию Felix. Felix — это компонент Calico, демон, запущенный на всех машинах, которые обслуживает Calico.
#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4
Из чего состоит Calico
Кратко рассмотрим основные компоненты Calico. Как вы уже, наверное, поняли, Calico — это не один демон, который запущен на каждом хосте, где он управляет сетью, Calico состоит из нескольких элементов, так же как и Kubernetes. В целом он состоит из трех (иногда четырех) компонентов.
Felix
Основной компонент — это демон Felix, он отвечает за построение логики взаимодействия между сетевыми интерфейсами на хосте, и, как уже было сказано выше, за создание и функционирование endpoint на хостах или ВМ. В целом он выполняет следующие функции:
* Управление сетевыми интерфейсами, их создание, проверка их работоспособности и настройка пересылки трафика для управляемых интерфейсов.
* Программирование маршрутизации трафика через FIB (Forwarding Information Base) ядра Linux.
* Программирование ACL на уровне ядра Linux.
* Уведомления о статусе сети, Felix записывает данные о проблемах и ошибках в etcd.
Плагин для оркестратора
В зависимости от того, какой оркестратор вы используйте (например, OpenStack, Kubernetes) Calico предоставляет определенный плагин для наиболее эффективного взаимодействия с оркестратором. В случае Kubernetes — это CNI plugin.
etcd
Так же Calico использует etcd. etcd — это распределенное хранилище ключ-значение, которое выполняет функцию базы данных и служит шиной для коммуникации между компонентами Calico. В случае, если вы используйте Kubernetes, они с Calico будут использовать одно и то же etcd.
BGP клиент (BIRD)
Calico разворачивает клиент BGP на каждой ноде, на которой размещен Felix. Роль клиента BGP заключается в том, чтобы считывать настройки маршрутизации, которые Felix создает на уровне ядра, и распространять на другие ноды обслуживаемой сети, то есть рассылать на другие клиенты.
BGP повторитель для правил маршрутов (BIRD)
В случае, когда обслуживаемая Calico область достаточно велика при наличии только BGP клиента могут возникнуть проблемы, так как он требует чтобы каждый клиент мог соединиться с каждым клиентом, что может порождать слишком большое количество соединений(N ^ 2). В таких случаях для решения проблемы можно использовать повторитель маршрутов, то есть соответственно настроенный BIRD. Он занимается тем, что, если клиент BGP сообщает ему какую-либо информацию об изменении в маршрутах, он распространяет эту информацию для других BGP-клиентов.
Network Policy
NetworkPolicy, который предоставляет Calico, имеет более читаемый и развернутый синтаксис, чем тот, который предлагает сам Kubernetes.
Ресурс сетевой политики NetworkPolicy представляет собой упорядоченный набор правил, которые применяются к группе endpoints, соответствующих селектору меток (labels).
Простой пример из официальной документации:
*️⃣ 2/6: продолжение следует :)
#лонгрид
Кратко рассмотрим основные компоненты Calico. Как вы уже, наверное, поняли, Calico — это не один демон, который запущен на каждом хосте, где он управляет сетью, Calico состоит из нескольких элементов, так же как и Kubernetes. В целом он состоит из трех (иногда четырех) компонентов.
Felix
Основной компонент — это демон Felix, он отвечает за построение логики взаимодействия между сетевыми интерфейсами на хосте, и, как уже было сказано выше, за создание и функционирование endpoint на хостах или ВМ. В целом он выполняет следующие функции:
* Управление сетевыми интерфейсами, их создание, проверка их работоспособности и настройка пересылки трафика для управляемых интерфейсов.
* Программирование маршрутизации трафика через FIB (Forwarding Information Base) ядра Linux.
* Программирование ACL на уровне ядра Linux.
* Уведомления о статусе сети, Felix записывает данные о проблемах и ошибках в etcd.
Плагин для оркестратора
В зависимости от того, какой оркестратор вы используйте (например, OpenStack, Kubernetes) Calico предоставляет определенный плагин для наиболее эффективного взаимодействия с оркестратором. В случае Kubernetes — это CNI plugin.
etcd
Так же Calico использует etcd. etcd — это распределенное хранилище ключ-значение, которое выполняет функцию базы данных и служит шиной для коммуникации между компонентами Calico. В случае, если вы используйте Kubernetes, они с Calico будут использовать одно и то же etcd.
BGP клиент (BIRD)
Calico разворачивает клиент BGP на каждой ноде, на которой размещен Felix. Роль клиента BGP заключается в том, чтобы считывать настройки маршрутизации, которые Felix создает на уровне ядра, и распространять на другие ноды обслуживаемой сети, то есть рассылать на другие клиенты.
BGP повторитель для правил маршрутов (BIRD)
В случае, когда обслуживаемая Calico область достаточно велика при наличии только BGP клиента могут возникнуть проблемы, так как он требует чтобы каждый клиент мог соединиться с каждым клиентом, что может порождать слишком большое количество соединений(N ^ 2). В таких случаях для решения проблемы можно использовать повторитель маршрутов, то есть соответственно настроенный BIRD. Он занимается тем, что, если клиент BGP сообщает ему какую-либо информацию об изменении в маршрутах, он распространяет эту информацию для других BGP-клиентов.
Network Policy
NetworkPolicy, который предоставляет Calico, имеет более читаемый и развернутый синтаксис, чем тот, который предлагает сам Kubernetes.
Ресурс сетевой политики NetworkPolicy представляет собой упорядоченный набор правил, которые применяются к группе endpoints, соответствующих селектору меток (labels).
Простой пример из официальной документации:
apiVersion: projectcalico.org/v3Здесь мы разрешаем трафик с подов/контейнеров, у которых есть селектор role == 'frontend' на порт 6379 для доступа к БД.
kind: NetworkPolicy
metadata:
name: allow-tcp-6379
namespace: production
spec:
selector: role == 'database'
types:
- Ingress
- Egress
ingress:
- action: Allow
protocol: TCP
source:
selector: role == 'frontend'
destination:
ports:
- 6379
egress:
- action: Allow
#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4
Host Endpoint
У каждого хоста (ноды) есть несколько реальных или виртуальных сетевых интерфейсов, с которыми взаимодействует Calico. Чтобы получить возможность применять политики конкретно к определенному интерфейсу необходимо создать для него сущность HostEndpoint. Они могут иметь метки (labels) и эти метки аналогичны меткам для pod’ов, поэтому сетевые политики в равной степени могут применяться и к HostEndpoint, и к endpoints pod’ов.
Предположим, что нам нужно запретить весь входящий трафик из внешней сети, кроме портов 22, 80, 443 на уровне хоста и при этом разрешить весь трафик от других нод кластера. Для этого, для начала, создадим для каждой ноды свой HostEndpoint. К примеру:
Global Network Policy
Теперь, когда почти весь трафик к ноде заблокирован, создадим GlobalNetworkPolicy, которая разрешит весь трафик с других нод кластера, входящий трафик на порты 80/443 и весь исходящий трафик для этого HostEndpoint:
Однако, для GlobalNetworkPolicyесть несколько интересных параметров, которые предоставляют дополнительные возможности для настройки политик, а именно: preDNAT, doNotTrack и applyOnForward, рассматриваемые ниже.
*️⃣ 3/6: продолжение следует :)
#лонгрид
У каждого хоста (ноды) есть несколько реальных или виртуальных сетевых интерфейсов, с которыми взаимодействует Calico. Чтобы получить возможность применять политики конкретно к определенному интерфейсу необходимо создать для него сущность HostEndpoint. Они могут иметь метки (labels) и эти метки аналогичны меткам для pod’ов, поэтому сетевые политики в равной степени могут применяться и к HostEndpoint, и к endpoints pod’ов.
Предположим, что нам нужно запретить весь входящий трафик из внешней сети, кроме портов 22, 80, 443 на уровне хоста и при этом разрешить весь трафик от других нод кластера. Для этого, для начала, создадим для каждой ноды свой HostEndpoint. К примеру:
apiVersion: projectcalico.org/v3В данном случае мы добавили также раздел ports, где описали определенные порты и протоколы для взаимодействия с ними. Мы сделали это для того, чтобы обозначить их и дать им названия (http, https), которые в дальнейшем можно использовать в сетевых политиках. interfaceName — название внешнего интерфейса сервера которому соответствует IP-адрес expectedIPs. Указывать порт 22 нет необходимости, так как он разрешен на уровне конфигурации Felix.
kind: HostEndpoint
metadata:
name: node4-ens160
labels:
type: production
role: worker
node: 4
spec:
interfaceName: ens160
node: k8s-s4
expectedIPs:
- 10.213.0.11
ports:
- name: http
port: 80
protocol: TCP
- name: https
port: 443
protocol: TCP
Global Network Policy
Теперь, когда почти весь трафик к ноде заблокирован, создадим GlobalNetworkPolicy, которая разрешит весь трафик с других нод кластера, входящий трафик на порты 80/443 и весь исходящий трафик для этого HostEndpoint:
kind: GlobalNetworkPolicyВ целом, все параметры GlobalNetworkPolicy аналогичны NetworkPolicy и интуитивно понятны. order — очередность применения политики, чем она меньше, тем раньше будет применено правило.
apiVersion: projectcalico.org/v3
metadata:
name: allow-s4
spec:
selector: role==worker
order: 10
applyOnForward: true
types:
- Egress
- Ingress
ingress:
- action: Allow
protocol: TCP
source:
nets:
- 10.213.0.0/24
- action: Allow
protocol: TCP
destination:
ports: [http,https]
- action: Allow
protocol: ICMP
egress:
- action: Allow
Однако, для GlobalNetworkPolicyесть несколько интересных параметров, которые предоставляют дополнительные возможности для настройки политик, а именно: preDNAT, doNotTrack и applyOnForward, рассматриваемые ниже.
#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
Опции applyOnForward, preDNAT и doNotTrack
Чтобы понять в каких случаях вам следует применять данные параметры, мы кратко рассмотрим как изменяется обработка трафика, если их включить.
applyOnForward
Параметр applyOnForward отвечает за то, применяется ли данная политика к трафику, который проходит по цепочке iptabels FORWARD. Например, трафик, направленный к pod’у. Так как pod является внешним ресурсом с точки зрения сети хоста (не считается локальным процессом), следовательно, трафик до него проходит по маршруту цепочек PREROUTING – FORWARD – POSTROUTING.
Если applyOnForward имеет значение false, GlobalNetworkPolicy к трафику для локальных workload (контейнер/pod/ВМ, которые имеют свои виртуальные интерфейсы) не применится. Она будет применяться только к трафику для локальных процессов и к трафику, исходящему от них. Пример приведу далее.
Если applyOnForward имеет значение true, GlobalNetworkPolicy также применяется к перенаправленному (forwarded) трафику, такому как:
* Трафик, который поступает через HostEndpoint и перенаправляется в локальные workload.
* Трафик из локальных workload, который перенаправляется черезHostEndpoint.
* Трафик, который поступает черезHostEndpointи пересылается на другой HostEndpoint.
По умолчанию applyOnForward имеет значение false. Для политик, использующих опции doNotTrack и preDNAT, для свойства applyOnForward должно быть установлено значение true, поскольку эти политики применяются ко всему трафику, проходящему через FORWARD.
По умолчанию пересылаемый трафик (FORWARD)разрешен, если к пункту его назначения или направлению не применены какие-либо политики. Иначе говоря: если у вас настроен HostEndpoint, но нет политик с параметром applyOnForward: true для этого HostEndpoint или направления трафика, то пересылаемый трафик будет разрешен. Если существуют политики applyOnForward:true, в которых упоминаются селекторы HostEndpoint или это направление, но никакие правила в политиках не разрешают трафик, трафик отклоняется.
Пример: вы создаете GlobalNetworkPolicy, разрешающую исходящий трафик по протоколу ICMP для данного HostEndpoint с applyOnForward:false. В этом случае, если вы попытаетесь сделать ping 8.8.8.8 из pod’а на данном хосте, вам это удастся, так как forwarded трафик по умолчанию разрешен, хотя GNP применилась только к локальному трафику. Но. Если вы создадите ещё одну политику для этого HostEndpoint, но уже с applyOnForward:true, например, вы разрешаете весь TCP-трафик, то ping 8.8.8.8 изнутри пода не пройдет. Потому что уже существует политика с applyOnForward:true для этого типа трафика (этого HostEndpoint) и этот тип трафика явно не разрешен.
preDNAT
Данная опция отвечает за то, применяется ли политика до прохождения через DNAT (Destination Network Address Translation) или нет.
Это может пригодится, например, если вы используйте NodePorts и хотите контролировать трафик, который приходит извне на эти порты. После того, как трафик извне приходит на NodePort его распределение по факту происходит при помощи DNAT (kube-proxy). Следовательно, для того, чтобы применить политику к трафику, приходящему на NodePort, preDNAT должен быть установлен в true.
Ключевые особенности для таких политик следующие:
* Политики с опцией preDNAT могут иметь правила только для входящего трафика, но не исходящего.
* Политика применяется для всего трафика, проходящего через host endpoint, не только к процессам на хосте, но и к локальным workload (pod/VM/container).
* По умолчанию весь preDNAT трафик разрешен. То есть если существует HostEndpoint, но для него нет preDNAT политик, для него не действует правило “отбрасывать все по умолчанию”.
*️⃣ 4/6: продолжение следует :)
#лонгрид
Чтобы понять в каких случаях вам следует применять данные параметры, мы кратко рассмотрим как изменяется обработка трафика, если их включить.
applyOnForward
Параметр applyOnForward отвечает за то, применяется ли данная политика к трафику, который проходит по цепочке iptabels FORWARD. Например, трафик, направленный к pod’у. Так как pod является внешним ресурсом с точки зрения сети хоста (не считается локальным процессом), следовательно, трафик до него проходит по маршруту цепочек PREROUTING – FORWARD – POSTROUTING.
Если applyOnForward имеет значение false, GlobalNetworkPolicy к трафику для локальных workload (контейнер/pod/ВМ, которые имеют свои виртуальные интерфейсы) не применится. Она будет применяться только к трафику для локальных процессов и к трафику, исходящему от них. Пример приведу далее.
Если applyOnForward имеет значение true, GlobalNetworkPolicy также применяется к перенаправленному (forwarded) трафику, такому как:
* Трафик, который поступает через HostEndpoint и перенаправляется в локальные workload.
* Трафик из локальных workload, который перенаправляется черезHostEndpoint.
* Трафик, который поступает черезHostEndpointи пересылается на другой HostEndpoint.
По умолчанию applyOnForward имеет значение false. Для политик, использующих опции doNotTrack и preDNAT, для свойства applyOnForward должно быть установлено значение true, поскольку эти политики применяются ко всему трафику, проходящему через FORWARD.
По умолчанию пересылаемый трафик (FORWARD)разрешен, если к пункту его назначения или направлению не применены какие-либо политики. Иначе говоря: если у вас настроен HostEndpoint, но нет политик с параметром applyOnForward: true для этого HostEndpoint или направления трафика, то пересылаемый трафик будет разрешен. Если существуют политики applyOnForward:true, в которых упоминаются селекторы HostEndpoint или это направление, но никакие правила в политиках не разрешают трафик, трафик отклоняется.
Пример: вы создаете GlobalNetworkPolicy, разрешающую исходящий трафик по протоколу ICMP для данного HostEndpoint с applyOnForward:false. В этом случае, если вы попытаетесь сделать ping 8.8.8.8 из pod’а на данном хосте, вам это удастся, так как forwarded трафик по умолчанию разрешен, хотя GNP применилась только к локальному трафику. Но. Если вы создадите ещё одну политику для этого HostEndpoint, но уже с applyOnForward:true, например, вы разрешаете весь TCP-трафик, то ping 8.8.8.8 изнутри пода не пройдет. Потому что уже существует политика с applyOnForward:true для этого типа трафика (этого HostEndpoint) и этот тип трафика явно не разрешен.
preDNAT
Данная опция отвечает за то, применяется ли политика до прохождения через DNAT (Destination Network Address Translation) или нет.
Это может пригодится, например, если вы используйте NodePorts и хотите контролировать трафик, который приходит извне на эти порты. После того, как трафик извне приходит на NodePort его распределение по факту происходит при помощи DNAT (kube-proxy). Следовательно, для того, чтобы применить политику к трафику, приходящему на NodePort, preDNAT должен быть установлен в true.
Ключевые особенности для таких политик следующие:
* Политики с опцией preDNAT могут иметь правила только для входящего трафика, но не исходящего.
* Политика применяется для всего трафика, проходящего через host endpoint, не только к процессам на хосте, но и к локальным workload (pod/VM/container).
* По умолчанию весь preDNAT трафик разрешен. То есть если существует HostEndpoint, но для него нет preDNAT политик, для него не действует правило “отбрасывать все по умолчанию”.
#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6
doNotTrack
Опция doNotTrack позволяет отключить отслеживание (conntrack) трафика, который попадает под данную политику, причем именно для локальных процессов хоста (не pod / VM / container).
conntrack — это опция ядра из сетевого стека Linux, которая помогает ему отслеживать сетевые потоки, чтобы была возможность обрабатывать пакеты из одного потока одинаково, на основании правила обработки выбранного для первого пакета из потока.
Но эта опция также накладывает ограничение на количество соединений, по достижению которого соединения отклоняются. Хотя в обычных условиях практически нереально достигнуть его исчерпания, есть несколько сценариев при которых возникнет необходимость в отключении этой опции:
* Если вам необходимо одновременно обрабатывать активных соединений больше, чем установленное значение в таблице conntrack (больше 128k по умолчанию).
* Если вам необходимо обрабатывать большое количество коротких соединений в секунду. Так как даже после завершения соединения conntrack продолжает отслеживать соединение в течении некоторого времени (по умолчанию 120с). Например, если в таблице conntrack установлено значение на 128к доступных подключений, и вы пытаетесь обрабатывать 1100 соединений в секунду, лимит будет исчерпан, даже если эти подключения очень кратковременные (128k / 120s = 1092 connections/s ).
Такие цифры вам могут пригодиться, например, если Вы используйте memcached, который функционирует непосредственно на хосте и при этом принимает большое количество частых и кратковременных соединений. Если вы используете Calico для защиты хоста этого сервера, вы можете избежать этой проблемы, определив политику, которая разрешает доступ к портам сервера и помеченную как doNotTrack.
Так как для активации doNotTrack политика должна примениться в самом начале цепочек OUTPUT и PREROUTING, она действует раньше других (тех, для которых doNotTrack:false), вне зависимости от её order. То есть одна политика без doNotTrack может иметьorder:1, а другая с doNotTrack может иметь order:1000, но раньше подействует политика с doNotTrack. Порядок оrder соблюдается только между политиками данного типа.
*️⃣ 5/6: продолжение следует :)
#лонгрид
Опция doNotTrack позволяет отключить отслеживание (conntrack) трафика, который попадает под данную политику, причем именно для локальных процессов хоста (не pod / VM / container).
conntrack — это опция ядра из сетевого стека Linux, которая помогает ему отслеживать сетевые потоки, чтобы была возможность обрабатывать пакеты из одного потока одинаково, на основании правила обработки выбранного для первого пакета из потока.
Но эта опция также накладывает ограничение на количество соединений, по достижению которого соединения отклоняются. Хотя в обычных условиях практически нереально достигнуть его исчерпания, есть несколько сценариев при которых возникнет необходимость в отключении этой опции:
* Если вам необходимо одновременно обрабатывать активных соединений больше, чем установленное значение в таблице conntrack (больше 128k по умолчанию).
* Если вам необходимо обрабатывать большое количество коротких соединений в секунду. Так как даже после завершения соединения conntrack продолжает отслеживать соединение в течении некоторого времени (по умолчанию 120с). Например, если в таблице conntrack установлено значение на 128к доступных подключений, и вы пытаетесь обрабатывать 1100 соединений в секунду, лимит будет исчерпан, даже если эти подключения очень кратковременные (128k / 120s = 1092 connections/s ).
Такие цифры вам могут пригодиться, например, если Вы используйте memcached, который функционирует непосредственно на хосте и при этом принимает большое количество частых и кратковременных соединений. Если вы используете Calico для защиты хоста этого сервера, вы можете избежать этой проблемы, определив политику, которая разрешает доступ к портам сервера и помеченную как doNotTrack.
Так как для активации doNotTrack политика должна примениться в самом начале цепочек OUTPUT и PREROUTING, она действует раньше других (тех, для которых doNotTrack:false), вне зависимости от её order. То есть одна политика без doNotTrack может иметьorder:1, а другая с doNotTrack может иметь order:1000, но раньше подействует политика с doNotTrack. Порядок оrder соблюдается только между политиками данного типа.
#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
6/6: Заключение 🎉
Таким образом, мы с вами получили представление о том, как реализовать при помощи сетевых политик Calico нужные вам разграничения трафика для Kubernetes-кластера и какие опции политик при этом использовать.
Полезные материалы по теме:
⚙️ Пояснение концепции от Calico Zero Trust Networking
⚙️ Список failsafe rules Calico
⚙️ Примеры работы с политиками Calico с примерами
⚙️ Понимание применения работы сетевых политик Calico
⚙️ Oб отключении conntrack
Всем DevOps! 🖖
#лонгрид
Таким образом, мы с вами получили представление о том, как реализовать при помощи сетевых политик Calico нужные вам разграничения трафика для Kubernetes-кластера и какие опции политик при этом использовать.
Полезные материалы по теме:
⚙️ Пояснение концепции от Calico Zero Trust Networking
⚙️ Список failsafe rules Calico
⚙️ Примеры работы с политиками Calico с примерами
⚙️ Понимание применения работы сетевых политик Calico
⚙️ Oб отключении conntrack
Всем DevOps! 🖖
#лонгрид
🔥10👍3🎉2
Собрали вчерашние посты в одну подборку — удобнее сохранять :)
Управление трафиком в Kubernetes-кластере с Calico
⚙️ Часть 1: что такое Calico, в чем его преимущества, что такое Zero Trust Networking: какие принципы, на что влияет
⚙️ Часть 2: из чего состоит Calico, Felix, плагин для оркестратора, etcd, BGP клиент (BIRD), BGP повторитель для правил маршрутов (BIRD), Network Policy
⚙️ Часть 3: Host Endpoint, Global Network Policy
⚙️ Часть 4: опции applyOnForward, preDNAT
⚙️ Часть 5: doNotTrack
⚙️ Часть 6: заключение и полезные материалы
#лонгрид #open_source
Управление трафиком в Kubernetes-кластере с Calico
⚙️ Часть 1: что такое Calico, в чем его преимущества, что такое Zero Trust Networking: какие принципы, на что влияет
⚙️ Часть 2: из чего состоит Calico, Felix, плагин для оркестратора, etcd, BGP клиент (BIRD), BGP повторитель для правил маршрутов (BIRD), Network Policy
⚙️ Часть 3: Host Endpoint, Global Network Policy
⚙️ Часть 4: опции applyOnForward, preDNAT
⚙️ Часть 5: doNotTrack
⚙️ Часть 6: заключение и полезные материалы
#лонгрид #open_source
👍17🔥3👨💻1👾1
У вас есть Agile и нет DevOps? У вас нет Agile 🤷♂️
Многие компании, разрабатывающие свои digital-продукты, уверены, что работают по Agile. Станислав Тибекин, CVO компании Nixys, рассказал, почему сегодня невозможно существование Agile без DevOps.
➡️ Приятного чтения!
#статья_Nixys
Многие компании, разрабатывающие свои digital-продукты, уверены, что работают по Agile. Станислав Тибекин, CVO компании Nixys, рассказал, почему сегодня невозможно существование Agile без DevOps.
➡️ Приятного чтения!
#статья_Nixys
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5
Новый выпуск о событиях в облачной индустрии — Monthly Cloud News June
Developer Advocate Yandex Cloud Антон Черноусов и архитектор Yandex Cloud Павел Селиванов вместе с приглашенным экспертом обсудят:
• Kuberconf'23;
• исследование состояния DevOps 2023;
• тренды в развитии Kubernetes®;
• Argo CD;
• общие тренды внедрения практик DevOps.
Смотрите выпуск на YouTube-канале Yandex Cloud.
Developer Advocate Yandex Cloud Антон Черноусов и архитектор Yandex Cloud Павел Селиванов вместе с приглашенным экспертом обсудят:
• Kuberconf'23;
• исследование состояния DevOps 2023;
• тренды в развитии Kubernetes®;
• Argo CD;
• общие тренды внедрения практик DevOps.
Смотрите выпуск на YouTube-канале Yandex Cloud.
👍4🔥2
Сегодня последняя пятница июля, а значит — С ДНЕМ СИСТЕМНОГО АДМИНИСТРАТОРА ВСЕХ ПРИЧАСТНЫХ! 🥳
В честь праздника мы сделали подборку интересных статей с Хабра про системное администрирование!
Для начинающих:
▪️«Как стать системным администратором — пособие для начинающих» (часть 1, часть 2) — статьи для начинающих системных администраторов, помощников системных администраторов и т.д. Опытным администраторам будет если и интересно, то бесполезно.
▪️Статья «Системное администрирование. Начало» — мануал по организационным вопросам, связанным с системным администрированием. С чего начать, если вы только устроились на работу системным администратором.
Развлекательное:
▪️Статья «Ping из Антарктиды. Пост настоящего админа: с котиками и пингвинами» — автор работает обычным сисадмином в необычном месте: на антарктической станции. Рассказывает, чем такая работа отличается от обычной работы сисадмина, что обычно делают, как держат связь со всем остальным миром.
▪️Статья «Я ненавижу компьютеры: исповедь сисадмина» — Нет, серьезно, я их ненавижу. Они — это ломающиеся, непонятные штуки — мешанина глюков, железа и ограничивающего свободу ПО.
▪️Статья «Маленький ноутбук для системного администратора» — автор задумался о том, каким бы получился ноутбук, если бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов.
▪️Статья «Как самому за один вечер собрать минимальную ОС Linux из исходного кода» — как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере. Эта ОС не позволит использовать все возможности вашего компьютера, но будет иметь главное — интерфейс командной строки.
Полезное:
▪️Туториал «Как отправлять и обрабатывать графические уведомления на bash» — как рисовать красивые графические уведомления и взаимодействовать с ними из скриптов bash. Демонстрация будет осуществляться на вполне реальной задаче — необходимо уведомить пользователя о скором истечении пароля.
Всем отличной пятницы и крутых выходных 🔥
#статьи #Хабр
В честь праздника мы сделали подборку интересных статей с Хабра про системное администрирование!
Для начинающих:
▪️«Как стать системным администратором — пособие для начинающих» (часть 1, часть 2) — статьи для начинающих системных администраторов, помощников системных администраторов и т.д. Опытным администраторам будет если и интересно, то бесполезно.
▪️Статья «Системное администрирование. Начало» — мануал по организационным вопросам, связанным с системным администрированием. С чего начать, если вы только устроились на работу системным администратором.
Развлекательное:
▪️Статья «Ping из Антарктиды. Пост настоящего админа: с котиками и пингвинами» — автор работает обычным сисадмином в необычном месте: на антарктической станции. Рассказывает, чем такая работа отличается от обычной работы сисадмина, что обычно делают, как держат связь со всем остальным миром.
▪️Статья «Я ненавижу компьютеры: исповедь сисадмина» — Нет, серьезно, я их ненавижу. Они — это ломающиеся, непонятные штуки — мешанина глюков, железа и ограничивающего свободу ПО.
▪️Статья «Маленький ноутбук для системного администратора» — автор задумался о том, каким бы получился ноутбук, если бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов.
▪️Статья «Как самому за один вечер собрать минимальную ОС Linux из исходного кода» — как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере. Эта ОС не позволит использовать все возможности вашего компьютера, но будет иметь главное — интерфейс командной строки.
Полезное:
▪️Туториал «Как отправлять и обрабатывать графические уведомления на bash» — как рисовать красивые графические уведомления и взаимодействовать с ними из скриптов bash. Демонстрация будет осуществляться на вполне реальной задаче — необходимо уведомить пользователя о скором истечении пароля.
Всем отличной пятницы и крутых выходных 🔥
#статьи #Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🎉8❤2👍2
Всем DevOps! 🖖
После публикации серии постов «Управление трафиком в Kubernetes-кластере с Calico» просили рассказать и про Cilium — Open Source-проект, который обеспечивает сетевое взаимодействие, безопасность и доступность для облачных сред, таких как Kubernetes и другие оркестраторы.
Но неожиданно (и очень кстати) вышел эпизод подкаста linkmeup про Cilium!
В нем говорится:
- Зачем и почему Cilium
- Про первые шаги
- Как работать с Cilium без kube-proxy и минимальными требованиями к ядру
- Особенности маршрутизации и балансировки
- Неочевидные возможности и планы на светлое будущее
Рекомендуем!
Но в связи с этим вопрос: нужна ли серия постов про Cilium или достаточно этого подкаста? Опрос ниже ⬇️
Другие подкасты можно найти по тегу #подкаст
После публикации серии постов «Управление трафиком в Kubernetes-кластере с Calico» просили рассказать и про Cilium — Open Source-проект, который обеспечивает сетевое взаимодействие, безопасность и доступность для облачных сред, таких как Kubernetes и другие оркестраторы.
Но неожиданно (и очень кстати) вышел эпизод подкаста linkmeup про Cilium!
В нем говорится:
- Зачем и почему Cilium
- Про первые шаги
- Как работать с Cilium без kube-proxy и минимальными требованиями к ядру
- Особенности маршрутизации и балансировки
- Неочевидные возможности и планы на светлое будущее
Рекомендуем!
Но в связи с этим вопрос: нужна ли серия постов про Cilium или достаточно этого подкаста? Опрос ниже ⬇️
Другие подкасты можно найти по тегу #подкаст
👍7🔥6
Нужна серия постов про Cilium?
Anonymous Poll
79%
Да, нужна, буду читать
4%
Нет, не нужна, хватит и подкаста
17%
Как хотите: будут посты - буду читать, не будет - не расстроюсь
Forwarded from CORTEL
Несмотря на масштабы, гиганты рынка, такие как Facebook и Google, выпускают по несколько релизов в день
Чтобы достичь таких результатов без потери качества, компании обращаются к двухскоростному ИТ - подходу от Gartner.
Концепция предполагает одновременное управления двумя режимами работы:
– Traditional IT ориентирован на снижение рисков и безопасность.
– Agile IT — на гибкость.
Подробнее о том:
- рассказали в новом материале
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤩4❤1
Всем DevOps! 🖖
Снова скопилось некоторое количество классных статей — с радостью делимся подборкой!
⚙️ «All right then, keep your secrets in Git with SOPS». Из этой статьи вы узнаете, как объединить Helm, Helmfile и SOPS для безопасного хранения ваших секретов в Git.
⚙️ Серия из трех частей про Platform Engineering. В первой части говорится почему вообще Platform Engineering приобрел такое большое значение. Во второй части — что такое этот ваш Platform Engineering и какие цели могут быть у команды платформенных инженеров. В третьей — когда нужна команда платформы и как создать IDP (внутреннюю платформу разработчиков).
⚙️ В Terraform 1.5 появился config-driven import (новость можно найти здесь). Мы уже рекомендовали статью про это новшество, но все-таки порекомендуем еще одну: «Automating alert creation with Terraform config-driven import in Google Cloud». В примере используется Google Cloud, но теория (со схемами :) будет полезна всем.
⚙️ Статья про tefsec — open source инструмент статического анализа, который сканирует код Terraform, выявляет и выделяет пробелы в аспекте безопасности с точки зрения инфраструктуры и IaC. Подробно рассказано про всю работу: от установки до использования.
P.S. Для чтения большей части статей требуется VPN, а для некоторых (на Medium) — может быть полезно расширение Bypass Paywalls 😎
#статьи
Снова скопилось некоторое количество классных статей — с радостью делимся подборкой!
⚙️ «All right then, keep your secrets in Git with SOPS». Из этой статьи вы узнаете, как объединить Helm, Helmfile и SOPS для безопасного хранения ваших секретов в Git.
⚙️ Серия из трех частей про Platform Engineering. В первой части говорится почему вообще Platform Engineering приобрел такое большое значение. Во второй части — что такое этот ваш Platform Engineering и какие цели могут быть у команды платформенных инженеров. В третьей — когда нужна команда платформы и как создать IDP (внутреннюю платформу разработчиков).
⚙️ В Terraform 1.5 появился config-driven import (новость можно найти здесь). Мы уже рекомендовали статью про это новшество, но все-таки порекомендуем еще одну: «Automating alert creation with Terraform config-driven import in Google Cloud». В примере используется Google Cloud, но теория (со схемами :) будет полезна всем.
⚙️ Статья про tefsec — open source инструмент статического анализа, который сканирует код Terraform, выявляет и выделяет пробелы в аспекте безопасности с точки зрения инфраструктуры и IaC. Подробно рассказано про всю работу: от установки до использования.
P.S. Для чтения большей части статей требуется VPN, а для некоторых (на Medium) — может быть полезно расширение Bypass Paywalls 😎
#статьи
🔥9👍3
Как DevOps помог исправить 30 точек операционной неэффективности в промышленности
Внедрение DevOps в промышленности началось не вчера, активное применение практик тоже, но говорят об этом по-прежнему немного. Компания Nixys рассказала, как DevOps помог улучшить работу горнодобывающей компании.
➡️ Приятного чтения!
#статья_Nixys
Внедрение DevOps в промышленности началось не вчера, активное применение практик тоже, но говорят об этом по-прежнему немного. Компания Nixys рассказала, как DevOps помог улучшить работу горнодобывающей компании.
➡️ Приятного чтения!
#статья_Nixys
🔥11👍3😱1
Docker подробно рассказали про атрибут
🅰️ Командная строка docker поддерживает множество флагов для точной настройки контейнера и трудно запомнить их все при репликации среды. Сделать это еще сложнее, когда приложение представляет собой не отдельный контейнер, а комбинацию многих контейнеров с различными отношениями зависимостей. Именно поэтому Docker Compose быстро стал популярным инструментом
Эта проблема не нова и обсуждалась в 2014 году, когда Docker Compose был совсем новым проектом. Теперь мы внедрили возможность “compose compose files” — не прошло и 10 лет!🅱️
📌 Спецификация Compose, раздел про
include — он уже сейчас доступен в Docker Compose v2.20.0 и появится в грядущем релизе Docker Desktop 4.22.
Тем не менее, проблема сохраняется для больших приложений, использующих десятки, а может быть, и сотни контейнеров, с распределением прав собственности между несколькими командами. При использовании монорепозиториев команды часто имеют свой собственный “локальный” Docker Compose file для запуска подмножества приложения, но тогда им нужно полагаться на то, что другие команды предоставят справочный файл Compose, который определяет ожидаемый способ запуска их собственного подмножества.Эта проблема не нова и обсуждалась в 2014 году, когда Docker Compose был совсем новым проектом. Теперь мы внедрили возможность “compose compose files” — не прошло и 10 лет!
include
#новостиPlease open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
💥 Коллеги из KazDevOps разыгрывают бесплатную консультацию по DevOps-вопросам с топами компании Core 24/7.
👉 3 победителя смогут задать вопросы техлиду и узнать, почему то или иное решение не работает, как настроить процесс эффективнее и от чего стоит отказаться.
Условия конкурса:
🤝 Делитесь с коллегами и ожидайте звонка
#devops #devsecops #cloud #kubernetes #docker #terraform #giltab
@DevOpsKaz
👉 3 победителя смогут задать вопросы техлиду и узнать, почему то или иное решение не работает, как настроить процесс эффективнее и от чего стоит отказаться.
Условия конкурса:
• Быть подписчиком KazDevOps• Рассказать о своей ситуации вкратце под аналогичным постом в канале KazDevOps — 1-2 предложения о проблеме, задаче или амбициях, связанных с DevOps• Дождаться розыгрыша — победителей объявят 10 августа: проверят условия выше и рандомом определят 3 человек, которые представляют свой бизнес или работают в компании🤝 Делитесь с коллегами и ожидайте звонка
#devops #devsecops #cloud #kubernetes #docker #terraform #giltab
@DevOpsKaz
👍4🔥3
Всем DevOps! 🖖
Хочется порекомендовать отличный блог про инфраструктуру, платформы, Linux, Open Source, DevOps, Kubernetes, контейнеризацию и облака. А еще автор пишет про Python, Go и shell.
Начать знакомство можно, например, со статьи «Kubernetes Taints, Tolerations, and Understanding the PreferNoSchedule Effect» — в ней говорится про эффект PreferNoSchedule в Kubernetes и его отличия от NoExecute и NoSchedule. Есть классная схема про принцип работы PreferNoSchedule.
Еще автор иногда пишет на смежные темы, например, заметка «12 Tips for Effective Technical Blogging». Вдруг вы ведете блог или просто пишете на Хабр? Будет полезно😎
P.S. Кстати про технические блоги и Хабр! Может, здесь есть авторы? Расскажите о своих блогах в комментариях (ТГ, Хабр, что угодно) 🙃 Почему решили вести блог? А если вы не автор, можете рассказать — что вообще думаете о технических блогах? Почему не хотите писать сами?
Ну и, конечно, делитесь — кого читаете?
#блог
Хочется порекомендовать отличный блог про инфраструктуру, платформы, Linux, Open Source, DevOps, Kubernetes, контейнеризацию и облака. А еще автор пишет про Python, Go и shell.
Начать знакомство можно, например, со статьи «Kubernetes Taints, Tolerations, and Understanding the PreferNoSchedule Effect» — в ней говорится про эффект PreferNoSchedule в Kubernetes и его отличия от NoExecute и NoSchedule. Есть классная схема про принцип работы PreferNoSchedule.
Еще автор иногда пишет на смежные темы, например, заметка «12 Tips for Effective Technical Blogging». Вдруг вы ведете блог или просто пишете на Хабр? Будет полезно
P.S. Кстати про технические блоги и Хабр! Может, здесь есть авторы? Расскажите о своих блогах в комментариях (ТГ, Хабр, что угодно) 🙃 Почему решили вести блог? А если вы не автор, можете рассказать — что вообще думаете о технических блогах? Почему не хотите писать сами?
Ну и, конечно, делитесь — кого читаете?
#блог
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥3
Открытое исследование «Защита персональных данных 2023» 🔒
За 2022-2023 год ужесточились условия и регулирование по 152-ФЗ.
На форумах мы слышим как всё меняется, но лозунги со сцен конференций и обновление ФЗ — это одна сторона медали, а реальная практика и опыт сообщества — совсем другая.
Компания Cortel проводит открытое исследование «Защита персональных данных 2023» чтобы выяснить:
• Как эксперты на местах смотрят на ситуацию;
• Как в действительности обстоят дела с ПДн и их защитой на практике.
Пожалуйста поделитесь своим мнением и пройдите короткий опрос на 3 минуты по этой ссылке, вы очень поможете.
🛡 Результатами исследования поделятся осенью в этом канале.
За 2022-2023 год ужесточились условия и регулирование по 152-ФЗ.
На форумах мы слышим как всё меняется, но лозунги со сцен конференций и обновление ФЗ — это одна сторона медали, а реальная практика и опыт сообщества — совсем другая.
Компания Cortel проводит открытое исследование «Защита персональных данных 2023» чтобы выяснить:
• Как эксперты на местах смотрят на ситуацию;
• Как в действительности обстоят дела с ПДн и их защитой на практике.
Пожалуйста поделитесь своим мнением и пройдите короткий опрос на 3 минуты по этой ссылке, вы очень поможете.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6