Tabel berikut mencantumkan izin Identity and Access Management (IAM) yang diperlukan untuk menjalankan setiap perintah gsutil Cloud Storage di resource tertentu. Izin IAM dipaketkan bersama untuk membuat peran. Anda memberikan peran kepada pengguna dan grup.
Di halaman ini, Anda juga dapat menemukan informasi tentang hal-hal berikut:
Menggunakan perintah tambahan yang hanya berlaku untuk bucket yang menonaktifkan akses level bucket yang seragam
Menggunakan karakter pengganti dan flag rekursif
Menggunakan flag
-uuntuk menentukan project yang akan ditagihMenggunakan flag
-muntuk menjalankan operasi secara paralel
| Perintah | Sub-perintah | Izin IAM yang Diperlukan |
|---|---|---|
autoclass |
get |
storage.buckets.get |
autoclass |
set |
storage.buckets.update |
cat |
storage.objects.get |
|
compose |
storage.objects.getstorage.objects.createstorage.objects.delete1 |
|
config |
Tidak ada | |
cors |
get |
storage.buckets.get |
cors |
set |
storage.buckets.update |
cp |
storage.objects.list2storage.objects.getstorage.objects.createstorage.objects.delete3 |
|
defstorageclass |
get |
storage.buckets.get |
defstorageclass |
set |
storage.buckets.update |
du |
storage.objects.get |
|
hash |
storage.objects.get |
|
help |
Tidak ada | |
hmacKeys |
create |
storage.hmacKeys.create |
hmacKeys |
delete |
storage.hmacKeys.delete |
hmacKeys |
get |
storage.hmacKeys.get |
hmacKeys |
list |
storage.hmacKeys.list |
hmacKeys |
update |
storage.hmacKeys.update |
iam |
get |
storage.buckets.getstorage.buckets.getIamPolicy |
iam |
set atau ch |
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
kms |
authorize |
resourceManager.projects.getiam.serviceAccounts.create4cloudkms.cryptoKeys.setIamPolicy |
kms |
encryption |
storage.buckets.get |
kms |
encryption -d |
storage.buckets.getstorage.buckets.update |
kms |
encryption -k |
storage.buckets.getstorage.buckets.updateresourceManager.projects.get5cloudkms.cryptoKeys.setIamPolicy5 |
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 (mencantumkan bucket) |
storage.buckets.liststorage.buckets.getIamPolicy6 |
|
ls (mencantumkan objek) |
storage.objects.liststorage.objects.getIamPolicy7 |
|
ls -b |
storage.buckets.getstorage.buckets.getIamPolicy6 |
|
mb |
storage.buckets.create |
|
mv |
storage.objects.list2 (untuk bucket tujuan)storage.objects.get (untuk objek sumber)storage.objects.create (untuk bucket tujuan)storage.objects.delete (untuk bucket sumber)storage.objects.delete3 (untuk bucket tujuan) |
|
notification |
create |
storage.buckets.updatepubsub.topics.get (untuk project yang berisi topik Pub/Sub)pubsub.topics.create8 (untuk project yang berisi topik Pub/Sub)pubsub.topics.getIamPolicy (untuk topik Pub/Sub yang menerima notifikasi)pubsub.topics.setIamPolicy8 (untuk topik Pub/Sub yang menerima notifikasi) |
notification |
create -s |
storage.buckets.update |
notification |
delete |
storage.buckets.getstorage.buckets.update |
notification |
list |
storage.buckets.get |
notification |
watchbucket |
storage.buckets.update |
notification |
stopchannel |
storage.buckets.update |
pap |
get |
storage.buckets.get |
pap |
set |
storage.buckets.getstorage.buckets.updatestorage.buckets.setIamPolicy |
perfdiag |
storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.liststorage.objects.get |
|
rb |
storage.buckets.delete |
|
requesterpays |
get |
storage.buckets.get |
requesterpays |
set on |
storage.buckets.update |
requesterpays |
set off |
storage.buckets.updateresourcemanager.projects.createBillingAssignment9 |
retention |
clear, event-default, lock, atau set |
storage.buckets.update |
retention |
event atau temp |
storage.objects.getstorage.objects.liststorage.objects.update |
retention |
get |
storage.buckets.get |
rewrite -k |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.delete |
|
rewrite -s |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.update |
|
rm |
storage.objects.delete |
|
rm -a |
storage.objects.deletestorage.objects.list |
|
rm -r (menghapus bucket) |
storage.buckets.deletestorage.objects.deletestorage.objects.list |
|
rpo |
get |
storage.buckets.get |
rpo |
set |
storage.buckets.getstorage.buckets.update |
rsync |
storage.objects.getstorage.objects.createstorage.objects.delete11storage.objects.list |
|
rsync -n |
storage.objects.list (untuk bucket sumber dan tujuan) |
|
setmeta |
storage.objects.getstorage.objects.liststorage.objects.update |
|
signurl |
Tidak ada; tetapi akun layanan yang kuncinya digunakan sebagai bagian dari perintah ini harus memiliki izin untuk melakukan permintaan yang dienkode ke dalam URL yang ditandatangani. | |
stat |
storage.objects.get |
|
test |
Tidak ada | |
ubla |
set |
storage.buckets.getstorage.buckets.update |
ubla |
get |
storage.buckets.get |
update |
Tidak satu pun | |
version |
Tidak ada | |
versioning |
get |
storage.buckets.get |
versioning |
set |
storage.buckets.update |
web |
get |
storage.buckets.get |
web |
set |
storage.buckets.update |
1Izin ini hanya diperlukan jika objek yang disusun memiliki nama yang sama dengan objek yang sudah ada di bucket.
2 Izin ini hanya diperlukan jika tujuan dalam perintah berisi jalur objek.
3Izin ini hanya diperlukan jika Anda menggunakan
upload komposit paralel atau jika Anda tidak menggunakan flag -n, tetapi menyisipkan
objek yang memiliki nama yang sama dengan objek yang sudah ada di bucket.
4Izin ini hanya diperlukan jika Anda tidak memiliki akun layanan Cloud Storage yang dikaitkan dengan project.
5Jika Anda menggunakan gsutil kms encryption -k, dan akun layanan project Anda tidak memiliki izin untuk mengakses kunci Cloud KMS yang diminta, gsutil akan menjalankan gsutil kms authorize guna memberi akun layanan izin yang diperlukan.
6Izin ini hanya diperlukan jika Anda ingin menyertakan kebijakan IAM dalam detailnya.
7Izin ini hanya diperlukan jika Anda ingin kebijakan IAM disertakan dalam detailnya, dan tidak berlaku untuk bucket yang mengaktifkan akses level bucket yang seragam.
8Izin ini tidak diperlukan jika topik sudah ada dan akun layanan yang relevan memiliki akses ke topik tersebut.
9Izin ini hanya diperlukan jika Anda tidak menyertakan project penagihan dalam permintaan. Lihat Persyaratan penggunaan dan akses Pemohon yang Membayar untuk mengetahui informasi selengkapnya.
10Izin ini tidak diperlukan jika perintah tidak mengubah setelan bucket.
11Izin ini hanya diperlukan jika Anda menggunakan flag -d atau jika Anda menyisipkan objek dengan nama yang sama, tetapi data yang berbeda dari objek yang sudah ada di bucket.
Metode terkait ACL
Tabel berikut mencantumkan izin IAM yang diperlukan untuk menjalankan perintah gsutil yang berlaku khusus untuk pengelolaan ACL. Perintah ini hanya berlaku untuk bucket yang telah menonaktifkan Akses level bucket yang seragam.
| Perintah | Subperintah | Resource yang Ditindaklanjuti | Izin IAM yang Diperlukan |
|---|---|---|---|
acl |
get |
Bucket | storage.buckets.getstorage.buckets.getIamPolicy |
acl |
set atau ch |
Bucket | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
acl |
get |
Objek | storage.objects.getstorage.objects.getIamPolicy |
acl |
set atau ch |
Objek | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
cp -a atau cp -p |
Objek | storage.objects.listastorage.objects.getstorage.objects.createstorage.objects.delete bstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
defacl |
get |
Bucket | storage.buckets.getstorage.buckets.getIamPolicy |
defacl |
set atau ch |
Bucket | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
iam |
get |
Objek | storage.objects.getstorage.objects.getIamPolicy |
iam |
set atau ch |
Objek | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
mv -a atau mv -p |
Objek | storage.objects.listastorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.delete bstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
rsync -arsync -p |
Objek | storage.objects.getstorage.objects.createstorage.objects.deletecstorage.objects.liststorage.objects.getIamPolicystorage.objects.setIamPolicy |
a Izin ini hanya diperlukan jika tujuan dalam perintah berisi jalur objek.
bIzin ini hanya diperlukan jika Anda menggunakan
upload komposit paralel, atau jika Anda tidak menggunakan flag -n, tetapi menyisipkan
objek yang memiliki nama yang sama dengan objek yang sudah ada di bucket.
cIzin ini hanya diperlukan jika Anda menggunakan flag -d atau jika Anda menyisipkan objek dengan nama yang sama, tetapi data yang berbeda dari objek yang sudah ada di bucket.
Flag level atas -u
Jika menggunakan flag global -u untuk menentukan project yang harus ditagih untuk permintaan Anda, Anda harus memiliki izin serviceusage.services.use untuk project yang ditentukan. Flag -u digunakan, misalnya, saat mengakses bucket yang mengaktifkan Requester Pays.
Karakter pengganti dan flag rekursif
Jika Anda menggunakan karakter pengganti URI untuk memilih beberapa objek dalam perintah, Anda harus memiliki izin storage.objects.list untuk bucket yang berisi objek. Demikian pula, jika Anda menggunakan karakter pengganti URI untuk memilih beberapa bucket dalam perintah, Anda harus memiliki izin storage.buckets.list untuk project yang berisi bucket.
Jika menggunakan flag rekursif (-r dan -R), Anda harus memiliki izin storage.objects.list untuk bucket yang relevan, selain izin yang diperlukan untuk perintah tertentu yang Anda gunakan.
Flag level atas -m
Biasanya, jika Anda menggunakan perintah gsutil yang beroperasi pada beberapa objek atau bucket, perintah akan gagal pada error pertama. Namun, jika Anda menggunakan flag global -m, gsutil akan mencatat error yang ditemukannya dan melanjutkan operasi.
Misalnya, Anda mencoba menjalankan perintah acl set pada serangkaian objek, tetapi Anda memiliki izin untuk melakukannya pada beberapa objek saja. Jika
Anda tidak menggunakan flag -m, gsutil akan menerapkan ACL dengan berhasil hingga
mencapai objek yang tidak memiliki izin untuk menerapkan ACL. Pada saat itu,
gsutil akan gagal. Jika Anda menggunakan tanda -m, gsutil akan mencatat error yang muncul saat mencoba menerapkan ACL ke objek yang tidak memiliki izin untuk Anda, tetapi akan melanjutkan operasi.
Langkah berikutnya
- Menetapkan peran IAM di level project dan bucket.
- Tinjau peran IAM yang berisi izin Cloud Storage.