Google merekomendasikan agar Anda mengikuti praktik terbaik ini saat mengelola dan menjalankan aplikasi Anda.
Mengamankan kunci API
Anda memerlukan kunci API untuk menggunakan layanan online kami, dan penggunaannya memungkinkan Google untuk mengukur penggunaan Anda. Sebaiknya batasi kunci API Anda untuk mencegah penggunaan yang tidak sah.
Tipe pembatasan kunci API
Ada dua jenis pembatasan kunci API, dan Anda dapat menggunakan keduanya secara bersamaan.
Jenis pembatasan | Membatasi penggunaan kunci hanya untuk |
---|---|
Pembatasan API | API tertentu. |
Pembatasan aplikasi | Alamat IP, situs, atau aplikasi tertentu. |
Rekomendasi pembatasan kunci API
Sebaiknya Anda membuat kunci API terpisah untuk skenario berikut.
Skenario | Recommendation |
---|---|
Server game back-end memanggil Playable Locations API untuk mengambil lokasi yang dapat dimainkan. | Konfigurasikan kunci dengan dua batasan:
|
Versi Android aplikasi Anda memanggil Maps SDK for Unity untuk mengambil data geografis. | Konfigurasikan kunci dengan pembatasan aplikasi untuk memungkinkan panggilan hanya dari versi Android aplikasi Anda. |
Versi iOS aplikasi Anda memanggil Maps SDK for Unity API untuk mengambil data geografis. | Konfigurasikan kunci dengan pembatasan aplikasi untuk mengizinkan panggilan hanya dari versi iOS aplikasi Anda. |
Untuk informasi selengkapnya, lihat Praktik terbaik keamanan API.
Untuk menyiapkan pembatasan kunci API
- Buka panel kredensial di Google Cloud Console.
- Pilih kunci API yang ingin Anda batasi. Halaman properti kunci API akan muncul.
- Di bagian Key restrictions, pilih tab Application restrictions, lalu pilih salah satu dari empat jenis pembatasan aplikasi.
Jenis pembatasan Deskripsi Perujuk HTTP Menerima permintaan dari daftar situs yang Anda berikan. Alamat IP Menerima permintaan dari daftar alamat IP server web yang Anda berikan. Aplikasi Android Tambahkan nama paket dan sidik jari sertifikat penandatanganan SHA-1 untuk membatasi penggunaan pada aplikasi Android Anda. Aplikasi iOS Menerima permintaan dari aplikasi iOS dengan ID paket yang Anda berikan. - Di bagian Pembatasan kunci, pilih tab Pembatasan API, lalu pilih API yang ingin Anda batasi kunci APInya.
- Klik Simpan.
Mendukung update kunci API
Pastikan Anda memiliki infrastruktur untuk memperbarui kunci API di seluruh stack penayangan. Dengan demikian, game Anda dapat pulih jika kunci API Anda disusupi, dan Anda perlu memperpanjangnya dalam waktu singkat.
Gunakan kunci terpisah untuk setiap aplikasi, sehingga Anda dapat dengan mudah menukar kunci dalam satu aplikasi tanpa memengaruhi aplikasi lain.
Rekomendasi keamanan server game
Saat server Playable Locations API mengalami gangguan karena alasan apa pun, masalah akan terjadi saat perangkat kembali online—saat beberapa server game mencoba menghubungkan kembali ke server secara bersamaan. Lonjakan QPS tersebut dapat mengirim server ke mode DoS, yang memperburuk situasi dengan memblokir traffic masuk.
Untuk mengurangi situasi ini, Google meminta Anda menerapkan Back-off Eksponensial Biner di server game Anda. Ini adalah pendekatan sistematis untuk memberi jarak pada percobaan ulang koneksi Anda. Secara khusus, Anda akan menerapkan algoritme yang menunggu N detik setelah upaya koneksi ulang gagal sebelum mencoba lagi. Jika upaya berikutnya gagal, algoritme Anda akan menggandakan masa tunggu, lalu mencoba lagi. Jika upaya berikutnya gagal, algoritme Anda akan menggandakan masa tunggu lagi, lalu mencoba lagi. Anda akan menggandakan waktu tunggu setelah setiap percobaan, hingga upaya terakhir Anda berhasil.
Menangani kode status pengembalian HTTP
Anda harus menerapkan back-off eksponensial biner untuk beberapa kode pengembalian HTTP, tetapi tidak semuanya.
- 400 dtk
- Ini adalah error klien yang umumnya tidak bisa dipulihkan, sehingga mencoba kembali permintaan yang gagal yang menghasilkan kode error ini tidak akan berfungsi. Anda harus mendeteksi jenis error ini selama pengujian.
- 429
- Ini adalah error resource yang habis saat Anda mulai kehabisan kuota API. Untuk melihat batas QPS API project Anda, buka Kuota Google API.
- 500 dtk
- Ini adalah error sisi server—jenis error yang paling sering menyebabkan backoff eksponensial.