Halaman ini menunjukkan cara membuat objek yang Anda miliki dapat dibaca oleh semua orang di internet publik dan cara menghapus akses publik dari bucket Anda. Untuk mempelajari cara mengakses data yang telah dipublikasikan, lihat Mengakses Data Publik.
Saat sebuah objek dibagikan secara publik, setiap pengguna yang memiliki pengetahuan tentang URI objek dapat mengakses objek tersebut selama objek tersebut bersifat publik.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan agar objek dapat dibaca oleh publik, minta administrator untuk memberi Anda peran berikut untuk bucket yang berisi data yang ingin Anda jadikan publik:
Untuk membuat semua objek dalam bucket dapat dibaca oleh publik: Storage Admin (
roles/storage.admin
)Untuk membuat setiap objek dapat dibaca oleh publik: Storage Object Admin (
roles/storage.objectAdmin
)- Jika berencana menggunakan konsol Trusted Cloud , Anda memerlukan peran Storage Admin (
roles/storage.admin
), bukan peran Storage Object Admin.
- Jika berencana menggunakan konsol Trusted Cloud , Anda memerlukan peran Storage Admin (
Untuk menghapus akses publik dari semua objek dalam bucket: Storage Admin (
roles/storage.admin
)
Peran ini berisi izin yang diperlukan untuk membuat objek menjadi publik. Untuk melihat izin yang diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Izin berikut hanya diperlukan untuk menggunakan konsolTrusted Cloud guna melakukan tugas di halaman ini:
storage.buckets.list
storage.objects.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran bawaan atau peran khusus lainnya.
Untuk mendapatkan petunjuk tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Membuat semua objek dalam bucket dapat dibaca oleh publik
Agar semua objek dalam bucket dapat dibaca oleh semua orang di internet publik, berikan peran Storage Object Viewer (roles/storage.objectViewer
) kepada akun utama allUsers
:
Konsol
- Di Trusted Cloud konsol, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.
Pilih tab Permissions di dekat bagian atas halaman.
Di bagian Permissions, klik tombol
Grant access.Dialog Grant access akan muncul.
Di kolom New principals, masukkan
allUsers
.Di drop-down Select a role, masukkan
Storage Object Viewer
di kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
Setelah akses publik diberikan, tombol Copy URL akan muncul untuk setiap objek di kolom public access. Anda dapat mengklik tombol ini untuk mendapatkan URL publik bagi objek tersebut. URL publik berbeda dengan link yang Anda dapatkan dari mengklik kanan objek secara langsung. Kedua link memberikan akses ke objek, tetapi URL publik berfungsi tanpa pengguna harus login ke akun pengguna. Lihat Endpoint permintaan untuk informasi selengkapnya.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Trusted Cloud konsol, lihat Pemecahan masalah.
Untuk mempelajari cara mengatasi error kebijakan organisasi dan error izin, lihat Memecahkan masalah saat memublikasikan data.Command line
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Di lingkungan pengembangan Anda, jalankan perintah
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Dengan
BUCKET_NAME
adalah nama bucket yang objeknya ingin Anda tampilkan kepada publik. Contoh,my-bucket
.Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Gunakan
cURL
untuk memanggil JSON API dengan permintaanPUT
Bucket:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 2.BUCKET_NAME
adalah nama bucket dengan objek yang ingin Anda tampilkan kepada publik. Contoh,my-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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Terraform
Anda dapat menggunakan resource Terraform untuk menjadikan semua objek dalam bucket bersifat publik.
REST API
JSON API
XML API
Anda tidak bisa membuat agar semua objek dalam bucket dapat dibaca secara publik dengan
XML API. Gunakan konsol Trusted Cloud atau gcloud storage
.
Membuat sebagian bucket dapat dibaca oleh publik
Gunakan folder terkelola untuk mengontrol akses ke objek yang awalan namanya cocok dengan nama folder terkelola. Misalnya, folder terkelola bernama my-folder
dapat digunakan untuk mengontrol akses ke objek bernama my-folder/cats.jpg
dan
my-folder/dogs.jpg
.
Untuk membuat objek tersebut dapat diakses secara publik, pertama-tama buat folder terkelola, lalu tetapkan kebijakan IAM pada folder yang memberikan peran Storage Object Viewer (roles/storage.objectViewer
) kepada allUsers
:
Konsol
- Di Trusted Cloud konsol, buka halaman Bucket Cloud Storage.
Klik nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik.
Buat folder menggunakan langkah-langkah berikut:
Klik tombol Buat folder.
Masukkan Nama untuk folder. Setelah folder dikonversi menjadi folder terkelola, objek yang namanya diawali dengan nama ini akan tunduk pada peran IAM yang ditetapkan di folder.
Klik Buat.
Konversi folder menjadi folder terkelola, menggunakan langkah-langkah berikut:
Di panel yang menampilkan isi bucket, temukan nama folder yang Anda buat, lalu klik ikon Opsi lainnya
.Klik Edit akses.
Di jendela yang muncul, klik Aktifkan.
Tambahkan kebijakan IAM ke folder yang memberikan peran Storage Object Viewer (
roles/storage.objectViewer
) kepadaallUsers
, menggunakan langkah-langkah berikut:Jika panel Izin untuk folder terkelola Anda belum terbuka, klik ikon Opsi lainnya
untuk folder terkelola, lalu klik Edit akses.Di panel Permissions, klik tombol
Add principal button.Di kolom New principals, masukkan
allUsers
.Di drop-down Select a role, masukkan
Storage Object Viewer
di kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
Setelah akses publik diberikan, tombol Copy URL akan muncul untuk setiap objek yang berlaku di kolom public access. Anda dapat mengklik tombol ini untuk mendapatkan URL publik objek. URL publik berbeda dengan link yang Anda dapatkan dari mengklik kanan objek secara langsung. Kedua link memberikan akses ke objek, tetapi URL publik berfungsi tanpa pengguna harus login ke akun pengguna. Lihat Endpoint permintaan untuk informasi selengkapnya.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Trusted Cloud konsol, lihat Pemecahan masalah.
Untuk mempelajari cara mengatasi error kebijakan organisasi dan error izin, lihat Memecahkan masalah saat memublikasikan data.Command line
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Di lingkungan pengembangan Anda, buat folder terkelola menggunakan perintah
gcloud storage managed-folders create
:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Dengan:
BUCKET_NAME
adalah nama bucket tempat Anda ingin membuat folder terkelola. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder terkelola yang ingin Anda buat. Contoh,my-managed-folder
.
Di lingkungan pengembangan Anda, tambahkan
allUsers
ke kebijakan IAM folder terkelola menggunakan perintahgcloud storage managed-folders add-iam-policy-binding
:gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=allUsers --role=roles/storage.objectViewer
Dengan:
BUCKET_NAME
adalah nama bucket yang berisi folder terkelola tempat Anda menambahkan kebijakan IAM. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder terkelola yang ingin Anda tambahi akses publik. Contoh,my-managed-folder
.
Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "name": "MANAGED_FOLDER_NAME" }
Dengan
MANAGED_FOLDER_NAME
adalah nama folder terkelola yang ingin Anda buat. Contoh,my-managed-folder
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanInsert ManagedFolder
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders"
Dengan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di langkah sebelumnya.BUCKET_NAME
adalah nama bucket tempat Anda ingin membuat folder terkelola. Contoh,my-bucket
.
Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Gunakan
cURL
untuk memanggil JSON API dengan permintaansetIamPolicy
ManagedFolder:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dengan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di langkah sebelumnya.BUCKET_NAME
adalah nama bucket yang berisi folder terkelola tempat Anda menambahkan kebijakan IAM. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder terkelola yang akan Anda tambahi kebijakan IAM. Contoh,my-managed-folder
.
REST API
JSON API
XML API
XML API tidak mendukung penggunaan folder terkelola. Gunakan alat lain, seperti konsol Trusted Cloud , atau tetapkan ACL pada objek individual menggunakan permintaan Set Object ACL
. Berikut adalah contoh file ACL yang akan memberikan akses allUsers
ke objek:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Menghapus akses publik untuk semua objek dalam bucket
Untuk menghapus akses publik untuk semua objek dalam bucket, hapus kebijakan IAM yang memberikan peran Storage Object Viewer (roles/storage.objectViewer
) kepada allUsers
:
Konsol
- Di Trusted Cloud konsol, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda hapus akses publiknya.
Pilih tab Izin.
Kebijakan IAM yang berlaku untuk bucket akan muncul di bagian Izin.
Di tab Lihat menurut akun utama, centang kotak untuk akun utama
allUsers
yang Anda hapus.Klik tombol - Hapus akses.
Di jendela overlay yang muncul, klik Konfirmasi.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Trusted Cloud konsol, lihat Pemecahan masalah.
Command line
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Di lingkungan pengembangan Anda, jalankan perintah
buckets remove-iam-policy-binding
:Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Dapatkan kebijakan yang sudah ada dan terapkan ke bucket Anda. Untuk melakukannya, gunakan
cURL
untuk memanggil JSON API dengan permintaanGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Dengan
BUCKET_NAME
adalah nama bucket yang ingin Anda lihat kebijakan IAM-nya. Contoh,my-bucket
.Buat file JSON yang berisi kebijakan yang Anda dapat di langkah sebelumnya dan edit file untuk menghapus binding akun utama
allUsers
dari kebijakan.Gunakan
cURL
untuk memanggil JSON API dengan permintaanPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 3.BUCKET_NAME
adalah nama bucket yang aksesnya ingin dihapus. Contohnya,my-bucket
.
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Dengan BUCKET_NAME
adalah nama bucket yang aksesnya
akan dicabut. Contoh, my-bucket
.
REST API
JSON
Langkah berikutnya
- Mengakses data yang telah disediakan untuk publik.
- Pelajari lebih lanjut opsi kontrol akses untuk bucket dan objek Anda.