Buka konsol

Keamanan untuk Pustaka Klien Server

Ketika Anda menggunakan library klien server untuk Cloud Firestore, Anda dapat mengelola akses ke resource menggunakan Identity and Access Management (IAM). IAM memungkinkan Anda memberikan akses yang lebih terperinci ke resource Google Cloud Platform tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Halaman ini menjelaskan izin dan peran IAM untuk Cloud Firestore. Untuk penjelasan lengkap tentang Cloud IAM, baca dokumentasi IAM.

IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah, jadi Anda hanya memberikan akses yang diperlukan ke resource Anda.

Dengan IAM, Anda mengendalikan siapa (pengguna) yang memiliki izin apa (peran) untuk resource mana dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan 1 atau beberapa peran kepada pengguna, dengan memberinya izin tertentu. Misalnya, Anda dapat memberi peran datastore.indexAdmin kepada pengguna sehingga dia dapat menulis, mengubah, menghapus, mendata, atau melihat indeks.

Izin dan peran

Bagian ini merangkum izin dan peran yang didukung Cloud Firestore.

Izin yang diperlukan

Tabel berikut mencantumkan daftar izin yang harus dimiliki pemanggil untuk melakukan setiap tindakan:

Metode Izin yang diperlukan
projects.databases.documents
batchGet datastore.entities.get
beginTransaction datastore.databases.get
Update atau transformasi commit dengan precondition yang ada yang ditetapkan ke false datastore.entities.create
Update atau transformasi commit dengan precondition yang ada yang ditetapkan ke true datastore.entities.update
Update atau transformasi commit tanpa precondition datastore.entities.create
datastore.entities.update
Hapus commit datastore.entities.delete
createDocument datastore.entities.create
delete datastore.entities.delete
get datastore.entities.get
list datastore.entities.get
datastore.entities.list
listCollectionIds datastore.entities.list
patch datastore.entities.update
rollback datastore.databases.get
runQuery datastore.entities.get
datastore.entities.list
Update atau transformasi write dengan precondition yang ada yang ditetapkan ke false datastore.entities.create
Update atau transformasi write dengan precondition yang ada yang ditetapkan ke true datastore.entities.update
Update atau transformasi write tanpa precondition datastore.entities.create
datastore.entities.update
Hapus write datastore.entities.delete
projects.databases.indexes
create datastore.indexes.create
delete datastore.indexes.delete
get datastore.indexes.get
list datastore.indexes.list

Peran

Dengan IAM, setiap metode API di Cloud Firestore mengharuskan akun pembuat permintaan API untuk memiliki izin yang sesuai agar dapat menggunakan resource. Izin diberikan dengan menetapkan kebijakan yang memberikan peran ke akun pengguna, grup, atau layanan. Selain peran primitif, pemilik, editor, dan penampil, Anda dapat memberikan peran Cloud Firestore kepada pengguna project Anda.

Tabel berikut mencantumkan daftar peran IAM Cloud Firestore. Anda dapat memberikan beberapa peran ke akun pengguna, grup, atau layanan.

Peran Izin Deskripsi
roles/datastore.owner appengine.applications.get

datastore.*

resourcemanager.projects.get
resourcemanager.projects.list
Akses penuh ke Cloud Firestore.
roles/datastore.user appengine.applications.get

datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list

resourcemanager.projects.get
resourcemanager.projects.list
Akses baca/tulis data di database Cloud Firestore. Ditujukan untuk developer aplikasi dan akun layanan.
roles/datastore.viewer appengine.applications.get

datastore.databases.get
datastore.databases.list
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list

resourcemanager.projects.get
resourcemanager.projects.list
Akses baca ke semua sumber daya Cloud Firestore.
roles/datastore.indexAdmin appengine.applications.get

datastore.indexes.*

resourcemanager.projects.get
resourcemanager.projects.list
Akses penuh untuk mengelola definisi indeks.

Izin

Tabel berikut mencantumkan daftar izin yang didukung Cloud Firestore.

Nama izin database Deskripsi
datastore.databases.create Membuat database.
datastore.databases.delete Menghapus database.
datastore.databases.get Memulai atau memulihkan transaksi.
Membaca metadata dari database.
datastore.databases.getIamPolicy Membaca kebijakan IAM untuk database.
datastore.databases.list Membuat daftar database pada project.
datastore.databases.setIamPolicy Memperbarui kebijakan IAM untuk database.
datastore.databases.update Memperbarui database.
Nama izin entitas Deskripsi
datastore.entities.create Membuat dokumen.
datastore.entities.delete Menghapus dokumen
datastore.entities.get Membaca dokumen.
datastore.entities.list Membuat daftar nama dokumen pada project.
(datastore.entities.get diperlukan untuk mengakses data dokumen.)
datastore.entities.update Mengupdate dokumen
Nama izin indeks Deskripsi
datastore.indexes.create Membuat indeks.
datastore.indexes.delete Menghapus indeks.
datastore.indexes.get Membaca metadata dari indeks.
datastore.indexes.list Membuat daftar indeks pada project.
datastore.indexes.update Mengupdate indeks.
Nama izin project Deskripsi
resourcemanager.projects.get Menjelajahi resource di project.
resourcemanager.projects.list Membuat daftar project yang dimiliki.

Latensi perubahan peran

Cloud Firestore menyimpan izin IAM di dalam cache selama 5 menit, sehingga butuh waktu hingga 5 menit sampai perubahan peran mulai berlaku.

Mengelola IAM Cloud Firestore

Anda dapat memperoleh dan menetapkan kebijakan IAM menggunakan Google API Console, IAM API, atau fitur baris perintah gcloud. Lihat Memberikan, Mengubah, dan Mencabut Akses ke Anggota Project untuk informasi lengkapnya.

Apa selanjutnya?