В настоящее время я изучаю возможность запуска кластера Istio / Kubernetes на AWS с использованием EKS. Я хотел бы иметь возможность назначать разные роли IAM для каждой службы, работающей в кластере, чтобы ограничить привилегии AWS для каждой службы.
В кластерах, не относящихся к Istio Kubernetes, эта возможность предоставляется такими проектами, как kube2iam, но это не кажется идеальным в мире Istio, поскольку kube2iam
полагается на iptables
правила, а Istio уже использует iptables
правила для перенаправления всего исходящего трафика на сопроводительный элемент Envoy.
В документации по безопасности Istio говорится, что модель идентификации обслуживает различные базовые реализации, а в AWS эта реализация Я:
В модели идентичности Istio Istio использует первоклассную идентичность сервиса для определения идентичности сервиса. Это дает большую гибкость и детализацию для представления человека-пользователя, отдельной службы или группы служб. На платформах, для которых такая идентификация недоступна, Istio может использовать другие удостоверения, которые могут группировать экземпляры служб, например имена служб.
Идентификаторы сервисов Istio на разных платформах:
Kubernetes: сервисный аккаунт Kubernetes
GKE / GCE: может использовать сервисный аккаунт GCP
GCP: сервисный аккаунт GCP
AWS: пользовательский / ролевой аккаунт AWS IAM
Но я не встречал какой-либо дополнительной документации о том, как назначать роли IAM для Istio ServiceRoles а>.
Кто-нибудь нашел решение этого?
ОБНОВЛЕНИЕ: см. IRSA