Аутентификация в GKE Rest API

# #kubernetes #google-kubernetes-engine

Вопрос:

Я пытаюсь запросить API REST GKE с Invoke-RestMethod помощью Powershell. Как мне пройти аутентификацию? Я попытался использовать ключ API, переданный в качестве заголовка, но это не сработало. Я продолжаю получать сообщение об ошибке:

 Invoke-RestMethod: 
Line |
  10 |  … sresponse = Invoke-RestMethod -Uri $clustersuri -Headers $gkeheaders  …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | {
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devco
nsole-project.",
    "status": "UNAUTHENTICATED"
  }
}
 

Любые указатели приветствуются!

Комментарии:

1. Вы пытаетесь получить доступ к серверу API Kube или только к API GKE REST ( cloud.google.com/kubernetes-engine/docs/reference/rest )?

2. Только API GKE. Я пробовал там методы аутентификации, но всегда что-то упускал

3. Привет, не могли бы вы сказать, что именно вы пытаетесь запросить? Вы случайно не видели эту документацию (пример многих), в которой есть опция Попробовать этот API , где вы можете увидеть, что именно необходимо отправить: cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/… ?

Ответ №1:

Для API REST GKE https://cloud.google.com/kubernetes-engine/docs/reference/rest, вы должны указать api key параметр в качестве запроса в своих запросах REST.

См. Следующую документацию по созданию и использованию ключей api: https://cloud.google.com/docs/authentication/api-keys#using_an_api_key

Комментарии:

1. Спасибо, думаете, срок действия API-ключа истечет довольно скоро? Я хочу чего-то, что сохранялось бы. Я смотрел на это здесь, но не уверен, что такое шаг 6 и какой код должен быть в моем сценарии Powershell. cloud.google.com/kubernetes-engine/docs/how-to/…

2. эта документация предназначена для доступа к серверу API kubernetes, а не к API GKE REST. Если вы не можете использовать ключ api, вам придется использовать OAUTH2. Я думаю, что самым простым для Powershell будет использовать Service Account : см. developers.google.com/identity/protocols/oauth2/…