gsutil 指令所需的 Cloud IAM 權限

下表中列出在指定資源上執行每個 Cloud Storage gsutil 指令時所需的 Cloud Identity and Access Management (Cloud IAM) 權限。如需使用萬用字元、標記 -r 和標記 -m 的注意事項,請參閱表格下方的章節。

指令 子指令 動作所需資源 必要的 Cloud IAM 權限
acl get 值區 storage.buckets.get
storage.buckets.getIamPolicy
acl setch 值區 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get 物件 storage.objects.get
storage.objects.getIamPolicy10
acl setch 物件 storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
bucketpolicyonly set 值區 storage.buckets.setIamPolicy2
bucketpolicyonly get 值區 storage.buckets.get
cat 物件 storage.objects.get
compose 物件 storage.objects.get (針對來源物件)
storage.objects.create (針對目標值區)
storage.objects.delete1 (針對目標值區)
config
cors get 值區 storage.buckets.get
cors set 值區 storage.buckets.update
cp 物件 storage.objects.list2 (針對目標值區)
storage.objects.get (針對來源物件)
storage.objects.create (針對目標值區)
storage.objects.delete1 (針對目標值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
cp -n 物件 storage.objects.list2 (針對目標值區)
storage.objects.get (針對來源物件和目標值區)
storage.objects.create (針對目標值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
defacl get 值區 storage.buckets.get
storage.buckets.getIamPolicy
defacl setch 值區 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get 值區 storage.buckets.get
defstorageclass set 值區 storage.buckets.update
du 物件 storage.objects.get
hash 物件 storage.objects.get
help
iam get 值區 storage.buckets.get
storage.buckets.getIamPolicy
iam setch 值區 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get 物件 storage.objects.get
storage.objects.getIamPolicy10
iam setch 物件 storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
kms authorize 專案 resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKey.setIamPolicy (針對已授權 Cloud KMS 金鑰)
kms encryption 值區 storage.buckets.get
kms encryption -d 值區 storage.buckets.get
storage.buckets.update
kms encryption -k 值區、專案7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
kms serviceaccount 專案 resourceManager.projects.get
label get 值區 storage.buckets.get
label set/ch 值區 storage.buckets.update
lifecycle get 值區 storage.buckets.get
lifecycle set/ch 值區 storage.buckets.update
logging get 值區 storage.buckets.get
logging set 值區 storage.buckets.update
ls 專案 storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls 值區、物件 storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6,10
ls -b 值區 storage.buckets.get
storage.buckets.getIamPolicy6
mb 值區 storage.buckets.create
mv 物件 storage.objects.list2 (針對目標值區)
storage.objects.get (針對來源物件)
storage.objects.create (針對目標值區)
storage.objects.delete (針對來源值區)
storage.objects.delete1 (針對目標值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
mv -n 物件 storage.objects.list2 (針對目標值區)
storage.objects.get (針對來源物件和目標值區)
storage.objects.create (針對目標值區)
storage.objects.delete (針對來源值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
notification create 值區 storage.buckets.update
pubsub.topics.get (針對包含 Pub/Sub 主題的專案)
pubsub.topics.create8 (針對包含 Pub/Sub 主題的專案)
pubsub.topics.getIamPolicy (針對接收通知的 Pub/Sub 主題)
pubsub.topics.setIamPolicy8 (針對接收通知的 Pub/Sub 主題)
notification create -s 值區 storage.buckets.update
notification delete 值區 storage.buckets.update
notification list 值區 storage.buckets.get
notification watchbucket 值區 storage.buckets.update
notification stopchannel 值區 storage.buckets.update
perfdiag 值區 storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb 值區 storage.buckets.delete
requesterpays get 值區 storage.buckets.get
requesterpays set on 值區 storage.buckets.get
storage.buckets.update
requesterpays set off 值區 storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clearevent-defaultlockset 值區 storage.buckets.update
retention eventtemp 物件 storage.objects.get
storage.objects.list
storage.objects.update
retention get 值區 storage.buckets.get
rewrite -k 物件 storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s 物件 storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm 值區 storage.buckets.delete
storage.objects.delete
storage.objects.list
rm 物件 storage.objects.delete
rsync 物件 storage.objects.get (針對來源物件和目標值區)
storage.objects.create (針對目標值區)
storage.objects.delete1 (針對目標值區)
storage.objects.list (針對來源和目標值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
rsync -d 物件 storage.objects.get (針對來源物件和目標值區)
storage.objects.create (針對目標值區)
storage.objects.delete (針對目標值區)
storage.objects.list (針對來源和目標值區)
storage.objects.getIamPolicy3,10 (針對來源物件)
storage.objects.setIamPolicy3,10 (針對目標值區)
rsync -n 物件 storage.objects.list (針對來源和目標值區)
setmeta 物件 storage.objects.get
storage.objects.list
storage.objects.update
signurl 無;不過與要求有關的服務帳戶必須具備 storage.objects.get
stat 物件 storage.objects.get
test
update
version
versioning get 值區 storage.buckets.get
versioning set 值區 storage.buckets.update
web get 值區 storage.buckets.get
web set 值區 storage.buckets.update

1只有在插入物件名稱與存在值區中物件名稱相同時,才需要這項權限。

2只有在指令中的目標位置包含物件路徑時,才需要這項權限。

3只有在指令中使用標記 -a-p 時,才需要這項權限。

4只有在您目前沒有與專案有關的 Cloud Storage 服務帳戶時,才需要這項權限。

5只有在指令中使用標記 -L-l 時,才需要這項權限。

6只有在您要將 Cloud IAM 政策列入詳細資料中時,才需要這項權限。

7如果您使用 gsutil kms encryption -k,且專案的服務帳戶沒有存取所要求 Cloud KMS 金鑰的權限,gsutil 會執行 gsutil kms authorize 以授予服務帳戶必要權限。

8如果主題已存在且相關服務帳戶可存取該主題,則不需要這些權限。

9只有在您的要求中未包含計費專案時,才需要這項權限。詳情請參閱「要求者付費」一文中的使用及存取需求一節。

10此權限不適用於已啟用僅值區政策的值區。

頂層標記 -u

如果您使用 -u 頂層標記來指定因要求需要付費的專案,就必須擁有指定該專案的 serviceusage.services.use 權限。舉例來說,存取已啟用要求者付費功能的值區時,就會使用標記 -u

萬用字元與遞迴標記

如果您使用 URI 萬用字元在指令中選取多個物件,就必須擁有物件所在值區的 storage.objects.list 權限。同樣地,如果您使用 URI 萬用字元在指令中選取多個值區,就必須擁有值區所在專案的 storage.buckets.list 權限。

如果您使用遞迴標記 (-r-R),除了使用特定指令的必要權限之外,還必須擁有相關值區的 storage.objects.list 權限。

頂層標記 -m

通常,如果使用 gsutil 指令在多個物件或值區上執行動作時,指令會因第一個錯誤而失敗。但是,使用 -m 頂層標記時,gsutil 會記錄指令發生的任何錯誤並繼續作業。

舉例來說,假設您嘗試在一系列的物件上執行 acl set 指令,但卻只有在某些物件上執行這項指令的權限。如果您不使用標記 -m,gsutil 會成功套用 ACL,直到所執行的物件不具備套用 ACL 的權限為止,這時 gsutil 就會失敗。如果您使用的是標記 -m,gsutil 會在嘗試將 ACL 套用至您不具備權限的物件時,記錄所發生的錯誤,但同時又會繼續作業。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