- Konu sahibi
- #1
Google API anahtarı, Google Cloud projenizdeki API isteklerini tanımlamak için kullanılan bir kimlik bilgisidir. Oluşturmak için Google Cloud Console’da bir proje seçin, gerekli API’yi etkinleştirin, ardından
Standart API anahtarı projeyi kota ve faturalandırmayla ilişkilendirir; tek başına kullanıcı kimliğini veya her serviste işlem yetkisini kanıtlamaz. Bazı servisler OAuth ya da hizmet hesabı ister. API anahtarı oluşturmak, ilgili API’nin otomatik olarak etkinleştiği anlamına gelmez. Örneğin yalnızca anahtar oluşturup Maps JavaScript API’yi etkinleştirmezseniz istekler başarısız olabilir. Aynı şekilde bazı Google API’leri için projenin faturalandırma hesabına bağlı olması da gerekebilir. Bu gereksinim, kullandığınız API’nin kendi dokümantasyonunda belirtilir.
Anahtarı sınırsız bırakmak, anahtar açığa çıktığında başkalarının sizin projeniz üzerinden istek göndermesine yol açabilir. Kullanım şeklinize göre şu yaklaşımı uygulayın:
Örneğin example.com üzerinde harita gösterecekseniz HTTP yönlendiren kısıtlamasında yalnızca kendi alan adınızı tanımlayın ve API kısıtlamasında sadece Maps JavaScript API’yi bırakın. Sunucu tarafında kullanılacak anahtarı ise HTML, JavaScript dosyası veya herkese açık Git deposuna yazmayın; ortam değişkeni ya da sunucu üzerindeki gizli yapılandırma alanında saklayın.
Sunucu tarafında kullanılan gizli bir anahtar, istemciye gönderilmeyen ortam değişkeninde tutulabilir. Aşağıdaki satır yalnız sunucu yapılandırması örneğidir; tarayıcıya paketlenen bir ön yüz değişkeni anahtarı gizlemez:
Maps JavaScript gibi tarayıcıda kullanılan bir API’de anahtarın kullanıcı tarafından görülmesi mümkündür; bu kullanımda web sitesi ve API kısıtlamaları esastır. Sunucu anahtarını ise tarayıcıya göndermeyin. Anahtarınızı forumda, ekran görüntüsünde veya hata kaydında paylaşmayın. Anahtar yanlışlıkla yayımlandıysa önce anahtarı kısıtlayın; güvenli çözüm olarak yeni bir anahtar oluşturup eski anahtarı silin veya devre dışı bırakın.
İsteklerde
Anahtarın oluşturulması ayrı bir işlemdir; maliyet, kullandığınız Google API’nin ve projenizin faturalandırma koşullarına bağlıdır. Bu nedenle ilgili API’nin kullanım ve faturalandırma belgelerini ayrıca kontrol etmelisiniz.
Evet, ancak güvenlik ve hata ayıklama açısından yalnızca aynı uygulamanın gerçekten kullandığı API’leri anahtara eklemek daha uygundur. Farklı uygulamalar veya güven seviyeleri için ayrı anahtarlar oluşturmak daha güvenlidir.
API’ler ve Hizmetler > Kimlik Bilgileri bölümünden Kimlik bilgileri oluştur > API anahtarı seçeneğine tıklayın. Anahtarı oluşturduktan sonra onu yalnızca ihtiyaç duyduğu API’lerle ve kullandığınız uygulama türüyle sınırlandırın.API anahtarı oluşturma adımları
- Google Cloud Console’a giriş yapın ve mevcut bir proje seçin. Projeniz yoksa yeni bir proje oluşturun.
- Sol menüden
API’ler ve Hizmetler > Kitaplıkbölümünü açın. - Kullanacağınız API’yi bulun ve
Etkinleştirseçeneğine tıklayın. Örneğin harita gösterecekseniz Maps JavaScript API, adres dönüştürme yapacaksanız ilgili Geocoding API gerekir. -
API’ler ve Hizmetler > Kimlik Bilgilerisayfasına geçin. -
Kimlik bilgileri oluştur > API anahtarıseçeneğini seçin. - Açılan pencerede oluşturulan anahtarı kopyalayın ve uygulamanızın yapılandırmasına ekleyin. Anahtar daha sonra aynı Kimlik Bilgileri sayfasından görüntülenebilir.
- Anahtarın adına tıklayarak
Uygulama kısıtlamalarıveAPI kısıtlamalarıayarlarını yapılandırın.
Standart API anahtarı projeyi kota ve faturalandırmayla ilişkilendirir; tek başına kullanıcı kimliğini veya her serviste işlem yetkisini kanıtlamaz. Bazı servisler OAuth ya da hizmet hesabı ister. API anahtarı oluşturmak, ilgili API’nin otomatik olarak etkinleştiği anlamına gelmez. Örneğin yalnızca anahtar oluşturup Maps JavaScript API’yi etkinleştirmezseniz istekler başarısız olabilir. Aynı şekilde bazı Google API’leri için projenin faturalandırma hesabına bağlı olması da gerekebilir. Bu gereksinim, kullandığınız API’nin kendi dokümantasyonunda belirtilir.
Kısıtlamaları nasıl seçmelisiniz?
Anahtarı sınırsız bırakmak, anahtar açığa çıktığında başkalarının sizin projeniz üzerinden istek göndermesine yol açabilir. Kullanım şeklinize göre şu yaklaşımı uygulayın:
| Kullanım yeri | Uygulama kısıtlaması | API kısıtlaması |
|---|---|---|
| Web sitesi | HTTP referrer (yönlendiren adres) kısıtı; izin verilen kendi site adresleri | Yalnızca gereken API |
| Sunucu uygulaması | Sunucunun sabit dış IP adresi veya uygun sunucu kısıtlaması | Yalnızca gereken API |
| Android uygulaması | Android paket adı ve SHA-1 sertifika parmak izi | Yalnızca gereken API |
| iOS uygulaması | iOS paket kimliği | Yalnızca gereken API |
Örneğin example.com üzerinde harita gösterecekseniz HTTP yönlendiren kısıtlamasında yalnızca kendi alan adınızı tanımlayın ve API kısıtlamasında sadece Maps JavaScript API’yi bırakın. Sunucu tarafında kullanılacak anahtarı ise HTML, JavaScript dosyası veya herkese açık Git deposuna yazmayın; ortam değişkeni ya da sunucu üzerindeki gizli yapılandırma alanında saklayın.
Anahtarı uygulamaya ekleme
Sunucu tarafında kullanılan gizli bir anahtar, istemciye gönderilmeyen ortam değişkeninde tutulabilir. Aşağıdaki satır yalnız sunucu yapılandırması örneğidir; tarayıcıya paketlenen bir ön yüz değişkeni anahtarı gizlemez:
Kod:
GOOGLE_API_KEY=buraya-gercek-anahtari-yazin
Maps JavaScript gibi tarayıcıda kullanılan bir API’de anahtarın kullanıcı tarafından görülmesi mümkündür; bu kullanımda web sitesi ve API kısıtlamaları esastır. Sunucu anahtarını ise tarayıcıya göndermeyin. Anahtarınızı forumda, ekran görüntüsünde veya hata kaydında paylaşmayın. Anahtar yanlışlıkla yayımlandıysa önce anahtarı kısıtlayın; güvenli çözüm olarak yeni bir anahtar oluşturup eski anahtarı silin veya devre dışı bırakın.
İsteklerde
API key not valid, This API project is not authorized to use this API veya benzeri hata alırsanız sırasıyla doğru projeyi seçtiğinizi, ilgili API’nin etkin olduğunu, API kısıtlamalarının gerekli API’ye izin verdiğini ve uygulama kısıtlamasının isteğin geldiği alan adı, IP veya uygulamayla uyuştuğunu kontrol edin.Sık yapılan hatalar
- Sadece anahtar oluşturup kullanılacak API’yi etkinleştirmemek.
- API kısıtlaması eklemeden anahtarı üretim ortamında kullanmak.
- Web sitesi anahtarını sunucu anahtarı gibi kullanmak veya aynı anahtarı tüm platformlarda paylaşmak.
- Alan adı kısıtlamasında protokol, alt alan adı veya joker karakter kullanımını yanlış tanımlamak.
- Anahtarı kaynak koduna sabitleyip Git deposuna göndermek.
Sık sorulan sorular
Google API anahtarı ücretsiz midir?
Anahtarın oluşturulması ayrı bir işlemdir; maliyet, kullandığınız Google API’nin ve projenizin faturalandırma koşullarına bağlıdır. Bu nedenle ilgili API’nin kullanım ve faturalandırma belgelerini ayrıca kontrol etmelisiniz.
Tek API anahtarıyla birden fazla Google API kullanılabilir mi?
Evet, ancak güvenlik ve hata ayıklama açısından yalnızca aynı uygulamanın gerçekten kullandığı API’leri anahtara eklemek daha uygundur. Farklı uygulamalar veya güven seviyeleri için ayrı anahtarlar oluşturmak daha güvenlidir.