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. Использует kubeconfig от kubelet (у него есть права только на поды своей ноды) 2. Запрашивает токен с указанием реально существующего объекта в кубере, который к тому же привязан к конкренной ноде: kubectl create token azalio-meta-sa \ --namespace azalio-meta \ --bound-object-kind Pod \ --bound-object-name test-pod \ --bound-
GKE metadata-proxy: элегантный способ получения JWT без дыр в RBAC
7 июля 20257 июл 2025
1 мин