Tabel berikut mencantumkan izin Identity and Access Management (IAM)
yang diperlukan untuk menjalankan perintah gcloud storage
. Izin IAM digabung menjadi satu untuk membuat peran. Anda memberikan peran kepada akun utama.
Lihat bagian di bawah tabel untuk catatan tentang penggunaan karakter pengganti, tanda --recursive
, dan tanda --billing-project
.
Perintah | Tanda | Izin IAM yang Diperlukan | |
---|---|---|---|
buckets add-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets create |
storage.buckets.create |
||
buckets delete |
storage.buckets.delete |
||
buckets describe |
storage.buckets.get storage.buckets.getIamPolicy 1 |
||
buckets get-iam-policy |
storage.buckets.get storage.buckets.getIamPolicy |
||
buckets list |
storage.buckets.list storage.buckets.getIamPolicy 1 |
||
buckets notifications create |
storage.buckets.get storage.buckets.update pubsub.topics.get (untuk project yang berisi topik Pub/Sub)pubsub.topics.create 3 (untuk project yang berisi topik Pub/Sub)pubsub.topics.getIamPolicy (untuk notifikasi penerimaan topik Pub/Sub)pubsub.topics.setIamPolicy 3 (untuk notifikasi penerimaan topik Pub/Sub) |
||
buckets notifications create |
--skip-topic-setup |
storage.buckets.get storage.buckets.update |
|
buckets notifications delete |
storage.buckets.get storage.buckets.update |
||
buckets notifications describe |
storage.buckets.get |
||
buckets notifications list |
storage.buckets.get |
||
buckets remove-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets set-iam-policy |
storage.buckets.setIamPolicy storage.buckets.update |
||
buckets update |
storage.buckets.update |
||
buckets update |
--no-requester-pays |
storage.buckets.update resourcemanager.projects.createBillingAssignment 2 |
|
buckets update |
--recovery-point-objective --rpo --[no-]uniform-bucket-level-access |
--[no-]uniform-bucket-level-access |
storage.buckets.get storage.buckets.update |
buckets update |
--clear-pap --clear-public-access-prevention --[no-]pap --[no-]public-access-prevention |
storage.buckets.get storage.buckets.update storage.buckets.setIamPolicy |
|
cat |
storage.objects.get storage.objects.list 13 |
||
cp |
storage.objects.get storage.buckets.get 12storage.objects.list 4 (untuk bucket tujuan)
storage.objects.create storage.objects.delete 5 |
||
du |
storage.objects.list |
||
hash |
storage.objects.get |
||
hmac create |
storage.hmacKeys.create |
||
hmac delete |
storage.hmacKeys.delete |
||
hmac describe |
storage.hmacKeys.get |
||
hmac list |
storage.hmacKeys.list |
||
hmac update |
storage.hmacKeys.update |
||
ls (untuk listingan bucket) |
storage.buckets.list storage.buckets.getIamPolicy 6 |
||
ls (untuk listingan objek) |
storage.objects.get 7storage.objects.list storage.objects.getIamPolicy 8 |
||
ls |
--buckets |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mv |
storage.objects.list 4 (untuk bucket tujuan)storage.objects.get (untuk objek sumber)storage.objects.create (untuk bucket tujuan)storage.objects.delete (untuk bucket sumber)storage.objects.delete 5 (untuk bucket tujuan) |
||
objects compose |
storage.objects.get storage.objects.create storage.objects.delete 9 |
||
objects describe |
storage.objects.get storage.objects.getIamPolicy 8 |
||
objects list |
storage.objects.list storage.objects.getIamPolicy 8 |
||
objects update |
storage.objects.get storage.objects.list storage.objects.update |
||
objects update |
--storage-class --encryption-key --clear-encryption-key |
storage.objects.get storage.objects.list storage.objects.create storage.objects.delete |
|
objects update |
--retention-mode --retain-until --clear-retention |
storage.objects.get storage.objects.list storage.objects.update storage.objects.setRetention storage.objects.overrideUnlockedRetention 11 |
|
restore |
storage.objects.create storage.objects.delete 9storage.objects.restore |
||
restore |
--async |
storage.objects.create storage.objects.delete 14storage.objects.restore storage.buckets.restore |
|
rm |
storage.buckets.delete storage.objects.delete storage.objects.list |
||
rsync |
storage.objects.get storage.objects.create storage.objects.delete 10storage.objects.list |
||
rsync |
--dry-run |
storage.objects.list (untuk bucket sumber dan tujuan) |
|
service-agent |
resourceManager.projects.get |
||
sign-url |
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. |
1Izin ini hanya diperlukan jika Anda ingin menyertakan kebijakan IAM dalam detailnya.
2Izin ini hanya diperlukan jika Anda tidak menyertakan project penagihan dalam permintaan. Lihat Persyaratan penggunaan dan akses Pemohon yang Membayar untuk mengetahui informasi selengkapnya.
3Izin ini tidak diperlukan jika topik sudah ada dan akun layanan yang relevan memiliki akses ke topik tersebut.
4 Izin ini hanya diperlukan jika tujuan dalam perintah berisi jalur objek.
5Izin ini hanya diperlukan jika Anda menggunakan
upload komposit paralel atau jika tidak menggunakan flag --no-clobber
, tetapi
memasukkan objek yang memiliki nama yang sama dengan objek yang sudah ada di
bucket.
6Izin ini hanya diperlukan jika Anda ingin menyertakan kebijakan IAM dalam detailnya.
7Izin ini hanya diperlukan jika Anda menggunakan
tanda --fetch-encrypted-object-hashes
.
8Izin ini hanya diperlukan jika Anda ingin kebijakan IAM disertakan dalam detailnya, dan tidak berlaku untuk bucket dengan akses level bucket seragam.
9Izin ini hanya diperlukan jika operasi membuat objek dengan nama yang sama seperti objek yang sudah ada di bucket.
10Izin ini hanya diperlukan jika Anda menggunakan flag --delete-unmatched-destination-objects
atau jika Anda menyisipkan objek dengan nama yang sama, tetapi datanya berbeda dengan objek yang sudah ada di bucket.
11Izin ini hanya diperlukan jika permintaan juga mengharuskan Anda
menggunakan tanda --override-unlocked-retention
.
12Izin ini diperlukan untuk melakukan upload komposit paralel jika storage/parallel_composite_upload_compatibility_check
properti gcloud CLI ditetapkan ke True
.
13Izin ini hanya diperlukan jika Anda ingin menggunakan ekspresi reguler untuk mengambil objek.
14Izin ini hanya diperlukan jika permintaan menyertakan flag --allow-overwrite
dan operasi membuat objek dengan nama yang sama dengan objek yang sudah ada di bucket.
Flag level atas --billing-project
Jika menggunakan flag global --billing-project
untuk menentukan project yang harus ditagih atas permintaan Anda, Anda harus memiliki izin serviceusage.services.use
untuk project yang ditentukan. Flag --billing-project
digunakan, misalnya, saat mengakses bucket dengan Requester Pays diaktifkan.
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 satu perintah, Anda harus memiliki izin storage.buckets.list
untuk project yang berisi bucket tersebut.
Jika menggunakan tanda --recursive
, Anda harus memiliki izin storage.objects.list
untuk bucket yang relevan, selain izin yang diperlukan untuk perintah tertentu yang Anda gunakan.
Langkah selanjutnya
- Memberikan peran IAM pada level project dan bucket.
- Tinjau peran IAM yang berisi izin Cloud Storage.