Я хочу скопировать объект из экземпляра Google Compute Engine в Google Storage Bucket, используя gsutil cp
. Оба принадлежат одному владельцу (мне) и одному и тому же проекту. Я хочу автоматизировать всю машину, поэтому аутентификация вручную - это не то, что мне нужно.
Я активировал необходимые разрешения для использования служебной учетной записи в экземпляре Compute (подробности ниже), но когда я пытаюсь gsutil cp
файл в корзину, я получаю AccessDeniedException
.
Сообщение об ошибке жалуется на отсутствие разрешений storage.object.create
или storage.object.list
в зависимости от того, заканчивается ли мой целевой путь корзины в папке (gs://<bucket>/test/
) или файле (gs://<bucket>/test.txt
).
Что я сделал, чтобы получить разрешения (я уже пробовал лот , включая создание избыточных пользовательских ролей, которые я также назначил учетной записи службы):
gcloud instances create <instance> [...] \
--service--account <name>@<project>.iam.gserviceaccount.com \
--scopes cloud-platform,storage-full
- Дайте учетной записи службы разрешения на создание.
- Дайте разрешения учетной записи службы и впоследствии (просто для безопасности):
gcloud projects add-iam-policy-binding <project> \
--member serviceAccount:<name>@<project>.iam.gserviceaccount.com \
--role roles/storage.objectAdmin
- Редактировать разрешения хранилища для учетной записи службы:
gsutil iam ch \
serviceAccount:<name>@<project>.iam.gserviceaccount.com:roles/storage.objectAdmin \
gs://<bucket>
- Редактировать список контроля доступа к хранилищу (разрешение владельца):
gsutil acl ch -u <name>@<project>.iam.gserviceaccount.com:O gs://<bucket>
- В какой-то момент включенные политики IAM уровня сегмента вместо политик для каждого объекта (просто для безопасности).
- В случае использования
gcloud auth activate-service-account --key-file <key>.json
для аутентификации учетной записи.
Однако, что бы я ни делал, ошибка не меняется, и я не могу записать в корзину. Я могу , однако, читать файлы из корзины. Я также получаю ту же ошибку на локальном компьютере, используя учетную запись службы, поэтому проблема не связана с экземплярами.