Ошибка сервера при включении IAP - я что-то упустил? - PullRequest
0 голосов
/ 18 марта 2019

Всякий раз, когда я пытаюсь включить IAP на входе GKE через консоль, я получаю следующее сообщение об ошибке:

Неверное значение для поля 'resource.iap.oauth2ClientSecret': ''. IAP Секрет клиента OAuth2 должен быть установлен, если IAP включен.

Кто-нибудь знает, что вызывает это?

Похоже, что внутренняя ошибка API возвращается через графический интерфейс, и я не могу найти какую-либо документацию по ней.

Ответы [ 2 ]

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

GUI действительно не может выполнить внутренний вызов API на законных основаниях.В любом случае вы можете включить IAP, вручную изменив свой входной бэкэнд следующим образом: gcloud beta compute backend-services update $YOUR_INGRESS_BACKEND --project=$YOUR_PROJECT --global --iap=enabled,oauth2-client-id=$CLIENT_ID,oauth2-client-secret=$CLIENT_SECRET

0 голосов
/ 19 марта 2019

Есть пять частей - учетные данные OAuth, вход, служба, секрет, BackendConfig.Вам понадобится Kubernetes 1.10.5-gke.3 или позже. Включение Cloud IAP для GKE описывает, что вам нужно сделать (или, по крайней мере, для большинства из них).

OAuth - создать учетные данные для клиента OAuth (возможно, типа «веб-приложение»)).Идентификатор и секрет будут добавлены в секретный объект kube.

Вход - указывает на вашу Службу и ничего лишнего

Служба - комментирует BackendConfig.(Вы можете назначить разные служебные порты различным бэкэндам. Используйте «default» для простого случая.)

metadata:
  annotations:
    beta.cloud.google.com/backend-config: '{"default": "mybc"}'

Secret - будет содержать учетные данные для созданного клиента OAuth

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: mysecret
data:
  client_id: xxx
  client_secret: xxx

BackendConfig - это пользовательский ресурс, который поддерживает GKE, так что нет ничего необычного, кроме создания этого объекта

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: mybc
spec:
  iap:
    enabled: true
    oauthclientCredentials:
      secretName: mysecret

Если у вас все еще есть проблемы: просмотрите эту документацию снова;проверьте авторизованные домены OAuth;на странице IAP подтвердите права доступа пользователя веб-приложения, защищенного IAP для предполагаемых пользователей;проверьте, что ваши секретные данные закодированы в base64;проверьте соответствие портов вашим спецификациям Ingress / Service / Deployment.

...