Есть ли способ применить аутентификацию для каждой службы, кроме отдельной конкретной службы в Istio? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть следующая политика, которая интегрируется с нашей учетной записью Auth0:

apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  name: auth-policy
spec:
  targets:
  - name: my-service
  origins:
  - jwt:
      issuer: "https://<redacted>.eu.auth0.com/"
      jwksUri: "https://<redacted>.eu.auth0.com/.well-known/jwks.json"
  principalBinding: USE_ORIGIN

, которая применяет нашу конфигурацию Auth0 ко всем, но я хочу отключить это для отдельной службы. Я предполагаю, что хочу установить цели как «все, кроме x».

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 29 октября 2019

В полисе spec.targets вы указали только одно имя службы my-service, которое относится только к одной службе с только этим именем. На Target selector docs вы можете найти информацию, что с помощью этого способа вам нужно указать имя каждой службы, но вы также можете указать и номер порта. Там также упоминалось о 3 типах политик: Mesh-wide, Namespace-wide и Service-specific.

Что касается решения вашего вопроса, я могу посоветовать вам 3 варианта:

1. Отдельные пространства имен для включенных и отключенных служб

Вы можете разместить свои службы, которые должны проходить проверку подлинности, на другой namespace и включить политику в отношении пространства имен . Другим вариантом этой опции может быть перемещение служб, которые не должны проходить проверку подлинности, в другие namespace и включение проверки подлинности в пространстве имен default.

2. Политика всего пространства имен с отдельной службой Она аналогична предыдущей, но вместо создания новой политики всего пространства имен вам просто нужно создать политику service-specific, которая отключит аутентификацию в одной службе.

Она должнаработа в качестве приоритета:

для конкретной службы> для всего пространства имен> для всей сетки

3. MeshPolicy с индивидуальным сервисом Если вы хотите сохранить все сервисы в одном namespace, вы можете использовать MeshPolicy , чтобы применить эту политику ко всем services во всех пространствах имен в сетке, а затем создать еще один service-specificполитика отключения аутентификации. Как упоминалось ранее, service-specific имеет более высокий приоритет, чем MeshPolicy.

Надеюсь, это поможет.

...