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

Apple uygulamanız Firebase ML'nın bulut API'lerinden birini kullanıyorsa uygulamanızı üretimde kullanıma sunmadan önce yetkisiz API erişimini engellemek için birkaç işlem daha yapmanız gerekir.

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

Öncelikle, mevcut API anahtarlarınızı Cloud Vision API'ye erişimi engelleyecek şekilde yapılandırın:

  1. Google Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.

  2. Listedeki her mevcut 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'nin dahil edilmediğinden emin olun.

    Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişebileceği API'leri açıkça belirtirsiniz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçiliyken bir API anahtarı, proje için etkinleştirilmiş tüm API'lere erişmek üzere kullanılabilir.

Mevcut API anahtarlarınız artık Cloud ML hizmetlerine erişim izni vermeyecek ancak her anahtar, API kısıtlamaları listesine eklediğiniz tüm API'ler için çalışmaya devam edecek.

Gelecekte ek API'ler etkinleştirirseniz bunları ilgili API anahtarının API kısıtlamaları listesine eklemeniz gerektiğini unutmayın.

2. Firebase ML ile kullanılmak üzere 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 dönün. Firebase projenizin 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 izni verir 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ı azaltmak için Cloud Vision API'nin kullanıcı başına kotasını varsayılan ayarından düşürmeniz gerekir. Bunu yapmak için:

  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 sayısı kotasını uygulamanız için makul bir değere ayarlayın. Örneğin, uygulamanızda bir belgenin metnini almak için belgenin resmini yükleme işlemi yapılıyorsa kullanıcının bunu birkaç saniyede birden fazla kez yapması pek olası değildir. Bu nedenle, 30-40 kotası 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 fazla kullanıcının NAT'ın arkasından aynı anda uygulamanızı kullanmasını bekliyorsanız bunu göz önünde bulundurmanız gerekebilir.

4. Firebase ML API anahtarınızı kullanarak Cloud API'lerini çağırma

Son olarak, uygulamanızda Firebase ML 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ıza yansıtılacak ücretleri önlemek için anahtarın gizli tutulması önemlidir. Bunu yapmak için API anahtarınızı uygulama ikili programınıza eklememeniz gerekir. Bunun yerine, uygulama çalışma zamanında bilinen iyi bir kullanıcının oturum açtığını doğrulayın ve yalnızca o zaman API anahtarını bir sunucudan alın.

Bu uygulamalara uyulsa bile API anahtarının güvenliği ihlal edilebilir. Yukarıda açıklandığı gibi API'nin kullanıcı başına kotasını azaltma, anahtar döndürme politikaları uygulama ve farklı kullanıcı gruplarına farklı anahtarlar verme gibi, güvenliği ihlal edilmiş bir anahtarın sonuçlarını azaltmaya yardımcı olacak adımlar atmanız gerekir.

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

Swift

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

Ayrıca, API anahtarının güvenliğini sağlama başlıklı makaledeki genel tavsiyelere uymanız gerekir.

Sonraki adımlar

Diğer Firebase özelliklerini kullanırken uygulamanızı kullanıma sunmaya hazırlama hakkında bilgi edinmek için kullanıma sunma yapılacaklar listesine bakın.