Lindungi kredensial Cloud aplikasi Firebase ML Apple Anda

Jika aplikasi Apple Anda menggunakan salah satu API cloud Firebase ML, sebelum meluncurkan aplikasi dalam produksi, Anda harus mengambil beberapa langkah tambahan untuk mencegah akses API yang tidak sah.

1. Kurangi cakupan kunci API yang ada

Pertama, konfigurasikan kunci API Anda yang ada untuk melarang akses ke Cloud Vision API:

  1. Buka Kredensial halaman Cloud Console Google. Saat diminta, pilih proyek Anda.

  2. Untuk setiap kunci API yang ada dalam daftar, buka tampilan pengeditan.

  3. Pada bagian pembatasan API, pilih Batasi kunci, maka menambah daftar semua API yang ingin Anda kunci API untuk memiliki akses. Pastikan untuk tidak menyertakan API Cloud Vision.

    Bila Anda mengkonfigurasi pembatasan API API key, Anda secara eksplisit menyatakan API yang kunci memiliki akses. Secara default, ketika bagian pembatasan API telah tidak membatasi kunci yang dipilih, kunci API dapat digunakan untuk mengakses API yang diaktifkan untuk proyek tersebut.

Sekarang, kunci API yang ada tidak akan memberikan akses ke layanan cloud ML, tapi setiap tombol akan terus bekerja untuk setiap API yang Anda ditambahkan ke daftar pembatasan API.

Perhatikan bahwa jika Anda mengaktifkan salah API tambahan di masa depan, Anda harus menambahkan mereka ke daftar pembatasan API untuk kunci API yang berlaku.

2. Buat kunci API baru untuk digunakan dengan Firebase ML

Selanjutnya, buat kunci API baru untuk Firebase ML yang hanya mengizinkan panggilan ke Cloud Vision API:

  1. Kembali ke Kredensial halaman. Pastikan proyek Firebase Anda masih dipilih.

  2. Klik Buat kredensial> API key. Mencatat kunci API baru, kemudian klik Batasi kunci.

  3. Pada bagian pembatasan API, pilih Batasi kunci, maka menambah daftar hanya API Cloud Vision.

Kunci API ini hanya memberikan akses ke Cloud Vision API dan dapat digunakan oleh Firebase ML untuk mengakses model berbasis cloud.

Untuk membantu mengurangi konsekuensi dari kunci yang disusupi, Anda harus mengurangi kuota per pengguna Cloud Vision API dari setelan defaultnya. Untuk melakukannya:

  1. Buka Visi Cloud API Kuota halaman Cloud Console Google. Saat diminta, pilih proyek Anda.

  2. Dalam Permintaan bagian, mengatur Permintaan per menit per pengguna kuota untuk sesuatu yang masuk akal untuk aplikasi Anda. Misalnya, jika aplikasi Anda melibatkan pengunggahan gambar dokumen untuk mendapatkan kembali teksnya, kecil kemungkinannya pengguna akan melakukannya lebih dari sekali setiap beberapa detik, jadi kuota 30-40 mungkin aman.

    Perhatikan bahwa dalam konteks ini "permintaan per pengguna" mengacu pada permintaan dari satu alamat IP. Anda mungkin perlu mempertimbangkan ini jika Anda mengharapkan beberapa pengguna menggunakan aplikasi Anda secara bersamaan dari belakang NAT.

4. Panggil Cloud API menggunakan kunci API Firebase ML Anda

Terakhir, di aplikasi Anda, konfigurasikan Firebase ML untuk menggunakan kunci API baru Anda.

Karena kunci Firebase ML API memungkinkan akses yang tidak diautentikasi ke Cloud Vision API, penting untuk menjaga kerahasiaan kunci untuk mencegah penggunaan dan tagihan yang tidak sah ke akun penagihan Anda. Untuk melakukannya, Anda harus menahan diri untuk tidak menyertakan kunci API dalam biner aplikasi Anda. Sebagai gantinya, pada waktu proses aplikasi, verifikasi bahwa pengguna yang dikenal baik telah masuk, dan baru setelah itu, ambil kunci API dari server.

Bahkan ketika praktik ini diamati, ada kemungkinan kunci API disusupi. Anda harus mengambil langkah-langkah untuk membantu mengurangi konsekuensi dari kunci yang disusupi, seperti mengurangi kuota per pengguna API seperti yang dijelaskan di atas, menerapkan kebijakan rotasi kunci, dan mengeluarkan kunci yang berbeda untuk grup pengguna yang berbeda.

Setelah aplikasi Anda memperoleh kunci API dengan aman, saat Anda ingin memanggil Firebase ML Cloud API, tentukan kuncinya:

Cepat

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

Selain itu, Anda harus mengikuti saran umum dalam Mengamankan kunci API .

Langkah selanjutnya

Lihat daftar peluncuran untuk informasi tentang mempersiapkan aplikasi untuk peluncuran saat menggunakan fitur-fitur lainnya Firebase.