Dokumen ini menjelaskan cara melakukan autentikasi ke Firestore secara terprogram. Cara Anda melakukan autentikasi ke Firestore bergantung pada antarmuka yang Anda gunakan untuk mengakses API dan lingkungan tempat kode Anda berjalan.
Informasi di halaman ini berlaku saat Anda menggunakan library klien server serta REST API dan RPC API. Jika Anda menggunakan library klien untuk klien seluler atau web, autentikasi dikelola oleh kombinasi aturan keamanan Firestore dan Firebase Auth. Untuk informasi selengkapnya, lihat Mengamankan data untuk klien seluler dan web.Untuk mengetahui informasi selengkapnya tentang autentikasi Google Cloud, lihat ringkasan autentikasi.
Akses API
Firestore mendukung akses terprogram. Anda dapat mengakses API dengan cara berikut:
Library klien
Library klien Firestore menyediakan dukungan bahasa tingkat tinggi untuk melakukan autentikasi ke Firestore secara terprogram. Untuk mengautentikasi panggilan ke Google Cloud API, library klien mendukung Kredensial Default Aplikasi (ADC); library ini mencari kredensial dalam kumpulan lokasi yang ditentukan dan menggunakan kredensial tersebut untuk mengautentikasi permintaan ke API. Dengan ADC, Anda dapat menyediakan kredensial untuk aplikasi di berbagai lingkungan, seperti pengembangan lokal atau produksi, tanpa perlu mengubah kode aplikasi.
Google Cloud CLI
Saat menggunakan gcloud CLI untuk mengakses Firestore, Anda login ke gcloud CLI dengan akun pengguna, yang memberikan kredensial yang digunakan oleh perintah gcloud CLI.
Jika kebijakan keamanan organisasi Anda mencegah akun pengguna memiliki izin yang diperlukan, Anda dapat menggunakan peniruan akun layanan.
Untuk mengetahui informasi selengkapnya, silakan melihat Melakukan autentikasi untuk menggunakan gcloud CLI. Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud CLI dengan Firestore, lihat halaman referensi gcloud CLI.
Menyiapkan autentikasi untuk Firestore
Cara Anda menyiapkan autentikasi bergantung pada lingkungan tempat kode Anda berjalan.
Opsi untuk menyiapkan autentikasi berikut adalah yang paling umum digunakan. Untuk opsi dan informasi lainnya tentang autentikasi, silakan melihat Metode autentikasi.
Untuk lingkungan pengembangan lokal
Anda dapat menyiapkan kredensial untuk lingkungan pengembangan lokal dengan cara berikut:
Library klien atau alat pihak ketiga
Siapkan Kredensial Default Aplikasi (ADC) di lingkungan lokal Anda:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Layar login akan muncul. Setelah Anda login, kredensial Anda disimpan dalam file kredensial lokal yang digunakan oleh ADC.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan ADC di lingkungan lokal, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Peniruan akun layanan
Pada umumnya, Anda dapat menggunakan kredensial pengguna untuk melakukan autentikasi dari lingkungan pengembangan lokal. Jika tidak memungkinkan, atau jika Anda perlu menguji izin yang ditetapkan ke akun layanan, Anda dapat menggunakan peniruan akun layanan. Anda harus memiliki izin iam.serviceAccounts.getAccessToken
, yang disertakan dalam peran IAM Service Account Token Creator (roles/iam.serviceAccountTokenCreator
).
Anda dapat menyiapkan gcloud CLI untuk menggunakan peniruan identitas akun layanan menggunakan
perintah gcloud config set
:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Untuk bahasa tertentu, Anda dapat menggunakan peniruan akun layanan untuk membuat file ADC lokal
yang akan digunakan oleh library klien. Pendekatan ini hanya didukung untuk library klien Go, Java, Node.js, dan
Python—tidak didukung untuk bahasa lainnya.
Untuk menyiapkan file ADC lokal dengan peniruan akun layanan, gunakan
flag --impersonate-service-account
dengan perintah gcloud auth application-default login
:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Untuk informasi selengkapnya tentang peniruan akun layanan, lihat Menggunakan peniruan akun layanan.
Di Google Cloud
Untuk mengautentikasi workload yang berjalan di Google Cloud, Anda menggunakan kredensial akun layanan yang dilampirkan ke resource komputasi tempat kode Anda dijalankan, seperti instance virtual machine (VM) Compute Engine. Pendekatan ini adalah metode autentikasi yang direkomendasikan untuk kode yang berjalan di resource komputasi Google Cloud.
Untuk sebagian besar layanan, Anda harus memasang akun layanan saat membuat resource yang akan menjalankan kode Anda; Anda tidak dapat menambahkan atau mengganti akun layanan nanti. Compute Engine merupakan pengecualian—Anda dapat memasang akun layanan ke instance VM kapan saja.
Gunakan gcloud CLI untuk membuat akun layanan dan memasangnya ke resource Anda:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountUSER_EMAIL
: the email address for a Google Account
-
-
Buat resource yang akan menjalankan kode Anda, lalu instal akun layanan ke resource tersebut. Misalnya, jika Anda menggunakan Compute Engine:
Create a Compute Engine instance. Configure the instance as follows:-
Ganti
INSTANCE_NAME
dengan nama instance pilihan Anda. -
Tetapkan flag
--zone
ke zona tempat Anda ingin membuat instance. -
Tetapkan flag
--service-account
ke alamat email untuk akun layanan yang Anda buat.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Ganti
Untuk mengetahui informasi selengkapnya tentang cara melakukan autentikasi ke Google API, silakan melihat Metode autentikasi.
Lokal atau di penyedia cloud lain
Metode yang direkomendasikan untuk menyiapkan autentikasi dari luar Google Cloud adalah menggunakan workload identity federation. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk penyedia cloud lokal atau penyedia cloud lainnya dalam dokumentasi autentikasi.
Kontrol akses untuk Firestore
Setelah melakukan autentikasi ke Firestore, Anda harus diberi otorisasi untuk mengakses resource Google Cloud. Firestore menggunakan Identity and Access Management (IAM) untuk otorisasi.
Untuk mengetahui informasi selengkapnya tentang peran untuk Firestore, lihat Keamanan untuk library klien server. Untuk mengetahui informasi selengkapnya tentang IAM dan otorisasi, lihat Ringkasan IAM.
Langkah berikutnya
- Pelajari metode autentikasi Google Cloud.
- Lihat daftar kasus penggunaan autentikasi.