Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik
Bagian ini menguraikan praktik terbaik untuk mengamankan aplikasi Amazon Location Service dan mengoptimalkan penggunaan autentikasi. Dengan menerapkan isolasi kredensi, pemantauan, dan pembatasan yang sesuai, Anda dapat meminimalkan risiko keamanan dan biaya pengendalian. Untuk panduan memilih antara kunci API, Amazon Cognito, dan AWS Identity and Access Management, lihat. Memilih metode otentikasi
Manajemen kredensial
Manajemen kredensi yang tepat mengurangi risiko keamanan dan menyederhanakan operasi saat Anda perlu memutar atau mencabut akses.
-
Gunakan kredensi terpisah per aplikasi — Buat kunci API atau peran IAM yang berbeda untuk setiap aplikasi atau lingkungan (pengembangan, pementasan, produksi). Ini membatasi radius ledakan jika kredensi dikompromikan.
-
Terapkan prinsip hak istimewa terkecil — Berikan hanya izin minimum yang diperlukan untuk setiap kasus penggunaan. Batasi akses ke API dan sumber daya tertentu daripada menggunakan wildcard.
-
Putar kredensi secara teratur — Putar kunci API secara berkala dan tinjau kebijakan IAM. Hapus kredenal yang tidak digunakan segera.
-
Jangan pernah mengekspos kredensi dalam kode sumber — Simpan kunci API, ID kumpulan identitas Amazon Cognito, dan nilai sensitif lainnya dalam variabel lingkungan, pengelola rahasia, atau penyimpanan konfigurasi aman. Jangan berkomitmen pada kontrol versi.
Optimalisasi kunci API
Kunci API menyediakan cara sederhana untuk memberikan akses tidak terautentikasi dan hanya-baca ke sumber daya Peta, Tempat, dan Rute. Ikuti praktik ini untuk meminimalkan risiko keamanan dan mengoptimalkan penggunaan.
-
Batasi tindakan dan sumber daya — Saat membuat kunci API, tentukan hanya tindakan dan sumber daya yang dibutuhkan aplikasi. Misalnya, aplikasi khusus peta seharusnya hanya mengizinkan
geo-maps:*tindakan pada sumber daya penyedia peta. -
Terapkan pembatasan klien — Konfigurasikan batasan perujuk domain untuk aplikasi web, atau batasan pengenal aplikasi untuk aplikasi Android dan iOS. Ini mencegah kunci Anda digunakan pada asal yang tidak sah. Untuk informasi selengkapnya, lihat Batasi penggunaan kunci API berdasarkan asal permintaan.
-
Atur waktu kedaluwarsa - Gunakan kedaluwarsa kunci untuk menerapkan rotasi reguler. Buat kunci baru sebelum yang lama kedaluwarsa, perbarui aplikasi Anda, lalu nonaktifkan kunci lama.
-
Pantau penggunaan per tombol — Gunakan CloudWatch metrik dengan
ApiKeyNamedimensi untuk melacak penggunaan setiap tombol satu per satu. Atur alarm pada lonjakan tak terduga.CallCount -
Hapus kunci yang tidak digunakan — Audit kunci API Anda secara teratur dan hapus kunci yang tidak lagi digunakan. Kunci tidak aktif yang telah dinonaktifkan dapat dihapus setelah 90 hari.
Batasi penggunaan kunci API berdasarkan asal permintaan
Anda dapat mengonfigurasi kunci API dengan batasan klien yang membatasi akses ke domain atau aplikasi seluler tertentu. Saat membatasi berdasarkan domain, layanan hanya mengotorisasi permintaan jika header HTTP Referer cocok dengan nilai yang Anda berikan. Saat membatasi oleh aplikasi Android atau Apple, layanan hanya mengotorisasi permintaan jika bidang header HTTP pengenal aplikasi cocok dengan nilai yang Anda berikan.
Untuk informasi selengkapnya tentang pembatasan kunci API, lihat ApiKeyRestrictionsdi Referensi API Amazon Location Service.
Pengidentifikasi aplikasi Android:
-
X-Android-Package:Pengenal unik untuk aplikasi Android, yang ditentukan dalam
build.gradlefile aplikasi, biasanya mengikuti format domain terbalik.Contoh:
com.mydomain.appname -
X-Android-Cert:SHA-1 Hash sertifikat penandatanganan yang digunakan untuk menandatangani APK Android.
Contoh:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
Pengidentifikasi aplikasi Apple:
-
X-Apple-Bundle-Id:Pengenal unik untuk aplikasi Apple (iOS, macOS, dll.), yang ditentukan dalam aplikasi
Info.plist, biasanya mengikuti format domain terbalik.Contoh:
com.mydomain.appname
Pengoptimalan Amazon Cognito
Amazon Cognito menyediakan kontrol akses yang lebih terperinci daripada kunci API dan mendukung pengguna yang diautentikasi dan tidak diautentikasi.
-
Cakupan peran yang tidak diautentikasi — Saat menggunakan kumpulan identitas untuk akses anonim, lampirkan kebijakan IAM yang hanya mengizinkan tindakan dan sumber daya Lokasi Amazon tertentu yang dibutuhkan aplikasi Anda.
-
Gunakan tombol kondisi untuk pemfilteran IP - Tambahkan
aws:SourceIpkondisi ke kebijakan IAM Anda untuk membatasi akses ke rentang IP yang diketahui bila sesuai. -
Simpan kumpulan identitas di Wilayah yang sama — Buat kumpulan identitas Amazon Cognito di AWS Wilayah yang sama dengan sumber daya Amazon Location Service Anda untuk menghindari latensi lintas wilayah dan memastikan akses yang tepat.
-
Gunakan identitas yang diautentikasi bila memungkinkan — Jika aplikasi Anda memiliki alur masuk, gunakan kumpulan pengguna Amazon Cognito atau identitas gabungan untuk memberikan peran yang diautentikasi dengan izin tertentu daripada mengandalkan akses yang tidak diautentikasi.
Optimalisasi IAM
Untuk aplikasi sisi server dan alat internal, gunakan AWS Identity and Access Management untuk kontrol penuh atas akses.
-
Gunakan peran IAM sebagai ganti kredensi jangka panjang — Untuk aplikasi yang berjalan pada layanan AWS komputasi (seperti Amazon EC2, Lambda, atau Amazon ECS), gunakan peran IAM untuk menyediakan kredenal sementara secara otomatis.
-
Menerapkan izin tingkat sumber daya — Tentukan ARN sumber daya dalam kebijakan Anda, bukan menggunakan wildcard. Misalnya, batasi akses ke sumber daya pelacak atau pengumpulan geofence tertentu.
-
Gunakan ketentuan kebijakan — Tambahkan kondisi seperti
aws:RequestedRegionuntuk membatasi akses ke Wilayah tertentu, atauaws:PrincipalTaguntuk kontrol akses berbasis atribut. -
Aktifkan CloudTrail — Gunakan AWS CloudTrail untuk mencatat semua panggilan Amazon Location Service API untuk audit dan kepatuhan. Tinjau log secara teratur untuk pola akses yang tidak terduga.