Найти в Дзене
GKE metadata-proxy: элегантный способ получения JWT без дыр в RBAC
GKE metadata-proxy: элегантный способ получения JWT без дыр в RBAC Недавно беседовали с коллегой про Workload Identity Federation в GKE и выяснилось, что не все знают, как metadata-proxy получает JWT токен от имени пода. А вы знаете, как это работает под капотом? Что такое WIF? Простая идея: токен пода обменивается на cloud token для доступа к облачным API. Никаких статических ключей! Два подхода к безопасности: ❌ Небезопасный подход (как в эмуляторе): rules: - apiGroups: [""] resources: [serviceaccounts/token] verbs: [create] Критическая уязвимость! Такая роль позволяет получить JWT токен от ЛЮБОГО ServiceAccount в кластере! ✅ Элегантное решение GKE: 1...
8 месяцев назад
😠 Агент-лимитер “слепнет” после появления новых PV? Раз и навсегда разбираемся с `mountPropagation` в Kubernetes
😠 Агент-лимитер “слепнет” после появления новых PV? Раз и навсегда разбираемся с `mountPropagation` в Kubernetes! Недавно писал I/O-лимитер для LVM-томов: агент читает маунты подов, чтобы вычислить MAJOR:MINOR для добавления в io.max, и всё ок… пока на узел не приедет новый Pod. Его маунта агент уже не видит. Перезапуск помогает, но это же костыль! Почему так происходит * Каждый контейнер стартует в своём *privаte* mount-namespace -> изменения на хосте туда не пролетают. * В Kubernetes это равно mountPropagation: None. Как починить? Параметр mountPropagation у volumeMounts имеет 3 режима: * None - полная изоляция (`rprivate`), дефолт...
11 месяцев назад
🔒 Отключаем анонимный доступ к kube-apiserver, но оставляем health checks
🔒 Отключаем анонимный доступ к kube-apiserver, но оставляем health checks! Привет! Недавно ко мне пришел коллега-безопасник (Дима привет!) с интересным вопросом: как полностью отключить анонимный доступ к API-серверу Kubernetes, но оставить рабочими проверки /livez, /readyz и /healthz? 🤔 Сходу не ответил, полез копаться в исходниках и KEPах. Проблема в том, что по умолчанию (`--anonymous-auth=true`) любой может дернуть эндпоинты health-чеков и не только health-чеков: curl -k https://<API_SERVER_IP>:6443/livez # Output: ok Это удобно, но создает потенциальный вектор атаки, если RBAC настроен не идеально или найдется уязвимость...
11 месяцев назад
Говорят, в этом канале собрались очень умные люди
Говорят, в этом канале собрались очень умные люди. Поэтому поступило предложение рассказать про митап, который устраивает Магнит OMNI и я не нашел поводов отказаться. — 23 апреля встречаемся на митапе в Магнит OMNI! Ивент, на котором инженеры, администраторы и разработчиками обсудят, как сделать инфраструктуру устойчивой к сбоям, как развивать Observability в условиях распределенной инфраструктуры и какие внутренние протоколы помогают, когда все идет совсем не по плану...
11 месяцев назад
#cilium #l2 #kubernetes Разбирался я тут с опциями цилиума и наткнулся на опцию --agent-liveness-update-interval и что-то из описания опции в документации яснее не стало. Полез разбираться и внезапно почувствовал себя мужчиной из ролика, который решил поменять лампочку (скину в комменты). Встречайте L2 анонсы в Cilium для доступа к сервисам LoadBalancer в bare-metal Kubernetes. Все как вы любите, код на go, код на C, bpf-maps, bpftrace и прочие потроха цилиума и немножко линукс ядра. --- Понравилось? Поставь лайк!
1 год назад
#AI Я часто слышу, что генеративные ИИ скоро заменят разработчиков... Поэтому у меня тут возникла идея попробовать разобраться можно ли написать проект полностью с помощью генеративного ИИ. Решил написать мем-бота, который использует YandexGPT для улучшения или придумывания промпта и для генерации картинок взял YandexART и Kandinsky. И оно работает! Вот, положила: @meme_ydx_bot Для генерации API внешних сервисов я копировал страницу с сайта в чат и говорил: "Вот тебе дока, напиши код". Ну и для всего остального я только выдавал текстовые команды. Итого я написал всего около 1% кода. Все остальное сделал Deepseek v3 с помощью плагинов Continue.dev и Aider.chat. Continue.dev - это плагин для VS Code. А Aider.chat - клевый инструмент для работы в терминале. Бот одновременно запускает генерацию в обоих сервисах и возвращает первый успешный результат. Из тестов выяснилось, что YandexART работает побыстрее, поэтому он почти всегда отвечает первым. Мемы получаются так себе, правда... 🙂 Надо будет дообучить на каком-нибудь корпусе мемов ИИшку. P.S. Кстати, пробовал Sonnet 3.5 - он хорош, но очень дорогой по сравнению с Deepseek. P.S. ЯндексАрт более щепетильно относится к промпту и, например, не будет генерировать картику по запросу "Гроб, кладбище, пидор". P.S. Более крутые товарищи уже написали сервис @AIMemeArenaBot. --- Если есть мысли как улучшить бота или промпт - напишите, пожалуйста :)
1 год назад
#это_база #kubelet #kubernetes Дело было вечером, делать было нечего, да много дел было! Писал тут лекцию по kubelet и подумал, а почему бы не рассказать про то, как работает вхождение ноды кубера по токенам. Так и получилась небольшая статейка. --- Понравилось? Поставь лайк! Они улучшают мне настроение. Есть что добавить - велком в комменты!
1 год назад