Для завершения этой передачи вам необходимо разрешение «storage.buckets.setIamPolicy» для исходного сегмента. - PullRequest
0 голосов
/ 04 июня 2019

Я получаю эту ошибку при попытке создать «передачу» для передачи содержимого одного контейнера в Google Cloud в другой контейнер в Google Cloud под тем же владельцем:

Для завершения этой передачи вам необходимо разрешение «storage.buckets.setIamPolicy» для исходного блока. Попросите администратора ведра предоставить вам необходимое разрешение и повторите попытку.

Понятия не имею, что мне делать. Я попытался перейти к "Bucket -> Permissions -> Add Members -> myemail.com for Storage -> ... Admin", но я просто продолжаю получать сообщение "Ошибка обновления политики IAM".

Пожалуйста, помогите, что нужно сделать, чтобы это работало, чтобы я мог сделать свои файлы общедоступными.

Я использую Node.js, если это помогает.

Если я даже попытаюсь получить фотографию и обойти ее напрямую, я даже не смогу сделать это: /

const { Storage } = require('@google-cloud/storage')

const storage = new Storage({
  projectId: 'my-bucket'
})

const bucket = storage.bucket('my.bucket')


app.get('/photo/:photo.:ext', (req, res) => {
  const remoteFile = bucket.file(`photo/${req.params.photo}.${req.params.ext}`)
  remoteFile.createReadStream().pipe(res)
})

Не могу сделать это тоже:

const opts = {
  includeFiles: true
};

bucket.makePublic(opts, function(err, files) {
  // `err`:
  //    The first error to occur, otherwise null.
  //
  // `files`:
  //    Array of files successfully made public in the bucket.
  console.log(arguments)
});

Невозможно получить устаревшие списки ACL для корзины, для которой включена только политика корзины. Подробнее на https://cloud.google.com/storage/docs/bucket-policy-only.

$ gsutil iam ch allUsers:objectViewer gs://my.bucket
ServiceException: 401 Anonymous caller does not have storage.buckets.getIamPolicy access to my.bucket.

1 Ответ

0 голосов
/ 11 июня 2019

Ошибка ясно указывает на отсутствие разрешения в корзине источника. Я рекомендую вам подтвердить, что у Владельца в исходной корзине есть Разрешение, storage.objects.getIamPolicy (IAM & admin -> Меню IAM -> Фильтровать по адресу электронной почты Владельца -> проверить роль в нем). Затем вы можете проверить, есть ли у ролей это разрешение, storage.objects.getIamPolicy (перейдите в раздел IAM & admin -> Роли, а затем найдите определенную роль -> щелкните по ней, и она покажет список назначенных разрешений. Убедитесь, что storage.objects.getIamPolicy - это одно из разрешений, указанных для роли

.

Между тем, чтобы вы могли предоставить доступ к определенным сегментам, ваша учетная запись должна быть Администратор хранилища . Таким образом, если ваша учетная запись не имеет этой роли, вам нужен кто-то, кто имеет эту роль, чтобы иметь возможность предоставить доступ или иметь другой контроль над корзиной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...