Базовая аутентификация для модуляasticsearch, работающего в кластере kubernetes - PullRequest
1 голос
/ 10 марта 2019

Нам нужно создать базовую аутентификацию (имя пользователя / пароль) дляasticsearch и kibana oss (лицензия Apache), работающих в наших кластерах kubernetes. У нас есть многооблачные установки в AWS (EKS), облаке Google (GKE), локальные установки, и мы планируем использовать Azure.

Я думаю о обратном прокси-сервере nginx с базовой аутентификацией, выполняющейся как контейнер с коляской в ​​каждом модуле эластичного поиска / кибаны. Это будет простое и известное решение.

Вопрос в том, каково правильное решение в кластере k8s? Что мы можем извлечь из бесконечного числа решений для простого обслуживания?

1 Ответ

2 голосов
/ 11 марта 2019

Хорошо, если вы используете nginx ingress controller, вы можете добавить базовую аутентификацию следующим образом:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kibana
  namespace: kibana
  annotations:
    kubernetes.io/ingress.class: "nginx"
    # type of authentication
    nginx.ingress.kubernetes.io/auth-type: basic
    # name of the secret that contains the user/password definitions
    nginx.ingress.kubernetes.io/auth-secret: my-secret-basic-auth
    # message to display with an appropriate context why the authentication is required
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - kibana-admin'
  ...
  ...

my-secret-basic-auth необходимо создать с помощью htpasswd:

$ htpasswd -c auth foo
New password: <bar>
New password:
Re-type new password:
Adding password for user foo

Затем вам нужно создать секрет:

$ kubectl create secret generic my-secret-basic-auth --from-file=auth
secret "my-secret-basic-auth" created

Это просто и легко поддерживать, но вы будете привязаны к nginx ingress controller навсегда.

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