Untuk aplikasi dan project yang menggunakan API dan SDK Google Maps Platform, Anda harus menggunakan kunci API atau, jika didukung, Oauth, untuk mencegah tagihan dan penggunaan yang tidak sah. Jika Anda menggunakan kunci API, batasi kunci API Anda saat membuatnya untuk mendapatkan keamanan maksimum. Praktik terbaik ini menunjukkan cara membatasinya.
Selain menerapkan pembatasan kunci API dan aplikasi, ikuti praktik keamanan yang berlaku untuk produk Google Maps Platform tertentu. Misalnya, lihat Maps JavaScript API di bawah di bagian Pembatasan API dan aplikasi yang direkomendasikan.
Jika kunci API Anda sudah digunakan, tinjau rekomendasi di bawah di bagian Jika Anda membatasi atau membuat ulang kunci API yang sudah digunakan.
Untuk detail selengkapnya tentang tanda tangan digital, lihat Panduan Tanda Tangan Digital.
Praktik terbaik yang direkomendasikan
Untuk meningkatkan keamanan dan menghindari penagihan karena penggunaan yang tidak sah, ikuti praktik terbaik keamanan API ini untuk semua API, SDK, atau layanan Google Maps Platform:
Direkomendasikan untuk semua penggunaan kunci API
Menggunakan kunci API terpisah untuk setiap aplikasi
Menghapus kunci API yang tidak digunakan
Memeriksa penggunaan kunci API Anda
Berhati-hatilah saat membuat ulang kunci API
Rekomendasi tambahan untuk situs yang menggunakan API Static Web
Melindungi aplikasi yang menggunakan API Static Web
Rekomendasi tambahan untuk aplikasi yang menggunakan layanan web
Melindungi aplikasi yang menggunakan layanan web
Rekomendasi tambahan untuk aplikasi seluler iOS dan Android
Melindungi aplikasi seluler yang menggunakan Layanan web atau API Static Web
Jika Anda membatasi atau membuat ulang kunci API yang sudah digunakan
Sebelum mengubah kunci API, Periksa penggunaan kunci API Anda. Langkah ini terutama penting jika Anda menambahkan pembatasan setelah kunci digunakan.
Setelah Anda mengubah kunci, update semua aplikasi Anda dengan kunci API baru, jika perlu.
Jika tidak ada penyalahgunaan aktif terhadap kunci API, Anda dapat memigrasikan aplikasi Anda ke beberapa kunci API baru sesuai kebutuhan, sehingga kunci API asli tidak berubah sampai Anda hanya melihat satu jenis traffic, yang kemudian dapat Anda jadikan tujuan untuk membatasi kunci API dengan pembatasan aplikasi. Untuk petunjuk selengkapnya, lihat bagian Bermigrasi ke beberapa kunci API.
Pantau penggunaannya seiring waktu, dan lihat kapan API, jenis platform, dan domain tertentu telah bermigrasi dari kunci API lama sebelum Anda memilih untuk membatasi atau menghapus kunci lama. Untuk informasi selengkapnya, lihat Pelaporan dan pemantauan dan Metrik.
Jika kunci API Anda telah disusupi, sebaiknya Anda pindah lebih cepat untuk mengamankan kunci API dan menghentikan penyalahgunaan. Di aplikasi Android dan iOS, kunci tidak diganti sampai pelanggan mengupdate aplikasinya. Memperbarui atau mengganti kunci di JavaScript atau aplikasi layanan web jauh lebih mudah, tetapi tindakan ini tetap memerlukan perencanaan yang cermat dan pekerjaan yang cepat.
Untuk informasi selengkapnya, lihat bagian Menangani penggunaan kunci API yang tidak sah.
Membatasi kunci API Anda
Praktik terbaiknya adalah selalu membatasi kunci API Anda dengan pembatasan aplikasi dan satu atau beberapa pembatasan API. Untuk saran pembatasan dengan API, SDK, atau layanan JavaScript, lihat Pembatasan API dan aplikasi yang direkomendasikan di bawah.
Pembatasan aplikasi Anda dapat membatasi penggunaan kunci API ke platform tertentu: aplikasi Android atau iOS, atau situs tertentu untuk aplikasi sisi klien, atau alamat IP atau subnet CIDR tertentu untuk aplikasi sisi server yang mengeluarkan panggilan REST API layanan web.
Anda membatasi kunci dengan menambahkan satu atau beberapa pembatasan aplikasi dari jenis yang ingin Anda beri otorisasi. Setelah itu, hanya permintaan yang berasal dari sumber ini yang diizinkan.
Pembatasan API Anda dapat membatasi API, SDK, atau layanan Google Maps Platform tempat kunci API Anda dapat digunakan. Pembatasan API hanya mengizinkan permintaan ke API dan SDK yang Anda tentukan. Untuk setiap kunci API tertentu, Anda dapat menentukan pembatasan API sebanyak yang diperlukan. Daftar API yang tersedia mencakup semua API yang diaktifkan di sebuah project.
Menetapkan pembatasan aplikasi pada kunci API
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Pilih kunci API yang ingin Anda batasi.
Di halaman Edit API key, di bagian Key restrictions, pilih Set an application restriction.
Pilih salah satu jenis pembatasan dan berikan informasi yang diminta sesuai dengan daftar pembatasan.
Jenis pembatasan Deskripsi Situs Tentukan satu atau beberapa situs perujuk. - Skema URI perujuk yang didukung secara universal adalah
https
danhttp
. - Selalu berikan URI perujuk lengkap, termasuk
skema protokol, nama host, dan port opsional
(mis.,
https://google.com
). - Anda dapat menggunakan karakter pengganti untuk memberi otorisasi pada semua subdomain. Misalnya,
https://*.google.com
menerima semua situs yang diakhiri dengan.google.com
. Perhatikan bahwa jika Anda menentukan www.domain.com, URL ini akan berfungsi sebagai www.domain.com/* dengan karakter pengganti, dan akan mengizinkan subjalur apa pun pada nama host tersebut. - Berhati-hatilah saat memberi otorisasi pada perujuk jalur lengkap, misalnya
https://google.com/some/path
, karena secara default sebagian besar browser saat ini menghilangkan jalur dari permintaan lintas asal.
Alamat IP Tentukan satu atau beberapa alamat IPv4 atau IPv6, atau subnet menggunakan notasi CIDR. Alamat IP harus cocok dengan alamat sumber yang diamati oleh server Google Maps Platform. Jika Anda menggunakan penafsiran alamat jaringan (NAT), alamat ini biasanya sesuai dengan alamat IP publik komputer Anda. Aplikasi Android Tambahkan nama paket Android (dari file AndroidManifest.xml
) dan sidik jari sertifikat penandatanganan SHA-1 dari setiap aplikasi Android yang ingin Anda beri otorisasi. Jika Anda menggunakan Penandatanganan Aplikasi Play, untuk mengambil sidik jari sertifikat penandatanganan, lihat bagian Bekerja sama dengan Penyedia API. Jika Anda mengelola kunci penandatanganan Anda sendiri, lihat Menandatangani sendiri aplikasi Anda atau baca petunjuk untuk lingkungan build Anda.Aplikasi iOS Tambahkan ID paket untuk setiap aplikasi iOS yang ingin Anda beri otorisasi. Untuk rekomendasi terkait pembatasan aplikasi, lihat Pembatasan Aplikasi yang Direkomendasikan.
- Skema URI perujuk yang didukung secara universal adalah
Pilih Save.
Menetapkan pembatasan API untuk kunci API
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Pilih kunci API yang ingin Anda batasi.
Di halaman Edit API key, di bagian API restrictions:
Pilih Restrict key.
Buka Select APIs, lalu pilih API atau SDK yang Anda inginkan untuk diakses oleh aplikasi Anda menggunakan kunci API.
Jika API atau SDK tidak tercantum, Anda harus mengaktifkannya. Untuk mengetahui detailnya, lihat Untuk mengaktifkan satu atau beberapa API atau SDK.
Pilih Save.
Setelah langkah ini, pembatasan akan menjadi bagian dari definisi kunci API. Pastikan Anda memberikan detail yang sesuai, lalu pilih Save untuk menyimpan pembatasan kunci API Anda. Untuk informasi selengkapnya, lihat panduan Mendapatkan Kunci API di dokumentasi untuk API atau SDK tertentu yang Anda minati.
Untuk pembatasan API yang direkomendasikan, lihat Pembatasan API yang Direkomendasikan.
Memeriksa penggunaan kunci API Anda
Jika Anda membatasi kunci API setelah dibuat, atau jika Anda ingin melihat API apa yang digunakan oleh kunci sehingga Anda dapat membatasinya, sebaiknya Anda memeriksa penggunaan kunci API. Langkah ini menunjukkan layanan dan metode API yang menggunakan kunci API. Jika Anda melihat penggunaan di luar layanan Google Maps Platform, selidiki untuk menentukan apakah Anda perlu menambahkan pembatasan lagi untuk menghindari penggunaan yang tidak diinginkan. Anda dapat menggunakan Metrics Explorer di Konsol Cloud Google Maps Platform untuk membantu menentukan pembatasan API dan aplikasi yang akan diterapkan ke kunci API Anda:
Menentukan API yang menggunakan kunci API Anda
Laporan metrik berikut memungkinkan Anda menentukan API mana yang menggunakan kunci API Anda. Gunakan laporan ini untuk melakukan tindakan berikut:
- Melihat penggunaan kunci API Anda
- Mengidentifikasi penggunaan yang tidak diharapkan
- Membantu memverifikasi apakah kunci yang tidak digunakan aman untuk dihapus. Untuk informasi tentang cara menghapus kunci API, lihat Menghapus kunci API yang tidak digunakan.
Saat menerapkan pembatasan API, gunakan laporan ini untuk membuat daftar API yang akan diberi otorisasi, atau untuk memvalidasi rekomendasi pembatasan kunci API yang dibuat otomatis. Untuk informasi selengkapnya tentang pembatasan yang direkomendasikan, lihat Menerapkan pembatasan yang direkomendasikan. Untuk informasi selengkapnya tentang cara menggunakan Metrics Explorer, lihat Membuat diagram dengan Metrics Explorer.
Buka Metrics Explorer di Konsol Google Cloud.
Login dan pilih project untuk kunci API yang ingin Anda periksa.
Buka halaman Metrics Explorer untuk jenis API Anda:
Untuk kunci API yang menggunakan API selain Maps Embed API: Buka halaman Metrics Explorer.
Untuk kunci API yang menggunakan Maps Embed API: Buka Metrics Explorer.
Periksa setiap kunci API:
Pilih ADD FILTER.
Pilih label
credential_id
.Pilih nilai yang sesuai dengan kunci yang ingin Anda periksa.
Catat API mana yang menggunakan kunci API ini, dan konfirmasi bahwa penggunaannya diharapkan.
Setelah selesai, pilih Remove filter
di akhir baris filter aktif untuk menghapus filter tambahan.
Ulangi untuk kunci lainnya yang tersisa.
Batasi kunci API Anda hanya ke API yang sedang digunakan.
Jika penggunaan yang tidak sah terdeteksi, lihat Menangani penggunaan kunci API yang tidak sah.
Memilih jenis pembatasan aplikasi yang tepat menggunakan Metrics Explorer
Setelah Anda memverifikasi dan melakukan tindakan yang diperlukan untuk memastikan kunci API Anda hanya digunakan untuk layanan Google Maps Platform yang digunakan oleh kunci API tersebut, pastikan juga kunci API memiliki pembatasan aplikasi yang tepat.
Jika kunci API Anda telah merekomendasikan pembatasan kunci API, terapkan pembatasan tersebut. Untuk informasi selengkapnya, lihat Menerapkan pembatasan kunci API yang direkomendasikan.
Jika kunci API Anda tidak memberikan rekomendasi pembatasan, tentukan jenis
pembatasan aplikasi yang akan diterapkan, berdasarkan platform_type
yang dilaporkan menggunakan
Metrics Explorer:
Buka Metrics Explorer di Konsol Google Cloud.
Login dan pilih project untuk API yang ingin Anda periksa.
Buka halaman Metrics Explorer ini: Metrics Explorer.
Periksa setiap kunci API:
Pilih ADD FILTER.
Pilih label
credential_id
.Pilih nilai yang sesuai dengan kunci yang ingin Anda periksa.
Setelah selesai, pilih Remove filter
di akhir baris filter aktif untuk menghapus filter tambahan.
Ulangi untuk kunci lainnya yang tersisa.
Setelah memiliki jenis platform untuk kunci API Anda, terapkan pembatasan aplikasi untuk
platform_type
tersebut:PLATFORM_TYPE_JS
- Terapkan pembatasan Situs pada kunci tersebut.
PLATFORM_TYPE_ANDROID
- Terapkan pembatasan aplikasi Android pada kunci tersebut.
PLATFORM_TYPE_IOS
- Terapkan pembatasan aplikasi iOS pada kunci tersebut.
PLATFORM_TYPE_WEBSERVICE
- Anda mungkin harus mengandalkan pembatasan alamat IP pada kunci tersebut, untuk membatasinya dengan benar. Guna mengetahui opsi lebih lanjut untuk Maps Static API dan Street View Static API, lihat bagian Melindungi aplikasi yang menggunakan API Static Web. Guna mengetahui petunjuk lebih lanjut untuk Maps Embed API, lihat bagian Situs dengan Maps Embed API.
- Kunci API saya menggunakan beberapa jenis platform
- Traffic Anda tidak dapat diamankan dengan benar hanya dengan satu kunci API. Anda harus bermigrasi ke beberapa kunci API. Untuk informasi selengkapnya, lihat Bermigrasi ke beberapa kunci API.
Menggunakan kunci API terpisah untuk setiap aplikasi
Praktik ini akan membatasi cakupan setiap kunci. Jika satu kunci API disusupi, Anda dapat menghapus atau membuat ulang kunci yang terpengaruh tanpa harus memperbarui kunci API lainnya. Anda dapat membuat hingga 300 kunci API per project. Untuk informasi selengkapnya, lihat Batas untuk kunci API.
Meskipun satu kunci API per aplikasi ideal untuk tujuan keamanan, Anda dapat menggunakan kunci yang dibatasi pada beberapa aplikasi, asalkan jenis pembatasan aplikasi yang digunakan sama.
Menerapkan pembatasan kunci API yang direkomendasikan
Bagi Project Owner dan Editor tertentu, Konsol Google Cloud akan menyarankan pembatasan kunci API spesifik untuk kunci API yang tidak dibatasi berdasarkan penggunaan dan aktivitas Google Maps Platform mereka.
Jika tersedia, rekomendasi akan muncul sebagai opsi yang diisi otomatis di halaman Credentials Google Maps Platform.
Alasan Anda mungkin tidak melihat rekomendasi, atau melihat rekomendasi yang tidak lengkap
Anda (juga) menggunakan kunci API di layanan selain layanan Google Maps Platform. Jika Anda melihat ada penggunaan API di layanan lain, jangan menerapkan rekomendasi tanpa melakukan tindakan berikut terlebih dahulu:
Pastikan penggunaan API yang Anda lihat dalam Metrics Explorer di Konsol Google Cloud adalah penggunaan yang sah.
Tambahkan secara manual layanan yang tidak ada ke daftar API yang akan diberi otorisasi.
Tambahkan secara manual pembatasan aplikasi yang tidak ada untuk layanan yang ditambahkan ke daftar API. Jika layanan lain yang Anda tambahkan memerlukan jenis pembatasan aplikasi yang berbeda, lihat bagian Bermigrasi ke beberapa kunci API.
Kunci API Anda tidak digunakan di SDK atau API sisi klien.
Anda menggunakan kunci API di aplikasi atau situs bervolume rendah yang tidak digunakan dalam 60 hari terakhir.
Anda belum lama ini membuat kunci baru atau men-deploy kunci yang ada di aplikasi baru. Jika ini masalahnya, tunggu beberapa hari lagi sampai rekomendasi diperbarui.
Anda menggunakan kunci API di beberapa aplikasi yang akan memerlukan jenis pembatasan aplikasi yang bertentangan, atau Anda menggunakan kunci API yang sama di terlalu banyak aplikasi atau situs yang berbeda. Pada kedua kasus tersebut, sebagai praktik terbaik, Anda harus bermigrasi ke beberapa kunci. Untuk detail selengkapnya, lihat bagian Bermigrasi ke beberapa kunci API.
Alasan Anda mungkin melihat rekomendasi yang tidak terlihat di diagram
Aplikasi atau situs Anda hanya mengirim burst traffic yang sangat singkat. Pada kasus ini, beralihlah dari tampilan CHART untuk menampilkan TABLE atau BOTH, karena penggunaannya masih terlihat di legenda. Untuk informasi selengkapnya, lihat bagian Menampilkan/menyembunyikan legenda lengkap diagram.
Traffic Anda berasal dari Maps Embed API. Untuk mendapatkan petunjuk, lihat Menentukan API yang menggunakan kunci API Anda.
Traffic dari aplikasi atau situs di luar rentang tanggal yang tersedia di Metrics Explorer di Konsol Google Cloud.
Untuk menerapkan pembatasan yang direkomendasikan
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Jika ada, pilih Apply recommended restrictions.
Catatan: Jika Anda tidak melihat pembatasan yang direkomendasikan, lihat bagian Menetapkan pembatasan API untuk kunci API guna menetapkan pembatasan yang sesuai.
Pilih Check API usage untuk memeriksa layanan mana yang menggunakan kunci API. Jika Anda melihat layanan selain layanan Google Maps Platform, jeda layanan tersebut untuk meninjau langkah-langkah rekomendasi di atas secara manual. Lihat langkah pemecahan masalah di awal bagian Menerapkan pembatasan kunci API yang direkomendasikan.
Periksa kembali apakah pembatasan yang diisi otomatis sudah cocok dengan situs atau aplikasi tempat Anda akan menggunakan kunci API.
Praktik Terbaik: Catat dan hapus pembatasan aplikasi atau API yang tidak terafiliasi dengan layanan Anda. Jika ada yang bermasalah karena dependensi yang tidak terduga, Anda dapat menambahkan kembali aplikasi atau API yang diperlukan.
Jika Anda mendapati bahwa ada aplikasi, situs, atau API yang tidak disertakan di rekomendasi Anda, tambahkan secara manual atau tunggu beberapa hari sampai rekomendasi tersebut diperbarui.
Jika Anda memerlukan bantuan lebih lanjut terkait rekomendasi yang disarankan, hubungi dukungan.
Pilih Apply.
Yang harus dilakukan jika aplikasi Anda ditolak setelah menerapkan rekomendasi
Jika Anda melihat ada aplikasi atau situs yang ditolak setelah menerapkan pembatasan, cari pembatasan aplikasi yang perlu Anda tambahkan di pesan error respons API.
Untuk SDK sisi klien, lihat di bawah ini:
- Aplikasi Maps JavaScript API: lihat konsol debug browser
- Aplikasi Android: gunakan Android Debug Bridge (adb) atau Logcat
- Aplikasi iOS: lihat Melihat Pesan Log
Untuk memeriksa pembatasan API yang diperlukan, lihat bagian Menentukan API yang menggunakan kunci API Anda.
Jika Anda tidak dapat menentukan pembatasan mana yang perlu diterapkan:
- Catat pembatasan saat ini sebagai referensi di lain waktu.
- Hapus sementara pembatasan tersebut selama Anda menyelidiki masalahnya. Anda dapat memeriksa penggunaan Anda seiring waktu menggunakan langkah-langkah di bagian Memeriksa penggunaan kunci API Anda.
- Jika diperlukan, hubungi dukungan.
Menghapus kunci API yang tidak digunakan
Sebelum Anda menghapus kunci API, pastikan kunci tersebut tidak digunakan dalam produksi. Jika tidak ada traffic yang berhasil, kunci tersebut kemungkinan aman untuk dihapus. Untuk informasi selengkapnya, lihat Memeriksa penggunaan kunci API Anda.
Cara menghapus kunci API:
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Pilih kunci API yang ingin dihapus.
Pilih tombol Delete di dekat bagian atas halaman.
Di halaman Delete credential, pilih Delete.
Penghapusan kunci API memerlukan waktu beberapa menit untuk diterapkan. Setelah propagasi selesai, traffic yang menggunakan kunci API yang dihapus akan ditolak.
Berhati-hatilah saat membuat ulang kunci API Anda
Pembuatan ulang kunci API akan membuat kunci baru yang memiliki semua pembatasan kunci lama. Proses ini juga memulai timer 24 jam yang akan menghapus kunci API lama sesudahnya.
Selama periode ini, kunci lama dan baru akan diterima, sehingga Anda dapat memigrasikan aplikasi Anda untuk menggunakan kunci baru. Namun, setelah periode waktu ini berlalu, aplikasi yang masih menggunakan kunci API lama akan berhenti berfungsi.
Sebelum membuat ulang kunci API:
Pertama-tama, coba batasi kunci API seperti dijelaskan di bagian Membatasi kunci API Anda.
Jika kunci API Anda tidak dapat dibatasi karena jenis pembatasan aplikasi yang bertentangan, lakukan migrasi ke beberapa kunci baru (dibatasi) seperti dijelaskan di bagian Bermigrasi ke beberapa kunci API. Dengan bermigrasi, Anda dapat mengontrol migrasi dan meluncurkan linimasa ke kunci API baru.
Jika saran sebelumnya tidak memungkinkan, dan Anda harus membuat ulang kunci API untuk mencegah penggunaan API yang tidak sah, ikuti langkah-langkah berikut:
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Buka kunci API yang ingin Anda buat ulang.
Di bagian atas halaman, pilih Regenerate key.
Pilih Replace key.
Catatan: Jika perlu, Anda dapat me-roll back kunci yang telah dibuat ulang ke versi sebelumnya. Tidak ada batasan waktu untuk roll-back.
Untuk melakukan roll back pada kunci yang dibuat ulang
Buka halaman Credentials Google Maps Platform di Konsol Google Cloud.
Buka kunci API yang ingin Anda roll back.
Pilih Revert to previous key.
Pada dialog Revert, pilih Revert key.
Setelah melakukan roll back, kunci versi "baru" sebelumnya akan menjadi versi sebelumnya, dan timer penonaktifan 24 jam yang baru akan ditetapkan untuk kunci versi sebelumnya tersebut. Anda dapat mengembalikan di antara dua nilai kunci tersebut hingga Anda membuat ulang kunci untuk kedua kalinya.
Jika Anda membuat ulang kunci, nilai kunci lama yang tidak aktif akan ditimpa.
Bermigrasi ke beberapa kunci API
Untuk bermigrasi dari menggunakan satu kunci API untuk beberapa aplikasi, ke satu kunci API unik untuk setiap aplikasi, lakukan tindakan berikut:
Identifikasi aplikasi mana yang memerlukan kunci baru:
- Aplikasi web paling mudah diupdate karena Anda mengontrol semua kode. Rencanakan untuk mengupdate semua kunci aplikasi berbasis web.
- Aplikasi seluler jauh lebih sulit karena pelanggan Anda harus mengupdate aplikasi sebelum kunci baru dapat digunakan.
Buat dan batasi kunci baru: Tambahkan pembatasan aplikasi dan minimal satu pembatasan API. Untuk informasi selengkapnya, lihat Praktik terbaik yang direkomendasikan.
Tambahkan kunci baru ke aplikasi Anda: Untuk aplikasi seluler, proses ini mungkin memerlukan waktu beberapa bulan sampai semua pengguna Anda telah mengupdate aplikasi ke versi terakhir dengan kunci API baru.
Melindungi aplikasi yang menggunakan API Static Web
API Static Web, seperti Maps Static API dan Street View Static API, mirip dengan panggilan API layanan web.
Anda memanggil keduanya menggunakan REST API HTTPS yang simpel, dan umumnya Anda membuat URL permintaan API di server. Namun, bukannya menampilkan respons JSON, API Static Web menghasilkan gambar yang dapat Anda sematkan di kode HTML yang dihasilkan. Yang lebih penting lagi, biasanya klien pengguna akhirlah, bukan server, yang memanggil layanan Google Maps Platform.
Menggunakan tanda tangan digital
Sebagai praktik terbaik, selain kunci API, selalu gunakan tanda tangan digital. Selain itu, tinjau jumlah permintaan tanpa tanda tangan yang ingin Anda izinkan per hari dan sesuaikan kuota permintaan tanpa tanda tangan berdasarkan hal tersebut.
Untuk detail selengkapnya tentang tanda tangan digital, lihat Panduan Tanda Tangan Digital.
Melindungi rahasia penandatanganan
Untuk melindungi API Static Web, jangan sematkan rahasia penandatanganan API Anda langsung di kode atau di hierarki sumber, atau jangan ekspos rahasia tersebut di aplikasi sisi klien. Ikuti praktik terbaik ini untuk melindungi rahasia penandatanganan Anda:
Tanda tangani permintaan Anda di sisi server, bukan di klien. Jika Anda memberi tanda tangan di sisi klien di JavaScript, Anda akan mengeksposnya kepada orang yang mengunjungi situs Anda. Oleh karena itu, untuk gambar yang dibuat secara dinamis, selalu buat URL permintaan Maps Static API dan Street View Static API yang telah ditandatangani di sisi server saat menayangkan halaman web. Untuk konten web statis, Anda dapat menggunakan widget Sign a URL now di halaman Credentials Google Maps Platform di Konsol Cloud.
Simpan rahasia penandatanganan di luar kode sumber dan hierarki sumber aplikasi Anda. Jika Anda menempatkan rahasia penandatanganan atau informasi pribadi lainnya dalam variabel lingkungan atau menyertakan file yang disimpan secara terpisah, dan kemudian membagikan kode Anda, maka rahasia penandatanganan tidak disertakan dalam file yang dibagikan. Jika Anda menyimpan rahasia penandatanganan atau informasi pribadi lain di file, simpan file di luar hierarki sumber aplikasi agar rahasia penandatanganan Anda tidak masuk ke dalam sistem kontrol kode sumber. Tindakan pencegahan ini sangat penting jika Anda menggunakan sistem pengelolaan kode sumber yang terbuka untuk publik seperti GitHub.
Melindungi kunci API Anda di aplikasi yang menggunakan layanan web
Simpan kunci API di luar kode sumber atau hierarki sumber aplikasi Anda. Jika Anda menyimpan kunci API atau informasi pribadi lainnya dalam variabel lingkungan atau menyertakan file yang disimpan secara terpisah, kemudian membagikan kode Anda, kunci API tidak disertakan dalam file yang dibagikan tersebut. Hal ini sangat penting jika Anda menggunakan sistem pengelolaan kode sumber yang terbuka untuk publik seperti GitHub.
Melindungi kunci API Anda dan rahasia penandatanganan di aplikasi seluler yang menggunakan layanan web atau API Static Web
Untuk melindungi aplikasi seluler, gunakan keystore yang aman atau amankan server proxy:
Simpan kunci API atau rahasia penandatanganan di keystore yang aman. Langkah ini mempersulit kunci API dan data pribadi lainnya di-scraping langsung dari aplikasi.
Gunakan server proxy yang aman. Server proxy menyediakan sumber lengkap untuk berinteraksi dengan API Google Maps Platform yang sesuai. Untuk informasi selengkapnya tentang cara menggunakan server proxy, lihat Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries.
Buat permintaan Google Maps Platform di server proxy. Jangan izinkan klien merelai panggilan API arbitrer melalui proxy.
Lakukan pascapemrosesan terhadap respons Google Maps Platform di server proxy Anda. Filter data yang tidak dibutuhkan klien.
Menggunakan App Check untuk mengamankan kunci API Anda
Maps SDK dan API tertentu memungkinkan Anda berintegrasi dengan Firebase App Check. App Check memberikan perlindungan untuk panggilan dari aplikasi Anda ke Google Maps Platform dengan memblokir traffic yang berasal dari sumber selain aplikasi yang sah. Hal ini dilakukan dengan memeriksa token dari penyedia pengesahan. Mengintegrasikan aplikasi dengan App Check membantu melindungi dari permintaan berbahaya, sehingga Anda tidak dikenai biaya untuk panggilan API yang tidak sah.
Petunjuk integrasi App Check:
Menangani penggunaan kunci API yang tidak sah
Jika Anda mendeteksi penggunaan kunci API yang tidak sah, lakukan hal berikut untuk mengatasi masalah:
Batasi kata kunci: Jika Anda telah menggunakan kunci yang sama di beberapa aplikasi, lakukan migrasi ke beberapa kunci API, dan gunakan kunci API yang terpisah untuk setiap aplikasi. Untuk detail selengkapnya, lihat:
Hanya buat ulang kunci jika Anda tidak dapat membatasinya. Baca selengkapnya bagian Berhati-hatilah saat membuat ulang kunci API sebelum melanjutkan.
Jika Anda masih mengalami masalah atau butuh bantuan, hubungi dukungan.
Pembatasan API dan aplikasi yang direkomendasikan
Bagian berikut menyarankan pembatasan API dan aplikasi yang sesuai untuk setiap API, SDK, atau layanan Google Maps Platform.
Pembatasan API yang Direkomendasikan
Panduan untuk pembatasan API berikut berlaku untuk seluruh Google Maps Platform:
Batasi kunci API hanya ke API yang Anda gunakan, dengan pengecualian berikut:
Jika aplikasi Anda menggunakan Places SDK for Android atau Places SDK for iOS, beri otorisasi Places API.
Jika aplikasi Anda menggunakan Maps JavaScript API, selalu beri otorisasi di kunci Anda.
Jika Anda juga menggunakan salah satu dari layanan Maps JavaScript API berikut, Anda juga harus memberi otorisasi API berikut:
Layanan Pembatasan API Layanan Directions, Maps JavaScript API Directions API Layanan Distance Matrix, Maps JavaScript API Distance Matrix API Layanan Elevation, Maps JavaScript API Elevation API Layanan Geocoding, Maps JavaScript API Geocoding API Library Places, Maps JavaScript API Places API
Beberapa contoh:
Anda menggunakan Maps SDK for Android dan Places SDK for Android, jadi Anda menyertakan Maps SDK for Android dan Places API sebagai pembatasan API.
Situs Anda menggunakan Layanan Elevation Maps JavaScript API dan Maps Static API, jadi Anda menambahkan pembatasan API untuk semua API berikut:
- Maps JavaScript API
- Elevation API
- Maps Static API
Pembatasan aplikasi yang direkomendasikan
Situs dengan Maps JavaScript API atau Static Web API
Untuk situs yang menggunakan layanan Maps JavaScript atau API Static Web, gunakan pembatasan aplikasi Websites
.
Gunakan untuk situs yang menggunakan API dan layanan JavaScript ini:
1 Untuk aplikasi seluler, sebaiknya gunakan Maps SDK for Android dan Maps SDK for iOS native.
2 Lihat juga bagian Melindungi aplikasi seluler yang menggunakan layanan web atau API Static Web.
Situs dengan Maps Embed API
Meskipun Maps Embed API digunakan tanpa biaya, Anda masih harus membatasi kunci API yang digunakan untuk mencegah penyalahgunaan di layanan lain.
Praktik terbaik: Buat kunci API yang terpisah untuk penggunaan Maps Embed API, dan batasi kunci ini hanya ke Maps Embed API. Pembatasan ini cukup mengamankan kunci, sehingga mencegah penggunaan yang tidak sah di layanan Google lainnya.
Jika Anda tidak dapat memisahkan penggunaan Maps Embed API ke kunci API yang terpisah, amankan kunci menggunakan pembatasan aplikasi Websites
.
Aplikasi dan server yang menggunakan layanan web
Untuk aplikasi dan server yang menggunakan layanan web, gunakan pembatasan aplikasi IP addresses
.
Gunakan untuk aplikasi dan server yang menggunakan API ini:
3 Untuk aplikasi seluler, sebaiknya gunakan Places SDK for Android dan Places SDK for iOS native.
Aplikasi Android
Untuk aplikasi di Android, gunakan pembatasan aplikasi Android apps
.
Gunakan untuk aplikasi dan server yang menggunakan SDK ini:
Selain itu, hindari melakukan check-in kunci API ke dalam kontrol versi tanpa sengaja dengan memanfaatkan Plugin Secrets Gradle untuk memasukkan secret dari file lokal, bukan menyimpannya di Manifes Android.
Aplikasi iOS
Untuk aplikasi di iOS, gunakan pembatasan aplikasi iOS apps
.
Gunakan untuk aplikasi dan server yang menggunakan SDK ini: