Еще немного про секреты (сервисов)
Еще немного про секреты (сервисов)У меня сейчас CI/CD такой, что код своих микросервисов я комичу в гитхаб, в гитхабе на actions собирается docker image и отправляется в мой docker hub. На моем kubernetes, поднят ArgoCD (такой опенсорс тул для GitOps*), в него добавлены репозитории микросервисов, он видит что код изменился, и скачивает новый docker image что поднять его Pod в кубернетесеКак можете видеть взаимодействует много сторонних сервисов, все они приватные, везде свои ключи, которые по безопасности еще должны меняться раз в какое то определенное время*GitOps - это способ управления инфраструктурой и приложениями с помощью Git как единственного источника правды. Это касается не только микросервисов, но и всей моей Infrastructure as Code (терраформ и ансибл).В итоге в кубернетес у меня создано 3 сервис аккаунта PlatformIntegrationWorkload (Сервисы и приложения)Это как паспорта, кубернетес выдает jwt token каждому поду, и token подтверждает личность пода. 👉Получается примерно такой воркфлоу, при запросе секрета.Под говорит Vault: "Я workload-secrets-sa, вот мой токен"Vault спрашивает у Kubernetes: "Этот токен правда от workload-secrets-sa?"Kubernetes отвечает: "Да, токен валидный"Vault выдает доступ: "OK, можешь читать только secret/workload/*"Пример моей структурыsecret/platform/-database/postgres-database/dynamodb-monitoring/grafana-monitoring/prometheus-infra/argocd-infra/kubernetes-dashboardsecret/integration/-registry/dockerhub-cloud/aws-s3-api/github-payment/stripe-notification/tgsecret/workload/- backend-api/config-telegram-bot/tokens-backup-script/keys-frontend/envИ здесь указаны далеко не все сервисы и компоненты моего проекта, и у каждого есть секреты (ключи), я просто не представляю уже как я раньше все это хранил без Hashicorp Vault, а уж как поддерживать нужный уровень безопасности с постоянной сменой секретов, без автоматизированного инструмента невозможноТеперь мои сервисы и CI/CD получают секреты из Vault, чудесаДругие посты на эту тему1. Terraform (создание серверной инфрастуктуры) 2. Ansible (конфигурация серверов) 3. Как хранить секреты? для сервисов и не только 🍏ps. Презентация Apple WWDC сегодня уже через 10 часов 🤓в 19:00 по Барселоне#программирование