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 mevcut API anahtarlarınızı Cloud Vision API'ye erişime izin vermeyecek şekilde yapılandırın:

  1. Google Cloud konsolunun 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 seçeneğini seçin ve 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ça beyan etmiş olursunuz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçeneği seçili olduğunda, 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 vermeyecek ancak her anahtar, API kısıtlama listesine eklediğiniz tüm API'ler için çalışmaya devam edecek.

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

2. Firebase ML ile kullanılacak yeni bir API anahtarı oluşturun

Ardından Firebase ML için yalnızca Cloud Vision API çağrılarına 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 ve ardından Anahtarı kısıtla'yı tıklayın.

  3. API kısıtlamaları bölümünde Anahtarı kısıtla öğesini seçin ve 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 düşürmelisiniz. 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 İstek 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, kullanıcının bunu birkaç saniyede birden fazla yapması pek olası değildir, dolayısıyla 30-40'lık bir kota muhtemelen güvenli olacaktır.

    Bu bağlamda "kullanıcı başına isteklerin" tek bir IP adresinden gelen istekleri ifade ettiğini unutmayın. Birden fazla kullanıcının uygulamanızı aynı anda bir NAT arkasından kullanmasını bekliyorsanız bunu dikkate almanız gerekebilir.

4. Firebase ML API anahtarınızı kullanarak Cloud API'leri arayı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 kimlik doğrulamasız erişime izin verdiğinden, yetkisiz kullanımı ve faturalandırma hesabınızdan ücret alınmasını önlemek için anahtarı gizli tutmak önemlidir. Bunu yapmak için API anahtarınızı uygulama ikili programınıza eklemekten kaçınmalısınız. Bunun yerine, uygulama çalışma zamanında, iyi bilinen bir kullanıcının oturum açtığını doğrulayın ve ancak bundan sonra API anahtarını bir sunucudan alın.

Bu uygulamalara uyulsa bile 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 rotasyon politikalarını uygulamak ve farklı kullanıcı gruplarına farklı anahtarlar vermek gibi güvenliği ihlal edilmiş bir anahtarın sonuçlarını hafifletmeye yardımcı olacak adımlar atmalısınız.

Uygulamanız API anahtarını güvenli bir şekilde aldıktan sonra Firebase ML Cloud API'yi ç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];
}

Ayrıca, API anahtarının güvenliğini sağlama bölümündeki genel tavsiyelere de uymalısınız.

Sonraki adımlar

Uygulamanızı diğer Firebase özelliklerini kullanırken başlatılacak şekilde hazırlama hakkında bilgi için başlatma kontrol listesine bakın.