Apple uygulamanız Firebase ML'ın bulut API'lerinden birini kullanıyorsa uygulamanızı üretime sunmadan önce yetkisiz API erişimini önlemek için bazı ek adımlar atmanız gerekir.
1. Mevcut API anahtarlarının kapsamını daraltma
Öncelikle, mevcut API anahtarlarınızı Cloud Vision API'ye erişime izin vermeyecek şekilde yapılandırın:
Google Cloud konsolunun Kimlik Bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Listedeki her mevcut API için düzenleme görünümünü açın.
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şiminin olduğu API'leri açıkça bildirmiş olursunuz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçili olduğunda, proje için etkinleştirilen herhangi bir API'ye erişmek için bir API anahtarı 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 API'ler için çalışmaya devam edecektir.
Gelecekte başka API'ler etkinleştirirseniz bunları geçerli API anahtarının 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'ye çağrılara izin veren yeni bir API anahtarı oluşturun:
Kimlik bilgileri sayfasına dönün. Firebase projenizin hâlâ seçili olduğundan emin olun.
Kimlik bilgileri oluştur > API anahtarı'nı tıklayın. Yeni API anahtarını not edin ve Anahtarı kısıtla'yı tıklayın.
API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin ve 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.
3. Önerilen: Cloud Vision API'nin kotasını düşürün
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:
Google Cloud konsolunun Cloud Vision API Kotaları sayfasını açın. İstendiğinde projenizi seçin.
İ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ız metnini geri almak için bir dokümanın resmini yüklemeyi içeriyorsa kullanıcının bunu birkaç saniyede bir defadan fazla yapması pek olası değildir. Bu nedenle 30-40 karakterlik bir kota muhtemelen güvenli olacaktır.
Bu bağlamda "kullanıcı başına istek sayısı" tek bir IP adresinden gelen istekleri ifade eder. Birden fazla kullanıcının uygulamanızı bir NAT arkasından aynı anda 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 kimlik doğrulaması yapılmadan erişilmesine izin verdiğinden, yetkisiz kullanımı ve faturalandırma hesabınızdan ödeme alınmasını önlemek için anahtarı gizli tutmanız önemlidir. Bunu yapmak için API anahtarınızı uygulama ikili programınıza dahil etmekten kaçınmalısınız. Bunun yerine, uygulamanın çalışma zamanında, bilinen iyi bir kullanıcının oturum açtığını doğrulayın ve yalnızca bundan sonra API anahtarını bir sunucudan alın.
Bu uygulamalara uyulduğunda bile API anahtarının güvenliğinin ihlal edilmesi mümkündür. Güvenliği ihlal edilmiş bir anahtarın sonuçlarını azaltmak için yukarıda açıklandığı gibi API'nin kullanıcı başına kotasını azaltma, anahtar rotasyonu politikaları uygulama ve farklı kullanıcı gruplarına farklı anahtarlar verme gibi adımlar atmanız gerekir.
Uygulamanız API anahtarını güvenli bir şekilde edindikten 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.