Halaman ini menjelaskan cara mengontrol akses ke bucket dan objek menggunakan Daftar Kontrol Akses (ACL). ACL adalah mekanisme yang dapat Anda gunakan untuk menentukan siapa yang memiliki akses ke bucket dan objek Anda, serta tingkat akses yang mereka miliki.
Lihat ringkasan ACL untuk mempelajari lebih lanjut apakah Anda harus menggunakan ACL untuk mengontrol akses ke resource Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat dan mengelola ACL, minta
administrator untuk memberi Anda peran IAM Storage Admin (roles/storage.admin
) di bucket yang berisi objek yang ingin Anda buat dan kelola ACL-nya.
Peran bawaan ini berisi izin yang diperlukan untuk membuat dan mengelola ACL. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
storage.buckets.get
storage.buckets.list
- Izin ini hanya diperlukan untuk menggunakan Konsol Google Cloud untuk melakukan tugas di halaman ini.
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Anda juga bisa mendapatkan izin ini dengan peran khusus.
Untuk informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Menetapkan atau mengubah ACL
Konsol
Buka browser Cloud Storage di konsol Google Cloud.
Buka browser Cloud StorageDari daftar bucket, klik nama bucket yang berisi objek yang ACL-nya ingin Anda ubah.
Klik nama objek yang ACL-nya ingin Anda tetapkan atau ubah.
Klik Edit akses.
Dialog izin dengan ACL objek saat ini akan terbuka.
Klik + Tambahkan entri.
Pilih jenis Entitas yang akan diberi izin.
Entity menentukan jenis item yang mendapatkan izin (misalnya, pengguna atau grup). Lihat Cakupan Kontrol Akses untuk mengetahui daftar nilai yang didukung untuk Entity.
Masukkan nilai di bagian Nama.
Nama mengidentifikasi pengguna, grup, atau jenis entity tertentu lainnya. Lihat Cakupan Kontrol Akses untuk mengetahui daftar nilai yang didukung untuk Nama.
Bersama-sama, Entity dan Nama menentukan untuk siapa izin berlaku.
Pilih nilai di Akses.
Akses menentukan izin yang ingin Anda tetapkan pada objek. Lihat Izin Kontrol Akses untuk mengetahui daftar nilai yang didukung untuk Akses.
Klik Simpan.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Command line
Untuk menambahkan, mengubah, atau menghapus pemberian izin tertentu pada objek, gunakan perintah objects update
dengan flag yang relevan:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME FLAG
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek dengan penerapan modifikasi. Misalnya,example-travel-maps
.OBJECT_NAME
adalah nama objek yang diterapkan modifikasi. Contoh,paris.jpg
.FLAG
adalah salah satu dari berikut ini:--add-acl-grant
, beserta pemberian izin yang ingin Anda tambahkan atau ubah. Misalnya,--add-acl-grant=entity=user-jane@gmail.com,role=READER
.--remove-acl-grant
, beserta entity yang aksesnya ingin Anda hapus. Misalnya,--remove-acl-grant=user-jane@gmail.com
.
Untuk mengganti semua ACL untuk objek:
Menentukan ACL dalam file berformat JSON atau YAML.
Gunakan perintah
objects update
dengan flag--acl-file
:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --acl-file=FILE_LOCATION
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek dengan penerapan ACL. Misalnya,example-travel-maps
.OBJECT_NAME
adalah nama objek dengan penerapan ACL. Contoh,paris.jpg
.FILE_LOCATION
adalah jalur lokal ke file yang berisi ACL yang telah Anda tentukan. Misalnya,Desktop/acls.json
.
Isi contoh file ACL ditunjukkan di bawah ini. ACL ini memberikan
izin kepada pemilik project 867489160491
beserta pengguna jane@gmail.com
OWNER
untuk objek paris.jpg
, dan memberikan izin kepada anggota
grup gs-announce
READER
untuk objek ini:
[ { "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" }, }, { "entity": "user-jane@gmail.com", "email": "jane@gmail.com", "role": "OWNER" }, { "entity": "group-gs-announce@googlegroups.com", "email": "gs-announce@googlegroups.com", "role": "READER" } ]
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut akan menambahkan ACL ke objek:
Contoh berikut akan menghapus ACL dari objek:
REST API
JSON API
Saat membuat objek, Anda dapat menentukan properti acl[]
dalam isi permintaan atau parameter kueri predefinedAcl
dalam permintaan insert. Untuk objek yang ada, tentukan properti acl[]
atau parameter kueri predefinedAcl
dalam permintaan patch atau update.
Untuk definisi properti ACL objek, lihat resource ObjectAccessControls
.
Tentukan ACL dalam file.
Misalnya, jika ACL memberikan izin kepada pemilik project
867489160491
dan penggunajane@gmail.com
OWNER
, serta memberikan izin kepada anggotags-announce
grupREADER
, Anda dapat memiliki file bernamaacls.json
dengan konten berikut:{ "acl": [ { "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" } }, { "entity": "user-jane@gmail.com", "role": "OWNER", "email": "jane@gmail.com" }, { "entity": "group-gs-announce@googlegroups.com", "role": "READER", "email": "gs-announce@googlegroups.com" } ] }
Kirim permintaan patch dengan file JSON, lalu tentukan objek untuk mengaktifkan ACL.
Misalnya, perintah cURL berikut menerapkan payload JSON dari dokumen acls.json
ke objek bernama paris.jpg
di example-travel-maps
bucket:
curl -X PATCH --data @acls.json -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg
XML API
Di XML API, Anda menggunakan ACL dalam format XML. Anda harus melampirkan dokumen XML ke isi permintaan untuk mengubah ACL bucket dan objek. Dokumen XML ditampilkan saat Anda mendapatkan ACL bucket dan objek. Dokumen XML berisi masing-masing bucket atau entri ACL objek.
Setelah membuat bucket dengan permintaan Bucket
PUT
, gunakan permintaan Bucket PUT kedua dengan parameter?acl
untuk mengubah ACL bucket.Setelah mengupload objek dengan permintaan Objek
PUT
, ubah ACL dengan permintaan PUT lainnya menggunakan parameter?acl
atau header permintaanx-googl-acl
.
Misalnya, perintah cURL berikut menerapkan payload XML dari dokumen acls.xml
ke objek bernama paris.jpg
di example-travel-maps
bucket:
curl -X PUT --data-binary @acls.xml \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Gunakan sintaksis ACL berikut untuk dokumen XML:
Elemen | Deskripsi |
---|---|
AccessControlList |
Container untuk elemen Entries dan Owner . |
Owner |
Container untuk elemen DisplayName dan ID . Elemen ini tidak diperlukan untuk objek karena objek selalu dimiliki oleh pengguna yang menguploadnya. Elemen ini digunakan saat Anda menggunakan sintaksis Amazon S3 ACL dalam skenario migrasi. Amazon Simple Storage ServiceTM dan Amazon S3TM adalah merek dagang Amazon.com, Inc. atau afiliasinya di Amerika Serikat dan/atau negara lainnya. |
ID |
ID Cloud Storage pemilik bucket. |
DisplayName |
Tidak diterapkan. Nilainya selalu berupa string kosong. |
Entries |
Container untuk nol elemen Entry atau lebih. |
Entry |
Container untuk elemen Scope dan Permission . Entry hanya boleh berisi satu elemen Scope dan satu elemen Permission . |
Scope |
Container untuk elemen ID , EmailAddress , atau Domain yang menentukan cakupan ACL. Elemen ini harus memiliki atribut type yang berisi salah satu nilai berikut: UserByID , UserByEmail , GroupByID , GroupByEmail , GroupByDomain , AllUsers , atau AllAuthenticatedUsers . |
ID |
ID untuk penerima hibah saat entri izin ditentukan oleh ID. |
EmailAddress |
ID email untuk penerima hibah saat entri izin ditentukan melalui email. |
Domain |
ID domain untuk penerima hibah saat entri izin ditentukan oleh domain. |
Name |
Elemen opsional yang dapat ditentukan atau yang dapat otomatis ditambahkan jika cakupannya adalah UserByEmail atau GroupByEmail . |
Permission |
Izin diberikan READ , WRITE , atau FULL_CONTROL . |
Saat bekerja dengan ACL menggunakan XML API:
- Anda hanya boleh menggunakan format XML yang dijelaskan di atas.
Anda tidak dapat menetapkan cakupan duplikat.
Anda dapat memiliki banyak entri dalam XML ACL, tetapi tidak dapat memiliki entri dengan cakupan duplikat. Misalnya, Anda tidak dapat memiliki dua entri dengan elemen cakupan
jane@example.com
yang sama.
Contoh berikut menunjukkan entri ACL bucket yang berbeda:
<?xml version="1.0" encoding="UTF-8"?> <AccessControlList> <Owner> <ID>00b4903a9721...</ID> </Owner> <Entries> <Entry> <Scope type="GroupById"> <ID>00b4903a9722...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="GroupByDomain"> <Domain>example.com</Domain> </Scope> <Permission>READ</Permission> </Entry> <Entry> <Scope type="GroupByEmail"> <EmailAddress>gs-announce@googlegroups.com</EmailAddress> </Scope> <Permission>READ</Permission> </Entry> <Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>jane</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> <Entry> <Scope type="AllAuthenticatedUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Menetapkan elemen Nama di XML ACL
Saat mengambil ACL dari bucket atau objek, Anda mungkin melihat elemen <Name>
tambahan yang ditambahkan ke beberapa entri Anda. Misalnya, Anda mungkin melihat entri yang terlihat seperti berikut:
<Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>Jane</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry>
Elemen <Name>
opsional ini diisi dalam dua situasi:
Jika ACL bucket atau objek menyertakan
<Name>
sebagai elemen.Saat menetapkan ACL, Anda dapat memilih untuk menyertakan elemen
<Name>
bersama entri ACL Anda. Anda dapat memberikan nilai apa pun dalam elemen<Name>
, dan Cloud Storage akan mengingat nilai ini hingga ACL dihapus atau diganti. Pendekatan ini berguna jika Anda menggunakan ID yang sulit diidentifikasi.Jika cakupan
UserByEmail
atauGroupByEmail
berisi profil Google publik.Jika Anda menggunakan salah satu cakupan tersebut, tetapi tidak memberikan elemen
<Name>
, Cloud Storage akan memeriksa apakah pengguna atau Google Grup yang terkait dengan alamat email tersebut memiliki profil Google publik dengan nama publik. Jika demikian, Cloud Storage secara otomatis mengisi elemen<Name>
dengan nama publik.
Menerapkan ACL yang telah ditentukan
Daripada menentukan seluruh ACL satu per satu entri seperti yang ditunjukkan di atas, Anda dapat menggunakan ACL yang telah ditetapkan, yang akan otomatis menerapkan sejumlah entri yang disesuaikan dengan skenario tertentu. Anda dapat menerapkan ACL yang telah ditetapkan ke bucket atau objek dengan menggunakan Google Cloud CLI, JSON API, atau XML API.
Pada objek baru
Untuk menerapkan ACL yang telah ditetapkan ke objek selama upload objek:
Konsol
Anda tidak dapat menerapkan ACL yang telah ditetapkan sebelumnya menggunakan Konsol Google Cloud. Sebagai gantinya, gunakan gcloud storage
.
Command line
Gunakan perintah gcloud storage cp
dengan flag --predefined-acl
:
gcloud storage cp OBJECT gs://BUCKET_NAME --predefined-acl=PREDEFINED_ACL
Misalnya, untuk menerapkan bucketOwnerRead
ACL yang telah ditetapkan saat mengupload objek paris.jpg
ke bucket example-travel-maps
:
gcloud storage cp paris.jpg gs://example-travel-maps --predefined-acl=bucketOwnerRead
REST API
JSON API
Gunakan parameter string kueri predefinedAcl
dalam permintaan insert untuk menerapkan ACL yang telah ditentukan sebelumnya.
Misalnya, untuk menerapkan bucketOwnerRead
ACL yang telah ditetapkan saat mengupload objek paris.jpg
ke bucket example-travel-maps
:
curl -X POST --data-binary @paris.jpg -H "Content-Type: image/jpeg" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/upload/storage/v1/b/example-travel-maps/o?name=paris.jpg&predefinedAcl=bucketOwnerRead"
XML API
Gunakan header x-goog-acl
dalam permintaan Put Object untuk menerapkan ACL yang telah ditetapkan.
Misalnya, untuk menerapkan bucket-owner-read
ACL yang telah ditetapkan saat mengupload objek paris.jpg
ke bucket example-travel-maps
:
curl -X PUT --upload-file paris.jpg -H "x-goog-acl: bucket-owner-read" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg
Pada bucket atau objek yang ada
Anda juga dapat menerapkan ACL yang telah ditetapkan ke bucket atau objek yang ada. Hal ini berguna jika Anda ingin beralih dari satu ACL yang telah ditetapkan ke ACL lain, atau Anda ingin mengupdate ACL kustom ke ACL yang telah ditetapkan.
Konsol
Anda tidak dapat menerapkan ACL yang telah ditetapkan sebelumnya menggunakan Konsol Google Cloud. Sebagai gantinya, gunakan gcloud storage
.
Command line
Gunakan perintah objects update
dengan flag --predefined-acl
:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --predefined-acl=PREDEFINED_ACL_NAME
Misalnya, untuk menerapkan private
ACL yang telah ditetapkan ke objek paris.jpg
dalam bucket example-travel-maps
:
gcloud storage objects update gs://example-travel-maps/paris.jpg --predefined-acl=private
REST API
JSON API
Gunakan parameter string kueri predefinedAcl
, dan tentukan properti acl
kosong dalam permintaan patch untuk menerapkan ACL yang sudah ditentukan sebelumnya.
Misalnya, untuk menerapkan private
ACL yang telah ditetapkan ke objek paris.jpg
dalam bucket example-travel-maps
:
curl -X PATCH --data '{"acl": []}' -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?predefinedAcl=private
XML API
Gunakan header x-goog-acl
dengan parameter string kueri acl
dalam
permintaan Put Object, tetapi jangan sertakan dokumen XML dalam
permintaan Anda.
Misalnya, untuk menerapkan private
ACL yang telah ditetapkan ke objek paris.jpg
dalam bucket example-travel-maps
:
curl -X PUT -H "Content-Length: 0" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-acl: private" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Menetapkan ACL objek default
Untuk menghindari penetapan ACL setiap kali membuat objek baru, Anda dapat menetapkan ACL objek default pada bucket. Setelah Anda melakukannya, setiap objek baru yang ditambahkan ke bucket tersebut, yang tidak secara eksplisit menerapkan ACL, akan menerapkan default ke objek tersebut. Misalnya, Anda mungkin ingin menentukan bahwa hanya sekelompok pengguna tertentu yang memiliki akses ke sebagian besar objek di bucket tertentu. Anda dapat mengubah ACL objek default, lalu menambahkan objek ke bucket. Objek yang ditambahkan ini memiliki ACL objek default yang Anda tentukan secara otomatis diterapkan ke objek tersebut; namun, Anda dapat memberikan ACL yang berbeda kepada objek tertentu, dalam hal ini objek tersebut tidak menerapkan ACL default ke objek tersebut.
Untuk melihat dan mengubah ACL objek default untuk bucket:
Konsol
Anda tidak dapat menetapkan ACL objek default menggunakan Konsol Google Cloud. Sebagai gantinya, gunakan gcloud storage
.
Command line
Gunakan perintah
buckets describe
dengan flag--format
untuk mengambil ACL objek default untuk bucket:gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_acl)"
Dengan
BUCKET_NAME
adalah nama bucket yang ACL objek default-nya ingin Anda lihat. Contoh,my-bucket
.Gunakan perintah
buckets update
dengan flag yang diinginkan untuk mengubah ACL objek default untuk bucket:gcloud storage buckets update gs://BUCKET_NAME FLAG
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang ACL objek default-nya ingin Anda ubah. Misalnya,my-bucket
.FLAG
adalah salah satu dari berikut ini:--add-default-object-acl-grant
dan pemberian yang ingin Anda tambahkan ke ACL objek default keseluruhan untuk bucket.--default-object-acl-file
dan jalur ke file lokal yang menentukan ACL objek default baru untuk bucket.--predefined-default-object-acl
dan nama ACL objek yang telah ditentukan sebelumnya dan Anda ingin mengganti ACL objek default yang ada untuk bucket.--remove-default-object-acl-grant
dan entity yang ingin Anda hapus dari keseluruhan ACL objek default untuk bucket.
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mencetak ACL objek default untuk bucket:
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menambahkan ACL objek default ke bucket:
Contoh berikut menghapus ACL objek default dari bucket:
REST API
JSON API
Ambil ACL objek default dengan permintaan GET. Contoh:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?projection=full
Gunakan permintaan patch untuk mengganti ACL objek default. Misalnya, permintaan berikut mengganti ACL objek default dengan ACL yang ditentukan dalam
defacls.json
untuk bucketexample-travel-maps
:curl -X PATCH --data @defacls.json -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps
Contoh
defacls.json
:{ "defaultObjectAcl": [ { "email": "jane@gmail.com", "entity": "user-jane@gmail.com", "role": "READER" } ] }
XML API
Ambil ACL objek default dengan permintaan
GET
yang dicakupkan ke bucket Anda dan parameter?defaultObjectAcl
. Contoh:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
Gunakan permintaan
PUT
yang dicakupkan ke bucket Anda dengan parameter?defaultObjectAcl
untuk mengganti ACL objek default dengan ACL yang ditentukan dalamacls.xml
. Contoh:curl -X PUT --data-binary @acls.xml -H "Authorization: Bearer $(gcloud auth print-access-token)" \ http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
Contoh
acls.xml
:<AccessControlList> <Entries> <Entry> <Permission>
FULL_CONTROL
</Permission> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> </Scope> </Entry> </Entries> </AccessControlList>
Sintaksis ACL dibahas dalam Menetapkan ACL. Anda juga dapat menentukan ACL yang telah ditetapkan sebagai ACL objek default.
Untuk menetapkan ACL objek default bagi bucket ke ACL yang telah ditentukan:
Konsol
Anda tidak dapat menetapkan ACL objek default menggunakan Konsol Google Cloud. Sebagai gantinya, gunakan gcloud storage
.
Command line
Gunakan perintah buckets update
dengan
flag --predefined-default-object-acl
:
gcloud storage buckets update gs://BUCKET_NAME --predefined-default-object-acl=PREDEFINED_ACL
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang ACL objek default-nya ingin Anda ubah. Misalnya,my-bucket
.PREDEFINED_ACL
adalah nama ACL valid yang telah ditetapkan. Contoh,projectPrivate
.
REST API
JSON API
Gunakan permintaan PUT dan parameter predefinedAcl
.
Contoh:
curl -X PUT -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?predefinedAcl=private
XML API
Gunakan permintaan PUT
yang dicakupkan ke bucket Anda dengan parameter ?defaultObjectAcl
dan header x-goog-acl
.
Contoh:
curl -X PUT -H "x-goog-acl: project-private" -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
ACL objek default untuk bucket yang baru dibuat:
Contoh berikut menunjukkan ACL objek default yang diterapkan secara otomatis ke bucket yang baru dibuat saat Anda tidak menentukan ACL objek default Anda sendiri sebagai bagian dari permintaan. Untuk melihat apakah ACL objek default bucket Anda telah diubah, bandingkan ACL objek default bucket Anda saat ini dengan contoh di bawah ini.
Konsol
Anda tidak dapat menggunakan ACL objek default menggunakan Konsol Google Cloud.
Sebagai gantinya, gunakan gcloud storage
.
Command line
Pada contoh di bawah, project ID-nya adalah "123412341234"; project ID Anda akan berbeda.
defaultObjectAcl: – entity: project-owners-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: owners role: OWNER – entity: project-editors-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: editors role: OWNER – entity: project-viewers-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: viewers role: READER
REST API
JSON API
Pada contoh di bawah, project ID-nya adalah "123412341234"; project ID Anda akan berbeda.
"defaultObjectAcl": [ { "kind": "storage#objectAccessControl", "entity": "project-owners-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "owners" } }, { "kind": "storage#objectAccessControl", "entity": "project-editors-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "editors" } }, { "kind": "storage#objectAccessControl", "entity": "project-viewers-123412341234", "role": "READER", "projectTeam": { "projectNumber": "123412341234", "team": "viewers" } } ]
XML API
Pada contoh di bawah, ID peran project dimulai dengan "00b4903a97..."; project ID Anda akan berbeda.
<?xml version='1.0' encoding='UTF-8'?> <AccessControlList> <Entries> <Entry> <Scope type='GroupById'> <ID>00b4903a9721...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type='GroupById'> <ID>00b4903a9722...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type='GroupById'> <ID>00b4903a9723...</ID> </Scope> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Perlu diperhatikan bahwa ACL objek default untuk bucket yang baru dibuat setara dengan ACL projectPrivate
yang telah ditetapkan.
Mengambil ACL
Untuk mendapatkan ACL resource yang ada:
Konsol
Buka browser Cloud Storage di konsol Google Cloud.
Buka browser Cloud StorageBuka objek yang ACL-nya ingin Anda lihat.
Pilih Akses edit dari menu drop-down untuk objek tersebut.
Anda akan melihat dialog izin dengan izin objek.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Command line
Gunakan perintah
objects describe
dengan flag--format
untuk mengambil ACL objek:gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(acl)"
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek yang ACL-nya ingin Anda lihat. Misalnya,my-bucket
.OBJECT_NAME
adalah nama objek yang ACL-nya ingin Anda lihat. Contoh,paris.jpg
.
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut mendapatkan ACL objek:
REST API
JSON API
Pastikan Anda memiliki izin
OWNER
pada objek.Ambil ACL objek dengan permintaan
GET
.ACL objek ditampilkan dalam format JSON, yang dilampirkan ke isi respons.
Misalnya, untuk menampilkan ACL untuk objek paris.jpg
di bucket example-travel-maps
:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?projection=full
Anda akan melihat respons yang terlihat seperti:
{ "kind": "storage#object", "id": "example-travel-maps/paris.jpg/1412805837131000", "selfLink": "https://www.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg", "name": "paris.jpg", "bucket": "example-travel-maps", ... "acl": [ { ... "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" }, ... }, { ... "entity": "user-jane@gmail.com", "role": "OWNER", "email": "jane@gmail.com", ... }, { ... "entity": "group-gs-announce@googlegroups.com", "role": "READER", "email": "gs-announce@googlegroups.com", ... } ], "owner": { "entity": "user-jane@gmail.com" }, ... }
Anda juga dapat menggunakan metode GET
resource objectAccessControls
untuk menampilkan setiap entri dalam ACL objek.
XML API
Pastikan Anda memiliki izin
FULL_CONTROL
pada bucket atau objek.Ambil ACL bucket atau objek dengan menggunakan parameter string kueri
acl
dalam permintaan GET Object.
ACL dijelaskan dalam XML, yang dilampirkan pada isi respons.
Misalnya, untuk menampilkan ACL untuk objek paris.jpg
di bucket example-travel-maps
:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Anda akan melihat respons yang terlihat seperti:
<?xml version="1.0" encoding="UTF-8"?> <AccessControlList> <Owner> <ID>84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46</ID> <Name>Owner Name</Name> </Owner> <Entries> <Entry> <Scope type="UserById"> <ID>84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46</ID> <Name>Name</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>Jane</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="GroupByEmail"> <EmailAddress>gs-announce@googlegroups.com</EmailAddress> </Scope> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Anda juga dapat menggunakan metode GET
JSON dari resource ObjectAccessControls
untuk menampilkan entri ACL tertentu.
Langkah berikutnya
- Pelajari ACL lebih lanjut.
- Pelajari cara menyederhanakan kontrol akses menggunakan akses level bucket yang seragam.
- Pelajari praktik terbaik saat menggunakan ACL.