Tabel berikut mencantumkan izin Identity and Access Management (IAM) yang diperlukan untuk menjalankan setiap perintah gsutil Cloud Storage pada 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
-u
guna menentukan project untuk penagihanMenggunakan flag
-m
untuk menjalankan operasi secara paralel
Perintah | Subperintah | Resource yang Ditindaklanjuti | Izin IAM yang Diperlukan |
---|---|---|---|
autoclass |
get |
Bucket | storage.buckets.get |
autoclass |
set |
Bucket | storage.buckets.update |
cat |
Objek | storage.objects.get |
|
compose |
Objek | storage.objects.get storage.objects.create storage.objects.delete 1 |
|
config |
Tidak ada | ||
cors |
get |
Bucket | storage.buckets.get |
cors |
set |
Bucket | storage.buckets.update |
cp |
Objek | storage.objects.list 2storage.objects.get storage.objects.create storage.objects.delete 3 |
|
defstorageclass |
get |
Bucket | storage.buckets.get |
defstorageclass |
set |
Bucket | storage.buckets.update |
du |
Objek | storage.objects.get |
|
hash |
Objek | storage.objects.get |
|
help |
Tidak ada | ||
hmacKeys |
create |
Kunci HMAC | storage.hmacKeys.create |
hmacKeys |
delete |
Kunci HMAC | storage.hmacKeys.delete |
hmacKeys |
get |
Kunci HMAC | storage.hmacKeys.get |
hmacKeys |
list |
Kunci HMAC | storage.hmacKeys.list |
hmacKeys |
update |
Kunci HMAC | storage.hmacKeys.update |
iam |
get |
Bucket | storage.buckets.get storage.buckets.getIamPolicy |
iam |
set atau ch |
Bucket | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
kms |
authorize |
Project | resourceManager.projects.get iam.serviceAccounts.create 4cloudkms.cryptoKeys.setIamPolicy |
kms |
encryption |
Bucket | storage.buckets.get |
kms |
encryption -d |
Bucket | storage.buckets.get storage.buckets.update |
kms |
encryption -k |
Bucket, Project5 | storage.buckets.get storage.buckets.update resourceManager.projects.get 5cloudkms.cryptoKeys.setIamPolicy 5 |
kms |
serviceaccount |
Project | resourceManager.projects.get |
label |
get |
Bucket | storage.buckets.get |
label |
set/ch |
Bucket | storage.buckets.update |
lifecycle |
get |
Bucket | storage.buckets.get |
lifecycle |
set/ch |
Bucket | storage.buckets.update |
logging |
get |
Bucket | storage.buckets.get |
logging |
set |
Bucket | storage.buckets.update |
ls |
Project | storage.buckets.list storage.buckets.getIamPolicy 6 |
|
ls |
Bucket, Objek | storage.objects.list storage.objects.getIamPolicy 7 |
|
ls -b |
Bucket | storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mb |
Bucket | storage.buckets.create |
|
mv |
Objek | storage.objects.list 2 (untuk bucket tujuan)storage.objects.get (untuk objek sumber)storage.objects.create (untuk bucket tujuan)storage.objects.delete (untuk bucket sumber)storage.objects.delete 3 (untuk bucket tujuan) |
|
notification |
create |
Bucket | storage.buckets.update pubsub.topics.get (untuk project yang berisi topik Pub/Sub)pubsub.topics.create 8 (untuk project yang berisi topik Pub/Sub)pubsub.topics.getIamPolicy (untuk topik Pub/Sub yang menerima notifikasi) pubsub.topics.setIamPolicy 8 (untuk topik Pub/Sub yang menerima notifikasi) |
notification |
create -s |
Bucket | storage.buckets.update |
notification |
delete |
Bucket | storage.buckets.get storage.buckets.update |
notification |
list |
Bucket | storage.buckets.get |
notification |
watchbucket |
Bucket | storage.buckets.update |
notification |
stopchannel |
Bucket | storage.buckets.update |
pap |
get |
Bucket | storage.buckets.get |
pap |
set |
Bucket | storage.buckets.get storage.buckets.update storage.buckets.setIamPolicy |
perfdiag |
Bucket | storage.buckets.get storage.objects.create storage.objects.delete storage.objects.list storage.objects.get |
|
rb |
Bucket | storage.buckets.delete |
|
requesterpays |
get |
Bucket | storage.buckets.get |
requesterpays |
set on |
Bucket | storage.buckets.update |
requesterpays |
set off |
Bucket | storage.buckets.update resourcemanager.projects.createBillingAssignment 9 |
retention |
clear , event-default , lock , atau set |
Bucket | storage.buckets.update |
retention |
event atau temp |
Objek | storage.objects.get storage.objects.list storage.objects.update |
retention |
get |
Bucket | storage.buckets.get |
rewrite -k |
Objek | storage.objects.list storage.objects.get storage.objects.create storage.objects.delete |
|
rewrite -s |
Objek | storage.objects.list storage.objects.get storage.objects.create storage.objects.delete storage.objects.update |
|
rm |
Bucket | storage.buckets.delete storage.objects.delete storage.objects.list |
|
rm |
Objek | storage.objects.delete storage.objects.list |
|
rpo |
get |
Bucket | storage.buckets.get |
rpo |
set |
Bucket | storage.buckets.get storage.buckets.update |
rsync |
Objek | storage.objects.get storage.objects.create storage.objects.delete 11storage.objects.list |
|
rsync -n |
Objek | storage.objects.list (untuk bucket sumber dan tujuan) |
|
setmeta |
Objek | storage.objects.get storage.objects.list storage.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 |
Objek | storage.objects.get |
|
test |
Tidak ada | ||
ubla |
set |
Bucket | storage.buckets.get storage.buckets.update |
ubla |
get |
Bucket | storage.buckets.get |
update |
Tidak ada | ||
version |
Tidak ada | ||
versioning |
get |
Bucket | storage.buckets.get |
versioning |
set |
Bucket | storage.buckets.update |
web |
get |
Bucket | storage.buckets.get |
web |
set |
Bucket | 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.get storage.buckets.getIamPolicy |
acl |
set atau ch |
Bucket | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
acl |
get |
Objek | storage.objects.get storage.objects.getIamPolicy |
acl |
set atau ch |
Objek | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
cp -a atau cp -p |
Objek | storage.objects.list astorage.objects.get storage.objects.create storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
defacl |
get |
Bucket | storage.buckets.get storage.buckets.getIamPolicy |
defacl |
set atau ch |
Bucket | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
iam |
get |
Objek | storage.objects.get storage.objects.getIamPolicy |
iam |
set atau ch |
Objek | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
mv -a atau mv -p |
Objek | storage.objects.list astorage.objects.get storage.objects.create storage.objects.delete storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
rsync -a rsync -p |
Objek | storage.objects.get storage.objects.create storage.objects.delete cstorage.objects.list storage.objects.getIamPolicy storage.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
guna 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 Pemohon yang Membayar.
Karakter pengganti dan flag rekursif
Jika menggunakan karakter pengganti URI untuk memilih beberapa objek dalam suatu perintah, Anda harus memiliki izin storage.objects.list
untuk bucket yang berisi objek. Demikian pula, jika menggunakan karakter pengganti URI untuk memilih beberapa bucket dalam sebuah perintah, Anda harus memiliki izin storage.buckets.list
untuk project yang berisi bucket tersebut.
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 menangani beberapa objek atau bucket, perintah akan gagal saat terjadi 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 berhasil menerapkan ACL hingga mencapai objek yang izinnya tidak Anda miliki untuk menerapkan ACL. Pada saat itu, gsutil akan gagal. Jika Anda menggunakan flag -m
, gsutil akan mencatat error yang muncul saat mencoba menerapkan ACL ke objek yang izinnya tidak Anda miliki, tetapi melanjutkan operasinya.
Langkah berikutnya
- Menetapkan peran IAM di level project dan bucket.
- Tinjau peran IAM yang berisi izin Cloud Storage.