Управление доступом приложения к другому пространству имен с помощью RBAC в кубернетах

Я пытаюсь найти минимальные привилегии, необходимые для того, чтобы приложение могло общаться в кубернетах для следующих сценариев.

  1. Приложение1 находится в пространстве имен 1, а приложение2 - в пространстве имен 2
  2. Приложение 1 находится в кластере 1, а приложение 2 - в кластере 2

Я развернул образец приложения в своем кластере (https://github.com/kubernetes/kubernetes/tree/release-1.2/examples/guestbook) в двух разных пространствах имен

Несмотря на то, что я связываю эти приложения со служебной учетной записью, у меня нет привилегий в соответствующих пространствах имен, мое приложение php все еще может подключаться к приложению Redis. Я ожидал, что он выдаст ошибку, как мои приложения работают даже после того, как моей учетной записи службы не было роли

Ниже приведена роль, которую я связал с моей учетной записью службы.

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
 name: no-access-cr
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: [""] 
  verbs: [""]

Любезно помочь!!!


person sai prashanth    schedule 18.04.2020    source источник
comment
my php application is still able to reach redis application. Если вы хотите заблокировать сеть, проверьте NetworkPolicy. kubernetes.io/docs/concepts/services-networking/   -  person hoque    schedule 19.04.2020
comment
Сеть доступна, но есть ли способ заблокировать это с помощью RBAC   -  person sai prashanth    schedule 19.04.2020
comment
Мой вопрос: есть ли какие-либо минимальные привилегии RBAC, необходимые для связи между приложениями в пространствах имен или между кластерами, это то, что я проверял.   -  person sai prashanth    schedule 19.04.2020
comment
вы можете использовать networking.k8s.io/v1 в apiGroups и проверить?   -  person hoque    schedule 19.04.2020


Ответы (1)


Политики RBAC, которые вы применяете к приложениям, не имеют ничего общего с самой сетью (L3 / L4). Они связаны с доступом L7 к API k8s (сервер kube-api) и, следовательно, с доступом к объектам k8s, предоставляемым через эти API.

Если вы хотите ограничить доступ между приложениями на сетевом уровне (L3 / L4), вам необходимо применить сетевые политики Также в зависимости от сетевого плагина, например Можно использовать политики calico.

person Anton Matsiuk    schedule 20.04.2020
comment
Спасибо, это действительно помогло мне понять, я могу контролировать трафик с помощью политик и контролировать доступ к объектам api с помощью RBAC - person sai prashanth; 22.04.2020