API güvenliğiyle ilgili en iyi uygulamalar

API anahtarları, Google Haritalar Platformu API'lerini ve SDK'larını kullanan uygulamalar ve projeler için gereklidir. Maksimum güvenlik ve minimum çaba için API anahtarlarınızı oluştururken güvenli hale getirin.

API anahtarları oluşturulduktan ve kullanıldıktan sonra güvenli hale getirilmesi mümkün olsa da 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 değiştirilmeyeceğinden, mobil uygulamalardaki (Android ve iOS) anahtarları güncellemek veya değiştirmek en karmaşık yöntemdir. JavaScript veya Web Hizmeti uygulamalarında anahtar güncelleme veya değiştirme işlemi çok daha kolaydır ancak bu anahtarların güncellenmesi veya değiştirilmesi için dikkatli planlama ve hızlı çalışma gerekebilir.

Her bir Google Haritalar Platformu ürünü için geçerli olan güvenlik uygulamaları (ör. Maps JavaScript API) Daha fazla bilgi bölümünde listelenir.

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

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

  • Uygulama kısıtlamaları, bir API anahtarının kullanımını belirli bir platformla (Android veya iOS) ya da belirli sitelerle (herkese açık IP adresi ve web sitesi) sınırlandırır. 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 bir API anahtarıyla ilişkilendirilen API'leri veya SDK'ları kullanma istekleri işlenir. 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 ve ardından tüm uygulamalarınızı yeni API anahtarlarıyla güncelleyin. Uygulama başına bir anahtar güvenlik amacıyla ideal olsa da, anahtardaki uygulama kısıtlamalarının türü, bir anahtarı paylaşan uygulamalarla uyumsuzluk sorunlarına yol açmadığı sürece birden fazla uygulamada kısıtlanmış anahtarlar kullanabilirsiniz.

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

  1. Google Cloud Console'un Metrikler sayfasına gidin.

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

  3. Group by (Gruplandırma ölçütü) bölümünde Credential (Kimlik bilgisi) seçeneğini belirleyin. Hangi API anahtarlarının hangi Google hizmetleriyle 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örüntülenen her anahtar için anahtarı seçin ve Tamam'ı tıklayın.

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

    Gruplandırma ölçütü'nden API yöntemi'ni seçmeniz, bir anahtar için en uygun uygulama kısıtlama türüyle ilgili ipuçları sağlayabilir.

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

  1. Kimlik bilgileri sayfasına gidin.
  2. Kısıtlama ayarlamak istediğiniz API anahtarını seçin. API anahtarı özellik sayfası görüntülenir.

  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 karakter karakterleri tüm alt alanların yetkilendirilmesi için kabul edilir (örneğin, *.google.com, .google.com ile biten tüm siteleri kabul eder). https:// ve http:// öğelerini 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 belirleyin. Yönlendirenleri etkinleştirdikten sonra, beklentilerinizi karşıladığından emin olmak için kullanımınızı izleyin. Şu yönlendiren protokolleri desteklenmektedir: 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 alt ağ belirtin. Bir web hizmeti isteği,harici IP adresini kontrol edip API anahtarı kısıtlamasıyla karşılaştırdığından sunucunun herkese açık IP adresini kullanın.
    Android uygulamaları AndroidManifest.xml dosyanızdaki 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ıtla ve yeniden adlandır sayfası görüntülenir.

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

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

    • API'leri seçin 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.

      (Bir 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. Uygun 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'da API Anahtarı Alma rehberine bakı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 kolayca silinebilir.

Bir API anahtarını silmek için:

  1. 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ıldıktan sonra, silinen API anahtarını kullanan trafik reddedilir.

API'lerinizi güvenli hale getirmenin 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ını içeren yeni bir anahtar oluşturur. Bu işlem ayrıca 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. Bununla birlikte, bu süre dolduğunda eski API anahtarını kullanmaya devam eden uygulamalar çalışmayı durdurur.

  1. API anahtarları sayfasına gidin.

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

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

Geri çekildiğinde, anahtarın eski "yeni" sürümü önceki sürüm olur ve anahtar için yeni bir 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şlemi, eski etkin olmayan anahtar değerinin üzerine yazılır.

API kullanımınızı izleyin

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

  1. Metrikler sayfasına gidin.

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

  3. Gruplandırma ölçütü bölümünde, API yöntemi'ni seçin.

  4. Bu anahtara yapılan 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ıtlayabilirsiniz.

    Aynı anahtar birden fazla uygulamada kullanılıyorsa birden çok API anahtarına taşıyın, tercihen her uygulama için ayrı API anahtarları kullanın.

  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ı API anahtarı kullanın

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

Birden çok API anahtarına taşıma

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

  1. Hangi uygulamaların yeni anahtara ihtiyacı olduğunu belirleyin.

    • Kodun tamamını kontrol ettiğiniz için web uygulamaları en kolay şekilde güncellenir. Web tabanlı tüm uygulamalarınızın anahtarlarını 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 bunları 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 sürecin 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

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

  • API anahtarlarını veya imzalama gizli anahtarlarını uygulamanızın kaynak ağacının dışında bulunan dosyalarda depolayın. Dosyalarda API anahtarları veya başka özel bilgiler depoluyorsanız anahtarlarınızı kaynak kod 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 özellikle önemlidir.

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

  • Bir proxy sunucu kullanın. Proxy sunucusu, uygun Google Haritalar Platformu API'si ile etkileşim için sağlam bir kaynak sağlar. Proxy sunucu kullanma hakkında daha fazla bilgi için Tehlikeli Yaşam: Google Veri API'si İstemci Kitaplıklarıyla Proxy Sunucuları Kullanma konusuna bakın.

  • API anahtarını veya gizli anahtarı karartın ya da şifreleyin. Bu, API anahtarlarını ve diğer özel verileri doğrudan uygulamadan toplamayı karmaşık hâle getirir.

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
Haritalar JavaScript API'si (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, Haritalar JavaScript API'si
Elevation 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ı Yerler API'si, Haritalar JavaScript API'si
Haritalar Yerleştirme API'si HTTP yönlendiren kısıtlaması Maps Embed API
Haritalar Statik API'si HTTP yönlendiren kısıtlaması Maps Static API
Street View Static 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
Adres Doğrulama API'si IP adresi kısıtlaması(4) Address Validation API
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
Geocoding API IP adresi kısıtlaması(4) Geocoding API
Geolocation API'si IP adresi kısıtlaması(4) Geolocation API
Places API (5) IP adresi kısıtlaması(4) Places API
Roads API IP adresi kısıtlaması(4) Roads API
Routes API IP adresi kısıtlaması(4) Routes 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 Haritalar Platformu API'si veya SDK'sı ile kısıtlanmamış bir API anahtarı kullanabilirsiniz. Ancak, özellikle aşağıdaki durumlarda API anahtarlarınızı kısıtlamanızı önemle tavsiye ederiz:

  • Test ortamı herkese görünür olacak veya görünür olacaktır.

  • 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 incelemek istediğinizi belirleyin ve buna göre imzasız istek kotalarınızı ayarlayın.

4 IP kısıtlamaları, dinamik IP adreslerine dayanan mobil uygulamalar ve bulut ortamları gibi bazı senaryolarda uygunsuz olabilir. Bu senaryolarda Haritalar Web Hizmeti API'lerini kullanırken proxy sunucu veya karartma kullanarak uygulamalarınızı güvence altına alın.

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