API güvenliğiyle ilgili en iyi uygulamalar

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

API anahtarları, Google Haritalar Platformu API'lerini ve SDK'larını kullanan uygulama ve projeler için gereklidir. Maksimum güvenlik ve minimum çaba için API anahtarlarınızı oluştururken güvenliğini sağlayın.

API anahtarları oluşturulduktan ve kullanıldıktan sonra güvenli hale getirilse de anahtarın nasıl kullanıldığına bağlı olarak farklı kısıtlamalar olabilir. Tüm müşteriler uygulamalarını güncelleyene kadar anahtarların tamamı değiştirilmeyeceği için mobil uygulamalardaki (Android ve iOS) anahtarları güncellemek veya değiştirmek en karmaşık işlemdir. JavaScript veya Web Hizmeti uygulamalarında anahtarları güncellemek veya değiştirmek çok daha kolaydır. Ancak bu anahtarları güncellemek veya değiştirmek için dikkatli bir planlama yapmanız ve hızlı çalışmanız gerekebilir.

Google Haritalar Platformu ürünü gibi alakalı her bir Google Haritalar Platformu ürünü için geçerli olan güvenlik uygulamaları Daha fazla bilgi bölümünde listelenmiştir.

API anahtarlarınızı kısıtlama

API anahtarlarınızı ilk oluşturduğunuzda, bunları bir uygulama kısıtlaması ve bir veya daha fazla API kısıtlamasıyla kısıtlayın.

  • Uygulama kısıtlamaları, API anahtarının kullanımını belirli bir platformla (Android veya iOS) veya belirli sitelerle (herkese açık IP adresi ve web sitesi) sınırlar. Herhangi bir API anahtarına yalnızca bir uygulama kısıtlaması türü eklenebilir.

  • API kısıtlamaları, API anahtarlarının kullanımını bir veya daha fazla Google Haritalar Platformu API'si veya SDK ile sınırlar. Yalnızca API anahtarıyla ilişkilendirilmiş API'leri veya SDK'ları kullanma istekleri işleme alınır. Herhangi bir API anahtarı için gerektiği kadar API kısıtlaması belirtebilirsiniz.

API anahtarınızı oluştururken güvenliğini sağlamadıysanız ek API anahtarları oluşturup bunları kısıtlayın. Ardından tüm uygulamalarınızı yeni API anahtarlarıyla güncelleyin. Uygulama başına bir anahtar güvenlik nedeniyle ideal olsa da, anahtardaki uygulama kısıtlamalarının türleri, bir anahtarı paylaşan uygulamalarla uyumsuzluk sorununa yol açmadığı sürece birden fazla uygulamada kullanılabilir.

API anahtarlarını oluşturduktan sonra kısıtlıyorsanız kısıtlamaların mevcut uygulamalarınızın hiçbirini bozmayacağından emin olmak için API anahtarı kullanımını kontrol edin.

  1. Google Cloud Console Metrikler sayfasına gidin.

  2. Filtreleri göster'i seçin.

  3. Group by (Gruplama ölçütü) bölümünde Credential (Kimlik bilgisi) seçeneğini belirleyin. Hangi Google anahtarlarıyla hangi API anahtarlarının kullanıldığını görürsünüz.

  4. Credentials (Kimlik Bilgileri) seçeneğini tıklayın.

  5. Tüm kimlik bilgilerinin seçimini kaldırın.

  6. Gösterilen her anahtar için anahtarı seçin ve Tamam'ı tıklayın.

  7. Group by (Gruplama ölçütü) bölümünde API'yi seçin. Anahtara uygulanacak API kısıtlamalarını görürsünüz.

    Grouped by (Gruplama ölçütü) seçeneğinde API method'ı (API yöntemi) seçmek, hangi uygulama kısıtlama türünün anahtar için en uygun olduğuna dair ipuçları sağlayabilir.

