Как создать политику Kubernetes RBA C для набора модулей автоматического масштабирования (или это вообще возможно)? - PullRequest
0 голосов
/ 10 марта 2020

Моя цель - создать роль Kubernetes, чтобы ограничить доступ kubectl exe c к модулям при указанном c развертывании. У меня есть политика, построенная ниже, которая успешно создает роль, когда все количество и имена моих модулей указаны как * c. Проблема заключается в том, что мое развертывание автоматически масштабируется по горизонтали, поэтому, если создается новый модуль, то роль не будет применяться к этому новому модулю (поскольку каждое имя модуля явно определено в роли), и к новому модулю будет добавлен случайный ха sh. к его имени.

Формат ниже в Terraform, но имеет ту же структуру высокого уровня, что и роль, определенная в yaml

resource kubernetes_cluster_role alb_exec_role {
  metadata {
    name = "alb-exec-role"
  }

  rule {
    api_groups     = [""]
    resources      = ["pods", "pods/log"]
    resource_names = [<pod names>]
    verbs          = ["get", "list"]
  }

  rule {
    api_groups     = [""]
    resources      = ["pods/exec"]
    resource_names = [<pod names>]
    verbs          = ["create"]
  }
}

1 Ответ

1 голос
/ 10 марта 2020

Прежде всего, почему бы не удалить pod/exec из всех модулей в этом Role, а затем внести в белый список те, которые вы делаете терпеть exe c -ing в?

Тем не менее скорее всего, вам нужен пользовательский контроллер, который прослушивает события Pod в этом пространстве имен и обновляет RBA C Role при создании или планировании нового Pod.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...