Для авторизации в облачном хранилище требуется токен OAuth 2.0 в заголовке authorization: bearer TOKEN
HTTP. Распространенной ошибкой является использование токена доступа.
Если вы не указали новую учетную запись службы в своей команде развертывания, Cloud Run использует учетную запись службы Compute Engine по умолчанию в качестве идентификатора. Это означает, что вам нужно указать адрес электронной почты учетной записи службы для role/run.Invoker
.
Когда вы авторизуетесь с помощью OAuth для учетных данных пользователя, вы можете получить три токена: токен доступа, токен обновления и токен идентификации в зависимости от того, что вы указали в параметре Scopes. Identity Token - это то, что вы используете в заголовке HTTP-авторизации.
Когда вы авторизуете сервис-сервис с использованием идентификатора учетной записи сервиса, позвоните на сервер метаданных Cloud Run, чтобы создать для вас токен. Эта конечная точка вернет идентификационный токен. Используйте возвращенный токен в заголовке HTTP-авторизации.
http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=<ususally-the-url-of-the-cloud-run-service-you-are-calling>
Возвращенный токен - это подписанный JWT, который вы можете декодировать. Типичная base64-кодировка header.payload.signature. Полезная нагрузка содержит адрес электронной почты учетной записи службы, и этот адрес электронной почты используется прокси-сервером Cloud Run для авторизации.