了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Firebase ML Apple uygulamanızın Bulut kimlik bilgilerini koruyun

Apple uygulamanız Firebase ML'nin bulut API'lerinden birini kullanıyorsa, uygulamanızı üretimde başlatmadan önce yetkisiz API erişimini önlemek için bazı ek adımlar atmanız gerekir.

1. Mevcut API anahtarlarının kapsamını azaltın

Öncelikle, Cloud Vision API'ye erişimi engellemek için mevcut API anahtarlarınızı yapılandırın:

  1. Google Cloud Console'un Kimlik Bilgileri sayfasını açın. İstendiğinde, projenizi seçin.

  2. Listedeki mevcut her API anahtarı için düzenleme görünümünü açın.

  3. API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin, ardından API anahtarının erişmesini istediğiniz tüm API'leri listeye ekleyin. Cloud Vision API'yi eklemediğinizden emin olun.

    Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişim sahibi olduğu API'leri açık bir şekilde bildirmiş olursunuz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçeneği seçildiğinde, proje için etkinleştirilen herhangi bir API'ye erişmek için bir API anahtarı kullanılabilir.

Artık mevcut API anahtarlarınız, bulut makine öğrenimi hizmetlerine erişim izni vermeyecek, ancak her bir anahtar, API kısıtlama listesine eklediğiniz tüm API'ler için çalışmaya devam edecek.

Gelecekte herhangi bir ek API'yi etkinleştirirseniz, bunları geçerli API anahtarı için API kısıtlamaları listesine eklemeniz gerektiğini unutmayın.

2. Firebase ML ile kullanmak için yeni bir API anahtarı oluşturun

Ardından, Firebase ML için yalnızca Cloud Vision API'ye yapılan çağrılara izin veren yeni bir API anahtarı oluşturun:

  1. Kimlik Bilgileri sayfasına geri dönün. Firebase projenizin hâlâ seçili olduğundan emin olun.

  2. Kimlik bilgileri oluştur > API anahtarı 'nı tıklayın. Yeni API anahtarını not edin, ardından Anahtarı kısıtla'yı tıklayın.

  3. API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin, ardından listeye yalnızca Cloud Vision API'yi ekleyin.

Bu API anahtarı yalnızca Cloud Vision API'ye erişim sağlar ve Firebase ML tarafından bulut tabanlı modellere erişmek için kullanılabilir.

Güvenliği ihlal edilmiş bir anahtarın sonuçlarını hafifletmeye yardımcı olmak için Cloud Vision API'nin kullanıcı başına kotasını varsayılan ayarından azaltmalısınız. Böyle yaparak:

  1. Google Cloud Konsolunun Cloud Vision API Kotaları sayfasını açın. İstendiğinde, projenizi seçin.

  2. İstekler bölümünde, Kullanıcı başına dakika başına istek kotasını uygulamanız için makul bir değere ayarlayın. Örneğin, uygulamanız metnini geri almak için bir belgenin resmini yüklemeyi içeriyorsa, bir kullanıcının bunu birkaç saniyede birden fazla yapması olası değildir, bu nedenle 30-40'lık bir kota muhtemelen güvenli olacaktır.

    Bu bağlamda "kullanıcı başına istek" ifadesinin tek bir IP adresinden gelen istekleri ifade ettiğini unutmayın. Birden çok kullanıcının uygulamanızı aynı anda bir NAT'ın arkasından kullanmasını bekliyorsanız, bunu göz önünde bulundurmanız gerekebilir.

4. Firebase ML API anahtarınızı kullanarak Cloud API'leri çağırın

Son olarak, uygulamanızda Firebase ML'yi yeni API anahtarınızı kullanacak şekilde yapılandırın.

Firebase ML API anahtarı, Cloud Vision API'ye kimliği doğrulanmamış erişime izin verdiğinden, yetkisiz kullanımı ve faturalandırma hesabınızdan ücret alınmasını önlemek için anahtarı gizli tutmanız önemlidir. Bunu yapmak için API anahtarınızı uygulamanızın ikili dosyasına dahil etmekten kaçınmalısınız. Bunun yerine, uygulama çalışma zamanında bilinen iyi bir kullanıcının oturum açtığını doğrulayın ve ancak o zaman bir sunucudan API anahtarını alın.

Bu uygulamalar gözlemlense bile bir API anahtarının ele geçirilmesi mümkündür. Yukarıda açıklandığı gibi API'nin kullanıcı başına kotasını azaltmak, anahtar rotasyonu ilkelerini uygulamak ve farklı kullanıcı gruplarına farklı anahtarlar vermek gibi, gizliliği ihlal edilmiş bir anahtarın sonuçlarını hafifletmeye yardımcı olacak adımlar atmalısınız.

Uygulamanız güvenli bir şekilde API anahtarını aldıktan sonra, bir Firebase ML Bulut API'sini çağırmak istediğinizde anahtarı belirtin:

Süratli

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)
}

Amaç-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];
}

Ek olarak, Bir API anahtarının güvenliğini sağlama bölümündeki genel tavsiyeye uymalısınız.

Sonraki adımlar

Diğer Firebase özelliklerini kullanırken uygulamanızı başlatmaya hazırlama hakkında bilgi için başlatma kontrol listesine bakın.