У меня есть Strapi CMS, развернутая в Cloud Run, и я открыл ее через Google Cloud Load Balancer. CMS предоставляет URL-адрес без проверки подлинности для отображения статического контента. Если я нажму URL-адрес Cloud Run напрямую без аутентификации, он будет работать нормально и предоставит мне контент.
Затем я настроил Google Cloud Load Balancer с серверной конфигурацией (через Service Endpoint Group) для экземпляра Cloud Run. Конфигурация выполнена успешно. Однако, если я попытаюсь нажать URL-адрес CLoud Run через Cloud Load Balancer, он выдает ошибку 403 Forbidded.
Если к тому же URL-адресу облачного балансировщика нагрузки обращаются с заголовком авторизации, он работает нормально. Мне нужны неаутентифицированные запросы.
Любая помощь будет очень признательна.
Думаю, будет лучше, если вы зададите этот вопрос на странице форума Strapi https://forum.strapi.io/ или в Discord: https://discord.strapi.io/
Привет, такие предложения должны быть в комментариях :)
Конечно! Все еще новинка здесь. Спасибо.
403 Forbidden error
означает, что запрос не прошел проверку подлинности или не имеет разрешения на получение URL-адреса.
Чтобы решить эту проблему, могут помочь следующие шаги:
Если служба предназначена для вызова кем угодно, обновите ее настройки IAM, чтобы сделать службу общедоступной.
Если служба предназначена для вызова только определенными удостоверениями, убедитесь, что вы вызываете ее с правильным токеном авторизации.
При вызове конечным пользователем: убедитесь, что у пользователя есть права администратора Cloud Run (roles/run.admin) и роли Cloud Run Invoker (roles/run.invoker).
Если вызывается учетной записью службы: убедитесь, что учетной записи службы назначена роль Cloud Run Invoker (roles/run.invoker).
Вызовы без токена аутентификации или с токеном аутентификации в допустимом формате, но у члена IAM, используемого для создания токена, отсутствует разрешение (run.routes.invoke); это приведет к этой ошибке 403.
Если проект находится в пределах периметра VPC-SC, убедитесь, что политики VPC-SC не запрещают трафик run.googleapis.com/HttpIngress, исходящий от IP-адреса или личности вызывающего абонента.
Для получения подробных инструкций следуйте официальному документу HTTP 403: Клиент не авторизован для вызова/вызова службы.
Мои URL-адреса Cloud Run общедоступны, и я могу получить доступ к URL-адресу CLoud Run непосредственно из браузера и Postman. Только если я получаю доступ к URL-адресу запуска облака через балансировщик нагрузки Google Cloud, это дает мне ошибку 403.
Пожалуйста, обратитесь по этой ссылке, чтобы узнать об ошибке 403 Защита аутентифицированных облачных служб с балансировкой нагрузки с использованием IAP
В конфигурации отсутствует деталь. Кроме того, у вас есть несколько сервисов Cloud Run с одинаковым названием, но развернутых в разных регионах?