2017-02-16 6 views
0

При попытке настроить кластер kube на AWS мы хотели бы связать роли IAM с определенными контейнерами и, следовательно, изучить один из многих инструментов, которые позволят вам сделать это как kube2iam. Все инструменты, похоже, работают одинаково, проксируя роль take, основанную на аннотации в развертывании. Разве это не позволяет эскалации роли, позволяя контейнеру взять на себя роль из любого другого контейнера, просто изменив аннотацию?Как избежать эскалации роли при использовании kube2iam

С kube2iam README:

Проблема заключается в том, что в основе мира с множеством арендуемых контейнеров, несколько контейнеров будут делить основные узлы. Указанные контейнеры будут использовать одни и те же базовые узлы, обеспечивая доступ к ресурсам AWS через роли IAM, и это означает, что нужно создать роль IAM, которая является объединением всех ролей IAM. Это не приемлемо с точки зрения безопасности.

Из моего понимания проблема, которая описывается, все еще существует, если введен вредоносный код. Как люди в настоящее время решают эту проблему/это то, о чем я должен беспокоиться?

+0

Если вы не даете доступ к контейнерам API Kubernetes, то как они могут изменить свою аннотацию? –

+0

@PixelElephant Вы правы, но меня больше беспокоит процесс управления конвейером развертывания и нарушен принцип наименьших привилегий. Например, развертывание двух служб в один кластер «hello world» и «Personal information service», поскольку кто-то, у кого есть доступ к развертыванию службы «hello world» для кластера, должен быть не в состоянии взять на себя роль «службы личной информации», но я могу просто изменить аннотацию. – amaffei

+0

Вы больше не говорите о злонамеренном контейнере, а о злобном человеке. kube2iam не может вам помочь. Вы могли бы каким-то образом создать систему в конвейере развертывания, которая проверяет развертывание на наличие 'iam.amazonaws.com/role' и проверяет его. Но я не знаю, из чего вы хотите. –

ответ

1

Вы можете ограничить потребляемые роли пространствами имен.

apiVersion: v1 
kind: Namespace 
metadata: 
    annotations: 
    iam.amazonaws.com/allowed-roles: | 
     ["role-arn"] 
    name: default 

С помощью приложения k8s RBAC ваше развертывание не должно иметь разрешений для обновления аннотаций пространства имен.

Смежные вопросы