У меня есть простая служба Spring Boot 'say-hi', которая принимает запрос GET в / say-hi и возвращает 'hello'. Он развернут в управляемом Cloud Run. Допустим, я не хочу открывать его для общего доступа c. Теперь я хотел сделать две вещи: 1. разрешить разработчику (я сам) получить доступ к 'say-hi' 2. разрешить другой службе Spring Boot за пределами Cloud Run сделать вызов 'say-hi'
Для моей цели 1:
Странно то, что команда curl не работает, но Insomnia работает нормально. В основном, я следовал do c, я добавил свою учетную запись google в роли / run.invoker, но команда curl сообщает, что сеть недоступна:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" http://say-hi-0-1-0-q6g2cgbzna-ew.a.run.app:8080/say-hi -v
Ошибки:
* Trying 216.239.36.53...
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
Однако, если я запускаю gcloud auth print-identity-token
отдельно, чтобы сначала получить токен, а затем отправляю запрос GET от клиента Insomnia, он работает ... Мне интересно, почему ...
Для моей цели 2 я предполагаю, что правильный сеанс, чтобы посмотреть на это здесь . Означает ли это, что если я хочу получить доступ к «привет» извне Cloud Run Manged (как с моего собственного ноутбука, так и с других экземпляров GKE), мне нужно включить IAP для моего проекта? если да, как интегрировать облачный запуск с IAP?