Google Cloud Platform - могу ли я найти причину ответа 403? - PullRequest
2 голосов
/ 22 марта 2019

Я использую https://dataproc.googleapis.com/v1/projects/{projectId}/regions/{region}/clusters для создания кластеров GCP Dataproc, как описано в https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.clusters/create.

Я использую учетные данные учетной записи службы, которые были экспортированы в файл ключей JSON.Эта учетная запись службы (myserviceaccount@projectA.iam.gserviceaccount.com) существует в projectA, и я смог использовать ее для успешного создания кластеров Dataproc в projectA.

Теперь мне нужно использовать ту же учетную запись службы для создания кластеров Dataproc в projectB.Я выполняю точно такой же код, используя те же учетные данные, единственное отличие - проект, в котором я его создаю. Я предоставил myserviceaccount@projectA.iam.gserviceaccount.com точно такие же разрешения в projectB, как и в projectA, но когда я пытаюсь исоздать кластер, в котором происходит сбой:

2019-03-22 10:58:47 INFO: _retrieve_discovery_doc():272: URL being requested: GET https://www.googleapis.com/discovery/v1/apis/dataproc/v1/rest
2019-03-22 10:58:54 INFO: method():873: URL being requested: GET https://dataproc.googleapis.com/v1/projects/dh-coop-no-test-35889/regions/europe-west1/clusters?alt=json
2019-03-22 10:58:54 INFO: new_request():157: Attempting refresh to obtain initial access_token
2019-03-22 10:58:54 DEBUG: make_signed_jwt():100: [b'blahblahblah', b'blahblahblah']
2019-03-22 10:58:54 INFO: _do_refresh_request():777: Refreshing access_token
2019-03-22 10:58:55 WARNING: _should_retry_response():121: Encountered 403 Forbidden with reason "forbidden"

Итак, этой учетной записи службы запрещено создавать кластеры в projectB, но я не получаю никакой информации о том, почему.Я надеюсь, что есть некоторые журналы аудита, которые объясняют, почему запрос был запрещен, но я заглянул в https://console.cloud.google.com/logs/viewer?project=projectB и не могу его найти.

Может кто-нибудь сказать мне, где я могу получитьдополнительная информация для диагностики причины сбоя этого запроса?

1 Ответ

4 голосов
/ 22 марта 2019

Как упоминалось в комментариях, один из способов получить больше информации о неудавшемся запросе - настроить gcloud для использования учетной записи службы.Выполнение команд gcloud с параметром --log-http также может дать дополнительную информацию.

Повторное вставление здесь для облегчения чтения / видимости.

...