При попытке настроить кластер kube на AWS мы хотели бы связать роли IAM с определенными контейнерами и, следовательно, изучить один из многих инструментов, которые позволят вам сделать это как kube2iam. Все инструменты, похоже, работают одинаково, проксируя роль take, основанную на аннотации в развертывании. Разве это не позволяет эскалации роли, позволяя контейнеру взять на себя роль из любого другого контейнера, просто изменив аннотацию?Как избежать эскалации роли при использовании kube2iam
С kube2iam README:
Проблема заключается в том, что в основе мира с множеством арендуемых контейнеров, несколько контейнеров будут делить основные узлы. Указанные контейнеры будут использовать одни и те же базовые узлы, обеспечивая доступ к ресурсам AWS через роли IAM, и это означает, что нужно создать роль IAM, которая является объединением всех ролей IAM. Это не приемлемо с точки зрения безопасности.
Из моего понимания проблема, которая описывается, все еще существует, если введен вредоносный код. Как люди в настоящее время решают эту проблему/это то, о чем я должен беспокоиться?
Если вы не даете доступ к контейнерам API Kubernetes, то как они могут изменить свою аннотацию? –
@PixelElephant Вы правы, но меня больше беспокоит процесс управления конвейером развертывания и нарушен принцип наименьших привилегий. Например, развертывание двух служб в один кластер «hello world» и «Personal information service», поскольку кто-то, у кого есть доступ к развертыванию службы «hello world» для кластера, должен быть не в состоянии взять на себя роль «службы личной информации», но я могу просто изменить аннотацию. – amaffei
Вы больше не говорите о злонамеренном контейнере, а о злобном человеке. kube2iam не может вам помочь. Вы могли бы каким-то образом создать систему в конвейере развертывания, которая проверяет развертывание на наличие 'iam.amazonaws.com/role' и проверяет его. Но я не знаю, из чего вы хотите. –