Използвам Google Cloud Storage и Google Compute Engine и се опитвам да кача в моята кофа от моята виртуална машина. Моята кофа има разрешения за четене/запис, както и всеки, който има достъп до нея. Те са обозначени като Собственик. Мога да изтегля от моята кофа добре. Когато се опитам да кача в моята кофа, това е грешката, която получавам. ResumableUploadAbortException: 403 Insufficient Permission
. Не съм сигурен защо това е така? Някакви улики?
ResumableUploadAbortException: 403 Недостатъчно разрешение
Отговори (6)
Променете обхвата на достъпа на Cloud API на виртуалната машина, за да разрешите четене/запис в Storage. Това е в секцията „Обхвати на достъп“ на настройките на VM. Вашият VM трябва да бъде спрян, за да направи това.
0. Stop VM instance
1. Open VM instance details
2. Press "Edit"
3. Change Cloud API access scope--> "Allow full access to all cloud APIs"
ВАЖНО!! Забележка за този коментар за свързана публикация, че вие може да се наложи да изтриете идентификационните данни в ~/.gsutil
след определяне на новия обхват.
# VM instance console
sudo rm -r ~/.gsutil
На екземпляра на GCE изпълнете следното, за да настроите: Няма нужда да рестартирате Compute Engine,
gcloud init
Резултатът ще бъде нещо подобно.
Choose the account you would like to use to perform operations for this configuration:
[1] [email protected]
[2] Log in with a new account
Please enter your numeric choice: 1
Изберете номер 1, за да използвате акаунт за услуга. Ако това е споделена машина и влезете с личния си акаунт, вашите идентификационни данни могат да бъдат използвани от всеки друг на машината. За повече подробности Прочетете тук
Ако вече сте инициализирали gcloud, не искате да го инициализирате отново.
gcloud auth login
Използвате ли сервизния акаунт по подразбиране на виртуалната машина за достъп до кофата? Това има само обхват за четене по подразбиране. Опитайте да създадете виртуална машина с обхват за четене/запис.
Когато взаимодействате с други продукти на Cloud Platform, като Google Cloud Storage (кофи), по неинтерактивни начини, като например от VM екземпляр, е препоръчително да използвате обхвати, които на свой ред използват акаунти за услуги, предпочитаният начин за удостоверяване на VM / системи. Допълнителна информация можете да намерите тук.
позволете ми да въведа по-прости стъпки, ако е възможно:
- От конзолата спрете VM, редактирайте контрола на достъпа и променете разрешението „Съхранение“ от READ на Write или пълно.
- Стартирайте VM
Изчистете кеша от командния ред
rm -r ~/.gsutil
Това трябва да работи.
Трябва да дадете разрешение на сервизния акаунт на вашия екземпляр да създава обекти във вашата кофа за съхранение. Въпреки че другите отговори постигат това, те може да отворят повече разрешения, отколкото са ви необходими. Ето как да добавите само едно допълнително разрешение:
- Вземете имейл адреса на своя акаунт за услуга:
$ gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* [email protected]
- Отворете кофата си в Cloud Console и отидете на раздела „Разрешения“.
- Кликнете върху „Добавяне на членове“
- Поставете имейл адреса на акаунта на услугата отгоре
- Under "Role", select "Storage Object Admin"
- Note: this gives permission to create, list, and delete objects. If you only need to create objects, you can try "Storage Object Creator" instead.
- Щракнете върху „Запазване“
Обърнете внимание, че това дава разрешения на всички екземпляри, които споделят един и същ акаунт за услуга. Ако имате нужда от по-подробен контрол на достъпа, трябва да създадете различен акаунт за услуга за всеки екземпляр.
След като направите тези стъпки, трябва да презаредите разрешенията, както казаха други:
rm -rf ~/.gsutil
rm -rf /root/.gsutil