Hizmet Hesapları

Hizmet hesabı, son kullanıcı yerine bir uygulamayla ilişkilendirilmiş bir hesaptır. Uygulama geliştiriyorsanız veya REST API'yi kullanıyorsanız Earth Engine'da kimlik doğrulaması yapmak için bir hizmet hesabı kullanmanız gerekebilir. Hizmet hesaplarıyla kimlik doğrulama hakkında daha fazla bilgi edinin.

Hizmet hesabı oluşturma

Öncelikle, henüz yapmadıysanız bir Google Cloud projesi oluşturun.

Cloud Console menüsüne () gidip IAM ve Yönetici > Hizmet hesapları'nı seçerek Cloud projenizin hizmet hesaplarını yönetebilirsiniz. (İstenirse projeyi seçin.)

Yeni bir hizmet hesabı oluşturmak için + HİZMET HESAP

App Engine projesi oluşturduysanız bu proje için varsayılan bir hizmet hesabınız (App Engine varsayılan hizmet hesabı) olabilir. Bir App Engine projesi oluşturuyorsanız hizmet hesabı Rol için Proje > Düzenleyici'yi seçin.

Hizmet hesabı için özel anahtar oluşturma

Hizmet hesabınız oluştuktan sonra ilgili hesabın menüsünü () ve ardından Anahtar oluştur > JSON'u tıklayın. JSON anahtar dosyasını indirin.

Anahtar dosyanızı güvende tutma

Anahtar dosyası, programların hizmet hesabınız adına Google API'lerine erişmesine olanak tanıyan özel bir dosyadır. Bu anahtara yetkisiz erişimin mümkün olmadığından emin olun. Aksi takdirde, bu anahtara sahip olan kişiler Google API'lerine sizin adınıza erişebilir. Özel anahtarınızı asla ortak klasör veya kaynak depolama alanı gibi herkese açık bir yerde saklamayın. Gizli anahtarınızı kaybederseniz Cloud Console'u kullanarak hizmet hesabına erişimi kolayca iptal edebilir ve yeni bir hesap oluşturabilirsiniz. Ayrıntılar için bu kılavuza bakın.

Earth Engine'u kullanacak hizmet hesabını kaydetme

Tüm hizmet hesapları bir Cloud projesi içinde oluşturulur. Bu proje, App Engine uygulamanız veya Cloud sanal makineniz için kullanılan projeyle aynı olabilir. Earth Engine'a erişmek için Cloud projesinin kayıtlı olduğundan ve projede Earth Engine API'nin etkinleştirildiğinden emin olun. Projedeki doğru izinlere sahip tüm hizmet hesapları Earth Engine'a erişebilir. Bu hesapları ayrı olarak kaydetmeniz gerekmez.

Artık hizmet hesaplarını tek tek kaydettiremeyeceğinizi unutmayın. Bunun yerine, Cloud projesinin kendisini kaydettirmeniz gerekir.

Özel anahtar içeren bir hizmet hesabı kullanma

Earth Engine'da bir hizmet hesabı kullanarak kimlik doğrulamak için:

  1. Hizmet hesabı için bir JSON özel anahtarı dosyası (.private-key.json) oluşturup indirin.
  2. .private-key.json dosyasını yerleştirdiğiniz yerden aşağıdaki Python kodunu test edin:
    import ee
    service_account = 'my-service-account@...gserviceaccount.com'
    credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json')
    ee.Initialize(credentials)

Hata olmadan başlatabiliyorsanız hizmet hesabınız kullanıma hazırdır.

invalid_grant hatası alırsam ne yapmalıyım?

OAuth2, saat kaymasına karşı çok hassas olabilir. Her şeyi doğru şekilde ayarladığınızdan eminseniz ve Google temsilciniz hizmet hesabının onaylandığını doğruladıysa bilgisayarınızın saatinin ağ saatiyle senkronize edilip edilmediğini kontrol edin.

Ubuntu sistemlerinde, bilgisayarınızın saatini senkronize etme çağrısı:

ntpdate ntp.ubuntu.com

OS X kullanan sistemlerde Sistem Tercihleri > Tarih ve Saat > Tarih ve Saat'i (tekrar) açın ve Tarih ve saati otomatik olarak ayarla'yı seçin.

Varsayılan hizmet hesabı kullanma

Varsayılan bir hizmet hesabı kullanıyorsanız öncelikle Compute Engine hizmet hesabı için sanal makinenin erişim kapsamlarını "Tüm Cloud API'lerine tam erişim izni ver" olarak değiştirmeniz gerekir. (Dataflow veya App Engine'de varsayılan hizmet hesaplarını kullanıyorsanız bu adım gerekli değildir.)

Varsayılan bir hizmet hesabı kullanarak Earth Engine'da kimlik doğrulama yapmak için aşağıdaki kodu kullanın:

from google.auth import compute_engine
import ee
credentials = compute_engine.Credentials(scopes=['https://www.googleapis.com/auth/earthengine'])
ee.Initialize(credentials)

REST API erişimini ayarlama

Hizmet hesabının REST API'yi kullanarak hesaplama yapması gerekiyorsa proje düzeyinde izin, özellikle de Earth Engine Kaynak Görüntüleyen rolü vermeniz gerekir. Proje yapılandırmanıza bağlı olarak, hizmet hesabına Hizmet Kullanımı Tüketicisi rolünü de vermeniz gerekebilir. Earth Engine'u kullanmak için gereken proje izinleri hakkında daha fazla bilgi için Erişim Denetimi sayfasına bakın.