API anahtarı için uygulama kısıtlaması ayarlama

  1. Credentials (Kimlik Bilgileri) sayfasına gidin.
  2. Kısıtlama ayarlamak istediğiniz API anahtarını seçin. API anahtarı mülk sayfası görünür.

  3. Anahtar kısıtlamaları altında, Uygulama kısıtlamaları'nı seçin.

    Kısıtlama türlerinden birini seçin ve kısıtlama listesini takip ederek istenen bilgileri sağlayın.

    Kısıtlama türü Açıklama
    HTTP yönlendirenleri Bir veya daha fazla yönlendiren web sitesi belirtin. Joker karakterleri tüm alt alan adlarını yetkilendirmek için kabul edilebilir (örneğin, *.google.com, .google.com ile biten tüm siteleri kabul eder). https:// ve http:// değerlerini olduğu gibi belirtin. Diğer yönlendiren URL protokolü türleri için özel bir temsil kullanmanız gerekir. Örneğin, file:///path/to/ biçimini __file_url__//path/to/* olarak ayarlayın. Yönlendirenleri etkinleştirdikten sonra, beklentilerinizi karşıladığından emin olmak için kullanımınızı izleyin. Şu yönlendiren protokolleri desteklenir: about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://.
    IP adresleri CIDR gösterimini kullanarak bir IPv4 veya IPv6 adresi ya da bir alt ağ belirtin. Bir web hizmeti web hizmeti isteği, harici IP adresini kontrol edip API anahtarı kısıtlamasıyla karşılaştırdığı için sunucunun herkese açık IP adresini kullanın.
    Android uygulamaları AndroidManifest.xml dosyanızdan SHA-1 imza sertifikası parmak izinizi ve Android paket adınızı ekleyin.
    iOS uygulamaları Türlerin altında, listeden uygun iOS paket tanımlayıcısını seçin.
  4. Kaydet'i seçin.

