Konta usługi

Konto usługi to konto powiązane z aplikacją, a nie z użytkownikiem. Jeśli opracowujesz aplikację lub używasz interfejsu REST API, do uwierzytelnienia w Earth Engine może być konieczne użycie konta usługi. Więcej informacji o uwierzytelnianiu za pomocą kont usługi

Tworzenie konta usługi

Najpierw utwórz projekt Google Cloud, jeśli jeszcze tego nie zrobiono.

Kontami usługi w projekcie Cloud możesz zarządzać w menu konsoli Cloud () – wybierz Administracja > Konta usługi. (w razie potrzeby wybierz projekt).

Aby utworzyć nowe konto usługi, kliknij link + UTWÓRZ KONTO USŁUGI.

Jeśli utworzyłeś(-aś) projekt App Engine, możesz już mieć dla niego domyślne konto usługi (domyślne konto usługi App Engine). Jeśli konfigurujesz projekt App Engine, w sekcji Rola na koncie usługi wybierz Projekt > Edytor.

Utwórz klucz prywatny dla konta usługi.

Gdy masz już konto usługi, kliknij menu tego konta (), a następnie Utwórz klucz > plik JSON. Pobierz plik klucza JSON.

Bezpieczne przechowywanie pliku klucza

Plik klucza to specjalny plik, który umożliwia programom dostęp do interfejsów API Google w imieniu Twojego konta usługi. Upewnij się, że nikt nie ma do niego nieautoryzowanego dostępu, ponieważ w przeciwnym razie będzie mógł uzyskać dostęp do interfejsów API Google w Twoim imieniu. Nigdy nie przechowuj klucza prywatnego w miejscu publicznym, takim jak folder współdzielony lub repozytorium kodu źródłowego. Jeśli zgubisz klucz prywatny, możesz łatwo cofnąć dostęp do konta usługi i utworzyć nowe za pomocą konsoli Cloud. Szczegółowe informacje znajdziesz w tym przewodniku.

Rejestrowanie konta usługi na potrzeby korzystania z Earth Engine

Wszystkie konta usługi są tworzone w ramach projektu Cloud, który może być tym samym projektem, którego używasz do aplikacji App Engine lub maszyny wirtualnej Cloud. Upewnij się, że projekt Cloud jest zarejestrowany, aby uzyskać dostęp do Earth Engine, oraz że w projekcie jest włączony interfejs Earth Engine API. Wszystkie konta usługi w projekcie z odpowiednimi uprawnieniami będą miały dostęp do Earth Engine. Nie trzeba ich rejestrować osobno.

Pamiętaj, że rejestracja pojedynczego konta usługi nie jest już możliwa. Należy zarejestrować sam projekt Cloud.

Korzystanie z konta usługi z kluczem prywatnym

Aby uwierzytelnić się w Earth Engine za pomocą konta usługi:

  1. Utwórz i pobierz plik klucza prywatnego JSON (.private-key.json) dla konta usługi.
  2. Testuj ten kod Pythona z dowolnego miejsca, w którym znajduje się plik .private-key.json:
    import ee
    service_account = 'my-service-account@...gserviceaccount.com'
    credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json')
    ee.Initialize(credentials)

Jeśli udało Ci się zainicjować konto bez błędów, oznacza to, że jest ono gotowe do użycia.

Co zrobić, jeśli pojawi się błąd invalid_grant?

Protokół OAuth2 może być bardzo wrażliwy na różnicę wskazań zegarów. Jeśli masz pewność, że wszystko zostało skonfigurowane prawidłowo, a osoba kontaktowa z Google potwierdziła, że konto usługi zostało zatwierdzone, sprawdź, czy zegar komputera jest zsynchronizowany z czasem sieci.

W przypadku systemów Ubuntu wywołanie do synchronizacji zegara komputera to:

ntpdate ntp.ubuntu.com

W przypadku systemów OS X otwórz Preferencje systemowe > Data i godzina > Data i godzina (ponownie) i wybierz Ustaw datę i godzinę automatycznie.

Używanie domyślnego konta usługi

Jeśli używasz domyślnego konta usługi, musisz najpierw zmienić zakresy dostępu maszyny wirtualnej dla konta usługi Compute Engine na „Zezwól na pełny dostęp do wszystkich interfejsów Cloud API”. (jeśli używasz domyślnych kont usługi w Dataflow lub App Engine, ten krok nie jest konieczny).

Aby uwierzytelnić się w Earth Engine przy użyciu domyślnego konta usługi, użyj tego kodu:

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

Konfigurowanie dostępu do interfejsu API REST

Jeśli konto usługi ma wykonywać obliczenia za pomocą interfejsu API REST, musisz nadać mu uprawnienia na poziomie projektu, w tym rolę Wyświetlający zasoby Earth Engine. W zależności od konfiguracji projektu może być też konieczne przypisanie do konta usługi roli Użytkownik zużycia usługi. Więcej informacji o uprawnieniach projektu wymaganych do korzystania z Earth Engine znajdziesz na stronie Kontrola dostępu.