Задача: я хочу сохранить все журналы с моего локального компьютера в журналах Google.
Проблема, с которой я столкнулся, заключается в том, что я не могу создать учетную запись службы с правильными разрешениями.Даже если я дам владельцу разрешение, все еще получая сообщение об ошибке «Мне отказано в разрешении» (ACCESS_TOKEN - его токен от ключа json учетной записи):
cat data.json | http POST
"https://logging.googleapis.com/v2/entries:write"
Authorization:"Bearer $ACCESS_TOKEN"
Response:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
В настоящее время я установил:
и он все еще не работает.
Во время отладки я решил использовать личный аккаунт с таким типом доступа: ![enter image description here](https://i.stack.imgur.com/DjBHK.png)
И запрос с токеном из моего аккаунтаработает отлично:
$ cat data.json | http POST
"https://logging.googleapis.com/v2/entries:write"
Authorization:"Bearer `gcloud auth application-default print-access-token`"
HTTP/1.1 200 OK
Alt-Svc: quic=":443"; ma=2592000; v="44,43,39,35"
Cache-Control: private
Content-Encoding: gzip
Content-Type: application/json; charset=UTF-8
Date: Sun, 23 Dec 2018 21:38:05 GMT
Server: ESF
Transfer-Encoding: chunked
Vary: Origin
Vary: X-Origin
Vary: Referer
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
{}
Но если я использую экспортированный файл учетных данных stackdriver-station-1.json с приложением golang / nodejs, я получаю сообщение об ошибке отказа в разрешении:
![enter image description here](https://i.stack.imgur.com/xRLfl.png)
тот же пример с использованием консоли и ACCESS_TOKEN, сгенерированный из экспортированного файла json:
$ cat data.json | http POST
"https://logging.googleapis.com/v2/entries:write"
Authorization:"Bearer $ACCESS_TOKEN"
HTTP/1.1 403 Forbidden
Alt-Svc: quic=":443"; ma=2592000; v="44,43,39,35"
Cache-Control: private
Content-Encoding: gzip
Content-Type: application/json; charset=UTF-8
Date: Sun, 23 Dec 2018 22:39:51 GMT
Server: ESF
Transfer-Encoding: chunked
Vary: Origin
Vary: X-Origin
Vary: Referer
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Любые предложения приветствуются!Мне кажется, что мне не хватает какой-то фундаментальной части облачных разрешений Google.Как будто мне нужно поставить галочку в облачном интерфейсе или что-то в этом роде.