#elasticsearch #kubernetes
Вопрос:
У меня есть собственный кластер Elasticsearch, работающий в AWS EKS, и я хотел бы настроить аутентификацию oidc. Я последовал инструкции: https://www.elastic.co/guide/en/cloud/current/ec-secure-clusters-oidc.html#ec-oidc-client-secret
В client-secret
настройках он упоминает
You’ll need to add the client secret to the keystore
поэтому я запустил кластер ES с базовой аутентификацией и добавил секрет в хранилище ключей с помощью команды elasticsearch-keystore add xpack.security.authc.realms.oidc.oidc-realm.rp.client_secret
.
После этого я обновляю файл ES yaml, чтобы включить конфигурацию:
xpack:
security:
authc:
realms:
oidc:
oidc-realm-name:
order: 2
rp.client_id: "client-id"
rp.response_type: "code"
rp.redirect_uri: "<KIBANA_ENDPOINT_URL>/api/security/v1/oidc"
op.issuer: "<check with your OpenID Connect Provider>"
op.authorization_endpoint: "<check with your OpenID Connect Provider>"
op.token_endpoint: "<check with your OpenID Connect Provider>"
op.userinfo_endpoint: "<check with your OpenID Connect Provider>"
op.jwkset_path: "<check with your OpenID Connect Provider>"
claims.principal: sub
claims.groups: "http://example.info/claims/groups"
затем я запускаю rollout restart
, чтобы перезапустить модуль, но при запуске кластера Elasticsearch я получил ошибку ниже:
java.lang.IllegalStateException: security initialization failed
Likely root cause: SettingsException[The configuration setting [xpack.security.authc.realms.oidc.oidc-realm.rp.client_secret] is required]
похоже, ES не находит секрет, который я добавил в хранилище ключей.
Затем я понимаю, что он потерял хранилище ключей, когда я запускаю rollout restart
, чтобы применить конфигурацию oidc. итак, мой вопрос в том, как правильно добавить OIDC в Elasticsearch в K8S?
Ответ №1:
Если вы используете Helm для развертывания, лучший способ-добавить его в значения диаграммы. Вам нужно будет создать секрет в своем кластере, который будет добавлен в хранилище ключей с помощью initContainer. Более подробную информацию о графике руля сведений