Google Speech API возвращает 403 PERMISSION_DENIED

Я использую Google Speech API, чтобы транскрибировать аудио в текст из моего приложения PHP (используя PHP-клиент Google Cloud) в течение нескольких месяцев без каких-либо проблем. Но мои звонки теперь начали возвращать 403 ошибки со статусом "PERMISSION_DENIED" и сообщением "Абонент не имеет разрешения".

Я использую Speech API вместе с Google Storage. Я проверяю подлинность с использованием служебной учетной записи и отправляю свои аудиоданные в хранилище. Это работает, файл загружен. Так я понимаю - но я могу ошибаться? - что "вызывающий абонент" не имеет разрешения на чтение аудиоданных из хранилища.

Я играл с разрешениями через консоль Google без успеха. Я прочитал документы, но я в замешательстве. У учетной записи службы, которую я использую (я полагаю, это "вызывающая сторона"?), Есть права владельца на проект. И все раньше работало нормально, я ничего не изменил.

Я не публикую код, потому что, если я правильно понимаю, код моего приложения - это не проблема, а настройки Google Cloud. Буду благодарен за любую идею или разъяснения понятий!

Благодарю.

1 ответ

Быть владельцем проекта не обязательно означает, что учетная запись службы имеет разрешение на чтение объекта. Возможно, объект был загружен другой учетной записью, которая указала частный ACL или аналогичный.

Убедитесь, что учетная запись службы имеет доступ к объекту, предоставив ей необходимые разрешения для всей корзины или для конкретного объекта.

Вы можете сделать это, используя gsutil acl. Более подробную информацию и дополнительные методы можно найти в официальной документации.

Например, следующая команда дает разрешение READ для объекта вашей учетной записи службы:

gsutil acl ch -u serviceAccount@domain.com:R gs://bucket/object

И эта команда дает разрешение READ для всей корзины вашей учетной записи службы:

gsutil acl ch -u serviceAccount@domain.com:R gs://bucket

В облачном видении Google, когда вы создаете учетные данные с помощью ключа учетной записи службы, вам нужно создать роль и назначить ее владельцем, а также получить полные права доступа.

Другие вопросы по тегам