После настройки IAP для Cloud Run вход в систему работает, но затем я получаю статус HTTP 403, говорящий следующее:
Запрос не был аутентифицирован. Либо разрешить неаутентифицированный вызовы или установите правильный заголовок авторизации. Подробнее читайте на https://cloud.google.com/run/docs/securing/authenticating Дополнительно Документацию по устранению неполадок можно найти по адресу: https://cloud.google.com/run/docs/troubleshooting#unauthorized-client
По ссылкам на документацию и для своих нужд я попал в эту документацию: https://cloud.google.com/iap/docs/enabling-cloud-run#turning_on
Все шаги выполнены, за исключением последнего, который предлагает добавить роль инициатора облачного запуска к учетной записи службы IAP, но проблема в том, что SA не существует в IAM моего проекта. И у меня недостаточно роли, чтобы создать это удостоверение с помощью этой команды:
gcloud beta services identity create --project PROJECT_ID --service iap
Какие-либо предложения ?
Пожалуйста, уточните, где вы ищете. Учетная запись службы не будет отображаться в разделе IAM & Admin -> IAM до тех пор, пока ей не будет предоставлена роль через привязку политики, но она появится в разделе «Учетные записи службы». Единственные участники, которые будут отображаться в разделе IAM, — это участники, которые являются частью политики IAM проекта.
Предоставили ли вы этому системному администратору service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
роль инициатора запуска облака?
@JohnHanley да, это тот случай, когда я искал в IAM, и он не появлялся, пока я не дал ему роль инициатора запуска облака. Гийом: да, сейчас это работает, однако это другая тема, но часть токена не очень понятна в документации (т. е. как получить/отправить токен на серверную часть из спа, все, что я вижу сейчас, это файл cookie)
SA для IAP присутствует по умолчанию, но он не отображается, пока вы не предоставите ему хотя бы одну роль, поэтому решением было использование интерфейса командной строки gcloud.
SA не был виден в консоли, но присутствовал, поэтому мне просто нужно было дать ему роль инициатора, а затем он начал отображаться в консоли после активации флажка предоставленных Google ролей.