API anahtarı için API kısıtlaması ayarlama

  1. Kimlik bilgileri sayfasına gidin.

  2. Kısıtlamak istediğiniz API anahtarını seçin. API anahtarını kısıtlama ve yeniden adlandırma sayfası görüntülenir.

  3. API kısıtlamaları altında:

    • Anahtarı kısıtla'yı tıklayın.

    • API'leri seç açılır menüsünü tıklayın ve uygulamanızın API anahtarını kullanarak erişmesini istediğiniz API'leri veya SDK'ları seçin.

      (API veya SDK listede yoksa etkinleştirmeniz gerekir.)

  4. Kaydet'i tıklayın.

    Kısıtlama, bu adımdan sonra API anahtarı tanımının bir parçası olur. Gerekli ayrıntıları sağlayamazsanız veya "Kaydet"i tıklamazsanız API anahtarı kısıtlanmaz. (Daha fazla bilgi için ilgilendiğiniz API veya SDK'nın API Anahtarı Alma kılavuzuna göz atın.)

Kullanılmayan API anahtarlarını silme

Bir API anahtarını silmeden önce, üretimde kullanılmadığından emin olun. Başarılı trafik yoksa anahtarı silmek güvenli olabilir.

API anahtarını silmek için:

  1. Credentials (Kimlik Bilgileri) sayfasına gidin.

  2. Silmek istediğiniz API anahtarını seçin.

  3. Sayfanın üst kısmına yakın bir yerdeki Sil düğmesini seçin.

  4. Kimlik bilgisini silin iletişim kutusu göründüğünde Sil'i seçin.

    API anahtarının silinmesi birkaç dakika sürer. Yayılmanın ardından silinen API anahtarını kullanan trafik reddedilir.

API'lerinizi korumanın diğer yolları

API anahtarlarını yeniden oluştururken dikkatli olun

Bir API anahtarını yeniden oluşturmak, eski anahtarın tüm kısıtlamalarına sahip yeni bir anahtar oluşturur. Bu işlem, eski API anahtarını devre dışı bırakmak için 24 saatlik bir zamanlayıcı da başlatır.

Bu süre boyunca hem eski hem de yeni anahtar kabul edilir. Böylece uygulamalarınızı yeni anahtarı kullanacak şekilde taşıyabilirsiniz. Ancak bu süre geçtikten sonra hâlâ eski API anahtarını kullanan uygulamalar çalışmayı durdurur.

  1. API anahtarları sayfasına gidin.

  2. Önceki anahtara geri dön'ü seçin.

  3. Geri al iletişim kutusunda Tuşu geri al'ı tıklayın.

Geri çekildikten sonra anahtarın eski "yeni" sürümü önceki sürüme dönüşür ve anahtar için yeni 24 saatlik devre dışı bırakma zamanlayıcısı ayarlanır. Anahtarı yeniden oluşturana kadar bu iki anahtar değeri arasında geçiş yapabilirsiniz.

Bu ikinci yeniden oluşturma işleminde, eski etkin olmayan anahtar değeri geçersiz kılınır.

API kullanımınızı izleme

API anahtarı kullanımınızı kontrol etmek için:

  1. Metrikler sayfasına gidin.

  2. Filtreleri göster'i tıklayın.

  3. Group by (Gruplama ölçütü) bölümünde, API method'ı (API yöntemi) seçin.

  4. Bu anahtara yönelik başarılı istekleri görmek için Yanıt kodu altında 2xx'i seçin.

Yetkisiz kullanım tespit ederseniz aşağıdakileri yapın:

  1. Anahtarlarınızı kısıtlayın.

    Aynı anahtar birden fazla uygulamada kullanılıyorsa birden fazla API anahtarına geçiş yapma, tercihen her uygulama için ayrı API anahtarları kullanma

  2. Yetkisiz kullanım devam ederse etkilenen anahtarları yeniden oluşturun veya silin.

  3. Destek ekibiyle iletişime geçin.

Her uygulama için ayrı bir API anahtarı kullanın

Bu şekilde her bir anahtarın kapsamı sınırlanır. Bir API anahtarının güvenliği ihlal edildiyse etkilenen API anahtarını diğer API anahtarlarınızı güncellemenize gerek kalmadan silebilir veya yeniden oluşturabilirsiniz.

Birden çok API anahtarına taşıma

Birden fazla uygulama için bir API anahtarından her bir uygulamaya ilişkin tek bir benzersiz API anahtarına geçiş yapmak için aşağıdakileri yapın:

  1. Hangi uygulamaların yeni anahtarlara ihtiyacı olacağını belirleyin.

    • Tüm kodu kontrol ettiğiniz için web uygulamalarını güncellemenin en kolay yöntemi budur. Tüm web tabanlı uygulamalarınızı ve anahtarlarınızı güncellemeyi planlayın.
    • Yeni anahtarların kullanılabilmesi için müşterilerinizin uygulamalarını güncellemesi gerektiğinden, mobil uygulamalar çok daha zordur.
  2. Yeni anahtarları oluşturun ve kısıtlayın.

    • Hem uygulama kısıtlaması hem de en az bir API kısıtlaması ekleyin.
  3. Yeni anahtarları çeşitli uygulamalarınıza ekleyin.

    • Mobil uygulamalarda bu işlemin tüm kullanıcılarınızın yeni API anahtarıyla en son uygulamaya güncellenmesi aylar sürebilir.

Haritalar Web Hizmeti API'leri veya Statik Web API'leri uygulama koruma yöntemleri

  • Uygulamanızın kaynak kodunun dışında API anahtarları ve imzalama gizli anahtarları depolayın. Ortam değişkenlerine API anahtarlarınızı veya diğer özel bilgilerinizi yerleştirir ya da ayrı olarak depolanan dosyaları ekler ve kodunuzu paylaşırsanız API anahtarları veya imzalama gizli anahtarları paylaşılan dosyalara dahil edilmez.

  • API anahtarlarını veya imza sırlarını uygulamanızın kaynak ağacının dışındaki dosyalarda depolayın. Dosyalarda API anahtarları veya başka özel bilgiler depoluyorsanız anahtarlarınızı kaynak kodu kontrol sisteminizin dışında tutmak için dosyaları uygulamanızın kaynak ağacının dışında tutun. GitHub gibi herkese açık bir kaynak kod yönetim sistemi kullanıyorsanız bu yaklaşım özellikle önemlidir.

Web Service API'leri veya Statik Web API'leri mobil uygulama koruma yöntemleri

  • Bir proxy sunucu kullanın. Proxy sunucu, uygun Google Haritalar Platformu API'si ile etkileşim kurmak için sağlam bir kaynak sağlar. Proxy sunucu kullanma hakkında daha fazla bilgi için Temkinli Yaşam: Google Sunucu API'si İstemci Kitaplıklarıyla Proxy Sunucuları Kullanma bölümüne bakın.

  • API anahtarını veya imzalama gizli anahtarını karartın ya da şifreleyin. Bu, API anahtarlarının ve diğer özel verilerin doğrudan uygulamadan alınmasını kolaylaştırır.

Daha fazla bilgi

Bu tablolarda, her Google Haritalar Platformu API'si, SDK'sı veya hizmeti için uygun API anahtarı kısıtlamaları ve API güvenliği en iyi uygulamaları listelenmektedir.

Haritalar JavaScript, Yerleştirme veya Statik API'leri olan web siteleri

API/SDK/Hizmet Uygulama Kısıtlaması (1) API Kısıtlaması (1) En iyi uygulamalar
Maps JavaScript API (2) HTTP yönlendiren kısıtlaması Maps JavaScript API
Directions Hizmeti, Maps JavaScript API HTTP yönlendiren kısıtlaması Directions API, Maps JavaScript API
Mesafe Matrisi Hizmeti, Maps JavaScript API HTTP yönlendiren kısıtlaması Mesafe Matrisi API'si, Maps JavaScript API
Rakım Hizmeti, Maps JavaScript API HTTP yönlendiren kısıtlaması Elevation API, Maps JavaScript API
Coğrafi Kodlama Hizmeti, Maps JavaScript API HTTP yönlendiren kısıtlaması Geocoding API, Maps JavaScript API
Yerler Kitaplığı, Maps JavaScript API HTTP yönlendiren kısıtlaması Places API, Maps JavaScript API
Maps Yerleştirme API'si HTTP yönlendiren kısıtlaması Maps Embed API
Maps Static API HTTP yönlendiren kısıtlaması Maps Static API
Street View Statik API'si HTTP yönlendiren kısıtlaması Street View Static API

Web hizmetlerini kullanan uygulamalar ve sunucular

API/SDK/Hizmet Uygulama Kısıtlaması (1) API Kısıtlaması (1) En iyi uygulamalar
Directions API IP adresi kısıtlaması(4) Directions API
Distance Matrix API IP adresi kısıtlaması(4) Distance Matrix API
Elevation API IP adresi kısıtlaması(4) Elevation API
Coğrafi Kodlama API'sı IP adresi kısıtlaması(4) Geocoding API
Coğrafi Konum API IP adresi kısıtlaması(4) Geolocation API
Places API'si (5) IP adresi kısıtlaması(4) Places API
Roads API IP adresi kısıtlaması(4) Roads API
Saat Dilimi API'si IP adresi kısıtlaması(4) Time Zone API

Android uygulamaları

API/SDK/Hizmet Uygulama Kısıtlaması (1) API Kısıtlaması (1) En iyi uygulamalar
Android için Haritalar SDK'sı Android kısıtlaması Android için Haritalar SDK'sı
Android için Yerler SDK'sı Android kısıtlaması Places API

iOS uygulamaları

API/SDK/Hizmet Uygulama Kısıtlaması (1) API Kısıtlaması (1) En iyi uygulamalar
iOS için Haritalar SDK'sı iOS kısıtlaması iOS için Haritalar SDK'sı
iOS için Yerler SDK'sı iOS kısıtlaması Places API

1 Herhangi bir Google Maps Platform API veya SDK ile sınırsız bir API anahtarı kullanabilirsiniz. Ancak özellikle aşağıdaki durumlarda API anahtarlarınızı kısıtlamanızı önemle öneririz:

  • Test ortamı herkese görünür olacak veya herkes tarafından görülebilecek.

  • API anahtarı kullanan uygulama, üretim ortamında kullanılmaya hazırdır.

2 Mobil uygulamalarda yerel Android için Haritalar SDK'sı ve iOS için Haritalar SDK'sı kullanabilirsiniz.

3 Maps Static API ve Street View Static API için API anahtarının yanı sıra günlük 25.000 harita yükleme kotasını aşan bir dijital imza sağlamanız gerekir.

İsteklerinizi imzalarsanız günde kaç tane imzasız isteği izin vermek istediğinizi inceleyin ve imzasız istek kotalarınızı uygun şekilde ayarlayın.

4 IP kısıtlamaları, dinamik uygulamalar üzerinde çalışan mobil uygulamalar ve bulut ortamları gibi bazı durumlarda pratik olmayabilir. Bu senaryolarda Haritalar Web Hizmeti API'lerini kullanırken uygulamalarınızı bir proxy sunucu veya kod karartma kullanarak güvence altına alın.

5 Mobil uygulamalarda yerel Android için Yerler SDK'sı ve iOS için Yerler SDK'sı kullanabilirsiniz.