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 hale getirin.

API anahtarları oluşturulduktan ve kullanıldıktan sonra güvenli hale getirilebilir ancak 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ştirilemeyeceği için en karmaşık uygulama anahtarları (Android ve iOS) güncellemek veya değiştirmektir. JavaScript veya Web Hizmeti uygulamalarında anahtarları güncellemek veya değiştirmek çok daha kolaydır. Ancak bu anahtarların güncellenmesi veya değiştirilmesi için dikkatli bir planlama ve hızlı çalışma gerekebilir.

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ı ile 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. Belirli bir API anahtarı için gerektiği kadar API kısıtlaması belirtebilirsiniz.

API anahtarınızı oluştururken güvenli hale getirmediyseniz 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ı türleri bir anahtarı paylaşan uygulamalarla uyumsuzluk sorunlarına neden olmayacak sürece birden fazla uygulamada kısıtlanmış anahtarları kullanabilirsiniz.

API anahtarları oluşturulduktan sonra kısıtlıyorsanız kısıtlamaların mevcut uygulamalarınızın hiçbirini etkilemeyecektir.

  1. Google Cloud Console'un 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 API'leriyle 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örüntülenen her tuş 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 hangi API kısıtlamalarının uygulanacağını görürsünüz.

    Grouped by ayarından API yöntemi'ni seçmek, anahtar için en uygun uygulama kısıtlaması türünün ne olduğu konusunda size ipucu verebilir.

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ı mülk 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çip 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 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önlendirme URL'si protokolleri 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 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 notasyonunu kullanarak bir IPv4 veya IPv6 adresi ya da bir 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ı SHA-1 imzalama sertifikası parmak izinizi ve Android paket adınızı AndroidManifest.xml dosyanızdan 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 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.

      (Listelenmeyen bir API veya SDK'yı 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ı haline gelir. Uygun ayrıntıları sağlayamazsanız veya "Kaydet"i tıklamazsanız API anahtarı kısıtlanmaz. (Daha fazla bilgi edinmek için ilgilendiğiniz API veya SDK'yla ilgili API Anahtarı Alma kılavuzuna bakın.)

Kullanılmayan API anahtarlarını silme

Bir API anahtarını silmeden önce üretimde kullanılmadığından emin olun. Trafik başarılı değilse anahtarı silmek güvenli olabilir.

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ılımdan sonra, 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şturduğunuzda, eski anahtarın tüm kısıtlamalarını içeren yeni bir anahtar oluşturulur. 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 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 alındığında, anahtarın eski "yeni" sürümü önceki sürüme dönüşür ve anahtar için 24 saatlik yeni bir devre dışı bırakma zamanlayıcısı ayarlanır. Anahtarı yeniden oluşturana kadar bu iki anahtar değeri arasında geri dönüş yapılabilir.

Bu ikinci yeniden oluşturma işlemi, eski etkin olmayan anahtar değerinin üzerine yazar.

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 yönelik başarılı istekleri görmek için Yanıt kodu bölümünde 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 tercihen her uygulama için ayrı API anahtarları kullanarak birden fazla API anahtarına geçiş yapı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ı kullanmak yerine, her uygulama için tek bir benzersiz API anahtarına geçiş yapmak üzere aşağıdakileri yapın:

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

    • Kodun tamamını kontrol ettiğinizden, web uygulamalarını güncellemenin en kolay yolu budur. Web tabanlı tüm uygulamalarınızın anahtarlarını güncellemeyi planlayın.
    • Müşterilerinizin yeni anahtarların kullanılabilmesi için uygulamalarını güncellemeleri 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şlem 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 imzalama gizli anahtarlarını uygulamanızın kaynak kodunun 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ışındaki 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 kodu 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 kurmak için güvenilir bir kaynak sağlar. Proxy sunucu kullanma hakkında daha fazla bilgi için Önemli Tehlikelerde Yaşama: Proxy Sunucuları Google Veri API'sı İstemci Kitaplıklarıyla 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 kopyalanmasını karmaşık hâle getirir.

Daha fazla bilgi

Bu tablolarda, her Google Haritalar Platformu API'si, SDK'sı veya hizmeti için gerekli 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
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ı Geocode API, Maps JavaScript API
Yerler Kitaplığı, Maps JavaScript API HTTP yönlendiren kısıtlaması Yerler API'si, 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 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) Adres Doğrulama API'sı
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
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
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ıyla sınırsız bir API anahtarı kullanabilirsiniz. Ancak özellikle aşağıdaki durumlarda API anahtarlarınızı kısıtlamanızı önemle tavsiye ederiz:

  • Test ortamı herkese açık 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ını kullanabilirsiniz.

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

İsteklerinizi imzalarsanız günde kaç imzasız isteğe izin verdiğinizi inceleyin ve buna uygun olarak imzasız istek kotalarınızı ayarlayın.

4 IP kısıtlamaları, dinamik uygulamalar ve dinamik IP adreslerine dayalı bulut ortamları gibi bazı durumlarda kullanılamayabilir. Bu senaryolarda Haritalar Web Hizmeti API'lerini kullanırken uygulamalarınızı bir proxy sunucusu veya gizleme 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.