Cloud Function в проекте A получает ошибку 403 при записи в бакет Cloud Storage в проекте B. Как это исправить?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Предоставить сервисному аккаунту service-PROJECTA@gcf-admin-robot.iam.gserviceaccount.com роль roles/storage.objectCreator для бакета Cloud Storage..
Почему это правильный ответ
Ошибка 403 (Forbidden) указывает на проблему с разрешениями. Cloud Function выполняется от имени своего сервисного аккаунта, который по умолчанию имеет вид service-PROJECTNUMBER@gcf-admin-robot.iam.gserviceaccount.com или PROJECTID@appspot.gserviceaccount.com. В данном случае, функция из Проекта A пытается записать данные в бакет Cloud Storage в Проекте B. Следовательно, сервисному аккаунту Cloud Function из Проекта A необходимо предоставить соответствующие разрешения на запись в целевой бакет в Проекте B. Роль roles/storage.objectCreator дает право создавать объекты в бакете. Предоставление роли вашей учетной записи пользователя не поможет, так как функция работает под сервисной учетной записью, а не под вашей личной. Предоставление роли roles/iam.serviceAccountUser вашей учетной записи пользователя позволяет вам выдавать себя за сервисный аккаунт, но не дает самому сервисному аккаунту прав на бакет. Включение Cloud Storage API в Проекте B необходимо для работы с Cloud Storage, но не решает проблему с разрешениями, если API уже включен, а ошибка 403 указывает именно на отсутствие прав.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется