# #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/…