скручивание не достаточно
Я не думаю, что вы сможете сделать это только с помощью curl
, потому что я считаю, что для этого требуется аутентификация JWT - чтение между строками в документах и сообщениями об ошибках, которые я получил сам.
oauth2l: облегченный подход
У них есть oauth2l
, которые могут генерировать JWT из service_account.json
JWK (хотя он также должен работать с тем, который у вас есть, который вместо этого использует PEM или CRT).
К сожалению, у них нет прямой ссылки на скачивание, но это не слишком трудно получить:
Попробуйте это:
Установить Go:
Установите свой путь:
export PATH="$HOME/go/bin:$PATH"
Затем установите oauth2l
:
go get github.com/google/oauth2l
go install github.com/google/oauth2l
Затем сгенерируйте токен API JWT:
oauth2l fetch --jwt --json ./service_account.json https://www.googleapis.com/auth/cloud-platform
Вернуться к скручиванию
Затем используйте curl
, чтобы получить нужный API:
token=$(oauth2l fetch --jwt --json ./service_account.json https://www.googleapis.com/auth/cloud-platform)
curl -X POST https://www.googleapis.com/dns/v1/projects/<project>/managedZones \
-H "Authorization: Bearer $token"
Это не идеально, но я думаю, что это даст вам то, что вам нужно с минимальной абстракцией.
Еще меньше абстракции
Я постараюсь опубликовать ответ, когда выясню это. Для этого потребуется какой-то инструмент, но я думаю, что он может быть даже легче, чем oauth2l
.