Wskazówki dotyczące bezpieczeństwa w Google Maps Platform

W przypadku aplikacji i projektów korzystających z interfejsów API oraz pakietów SDK Google Maps Platform musisz używać kluczy API lub, jeśli jest to obsługiwane, protokołu OAuth, aby zapobiec nieautoryzowanemu korzystaniu i obciążeniom. Jeśli używasz kluczy interfejsu API, aby zapewnić maksymalne bezpieczeństwo, ogranicz dostęp do nich podczas ich tworzenia. Te sprawdzone metody pokazują, jak je ograniczyć.

Oprócz stosowania ograniczeń aplikacji i klucza interfejsu API należy przestrzegać zasad bezpieczeństwa obowiązujących w przypadku poszczególnych usług Google Maps Platform. Przykładowo, interfejs Maps JavaScript API znajdziesz poniżej w sekcji Zalecane ograniczenia dotyczące aplikacji i interfejsów API.

Jeśli klucze interfejsu API są już używane, zapoznaj się z rekomendacjami poniżej w sekcji Ograniczanie lub wygenerowanie nowego klucza interfejsu API, który jest używany.

Więcej informacji o podpisach cyfrowych znajdziesz w przewodniku po podpisie cyfrowym.

Zalecane sprawdzone metody

Aby zwiększyć bezpieczeństwo i uniknąć opłat za nieautoryzowane korzystanie z usługi, postępuj zgodnie z tymi sprawdzonymi metodami zabezpieczania interfejsu API w przypadku wszystkich interfejsów API, pakietów SDK i usług Google Maps Platform:

Ograniczanie kluczy interfejsu API

Używanie oddzielnych kluczy API dla każdej aplikacji

Usuwanie nieużywanych kluczy API

Sprawdzanie użycia klucza interfejsu API

Uwaga podczas ponownego generowania kluczy interfejsu API

Dodatkowe rekomendacje dotyczące stron internetowych korzystających z interfejsów API dla stron internetowych statycznych

Ochrona aplikacji za pomocą interfejsów Static Web API

Dodatkowe zalecenia dotyczące aplikacji korzystających z usług internetowych

Ochrona aplikacji korzystających z usług internetowych

Dodatkowe zalecenia dotyczące aplikacji mobilnych na iOS i Androida

Ochrona aplikacji mobilnych za pomocą interfejsów API usługi internetowej lub statycznej aplikacji internetowej

Jeśli ograniczasz lub wygenerujesz ponownie klucz interfejsu API, który jest używany

  • Zanim zmienisz klucz interfejsu API, sprawdź jego użycie. Ten krok jest szczególnie ważny, jeśli dodajesz ograniczenia po użyciu klucza.

  • Po zmianie klucza w razie potrzeby zaktualizuj wszystkie aplikacje, aby używały nowych kluczy interfejsu API.

  • Jeśli nie ma aktywnego nadużycia klucza interfejsu API, możesz w dowolnym momencie przenieść aplikacje na kilka nowych kluczy interfejsu API, pozostawiając oryginalny klucz interfejsu API bez zmian, dopóki nie zobaczysz tylko jednego typu ruchu, który możesz ograniczyć za pomocą ograniczenia dotyczącego aplikacji. Więcej informacji znajdziesz w artykule Migracja na wiele kluczy API.

    Zanim ograniczysz lub usuniesz stary klucz, sprawdź, jak często jest on używany w ciągu czasu, i sprawdź, kiedy konkretne interfejsy API, typy platform i domeny przestały korzystać ze starego klucza. Więcej informacji znajdziesz w artykułach Raportowanie i monitorowanie oraz Dane.

  • Jeśli Twój klucz API został skompromitowany, musisz szybciej zabezpieczyć klucz API i zatrzymać nadużycie. W przypadku aplikacji na Androida i iOS klucze nie są zastępowane, dopóki klienci nie zaktualizują aplikacji. Aktualizowanie lub zastępowanie kluczy w JavaScript lub aplikacjach usług internetowych jest znacznie prostsze, ale nadal może wymagać starannego planowania i szybkiej pracy.

    Więcej informacji znajdziesz w artykule Zarządzanie nieautoryzowanym użyciem klucza API.

Ograniczanie kluczy interfejsu API

Zawsze ograniczaj klucze interfejsu API za pomocą ograniczenia aplikacji i co najmniej jednego ograniczenia interfejsu API. Aby uzyskać sugerowane ograniczenia dotyczące interfejsu API, pakietu SDK lub usługi JavaScript, zapoznaj się z sekcją Zalecane ograniczenia dotyczące aplikacji i interfejsów API poniżej.

  • Ograniczenie aplikacji – możesz ograniczyć użycie klucza interfejsu API do określonych platform: aplikacji na Androida lub iOS albo określonych stron internetowych w przypadku aplikacji po stronie klienta lub określonych adresów IP albo podsieci CIDR w przypadku aplikacji po stronie serwera, które wysyłają wywołania interfejsu API REST usługi internetowej.

    Ograniczenie klucza polega na dodaniu co najmniej jednego ograniczenia aplikacji danego typu, po czym tylko żądania pochodzące z tych źródeł są dozwolone.

  • Ograniczenia interfejsu API – możesz określić, które interfejsy API, pakiety SDK lub usługi Google Maps Platform mogą korzystać z Twojego klucza API. Ograniczenia interfejsu API zezwalają tylko na żądania wysyłane do wskazanych przez Ciebie interfejsów API i pakietów SDK. W przypadku dowolnego klucza interfejsu API możesz określić dowolną liczbę ograniczeń interfejsu API. Lista dostępnych interfejsów API zawiera wszystkie interfejsy API włączone w projekcie.

Ustawianie ograniczeń aplikacji dla klucza interfejsu API

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Wybierz klucz interfejsu API, który chcesz ograniczyć.

  3. Na stronie Edytuj klucz interfejsu API w sekcji Ograniczenia klucza kliknij Ustaw ograniczenie aplikacji.

    Strona Edytuj klucz API

  4. Wybierz jeden z typów ograniczeń i podaj wymagane informacje zgodnie z listą ograniczeń.

    Typ ograniczenia Opis
    Witryny Podaj co najmniej 1 witrynę odsyłającą.
    • Obsługiwane powszechnie schematy identyfikatorów URI odesłania to httpshttp.
    • Zawsze podawaj pełny identyfikator URI witryny odsyłającej, w tym schemat protokołu, nazwę hosta i opcjonalnie port (np. https://google.com).
    • Możesz użyć symboli wieloznacznych, aby autoryzować wszystkie subdomeny. Na przykład https://*.google.com akceptuje wszystkie witryny kończące się na .google.com. Pamiętaj, że jeśli określisz www.domena.com, będzie ono działać jako symbol wieloznaczny www.domena.com/* i autoryzować dowolną ścieżkę podrzędną w tym adresie hosta.
    • Uważaj podczas autoryzowania pełnej ścieżki strony odsyłającej, np. https://google.com/some/path, ponieważ domyślnie większość obecnych przeglądarek usuwa ścieżkę z żądań z wielu źródeł.
    Adresy IP Określ co najmniej 1 adres IPv4 lub IPv6 albo podsieć w notacji CIDR. Adresy IP muszą być zgodne z adresem źródłowym, który rejestrują serwery Google Maps Platform. Jeśli korzystasz z translacji adresów sieciowych (NAT), ten adres zwykle odpowiada publicznemu adresowi IP Twojego urządzenia.
    Aplikacje na Androida Dodaj nazwę pakietu Androida (z pliku AndroidManifest.xml) oraz odcisk cyfrowy certyfikatu podpisującego SHA-1 każdej aplikacji na Androida, którą chcesz autoryzować. Jeśli używasz podpisywania aplikacji przez Google Play, aby pobrać odcisk cyfrowy certyfikatu podpisywania, zapoznaj się z artykułem Współpraca z dostawcami interfejsów API. Jeśli zarządzasz własnym kluczem podpisywania, zapoznaj się z artykułem Samodzielne podpisywanie aplikacji lub instrukcjami dotyczącymi środowiska kompilacji.
    Aplikacje na iOS Dodaj identyfikator pakietu każdej aplikacji na iOS, którą chcesz autoryzować.

    Zalecenia dotyczące ograniczeń aplikacji znajdziesz w artykule Zalecane ograniczenia aplikacji.

  5. Kliknij Zapisz.

Ustawianie ograniczeń interfejsu API dla klucza API

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Wybierz klucz interfejsu API, który chcesz ograniczyć.

  3. Na stronie Edytuj klucz API w sekcji Ograniczenia interfejsu API:

    • Kliknij Ogranicz klucz.

    • Kliknij Wybierz interfejsy API i wybierz interfejsy API lub pakiety SDK, do których aplikacja ma mieć dostęp za pomocą klucza interfejsu API.

      Jeśli interfejs API lub pakiet SDK nie znajduje się na liście, musisz go włączyć. Szczegółowe informacje znajdziesz w sekcji Włączanie interfejsów API lub pakietów SDK.

    Ograniczanie interfejsu API na stronie Edytuj klucz API

  4. Kliknij Zapisz.

    Po wykonaniu tego kroku ograniczenie stanie się częścią definicji klucza API. Pamiętaj, aby podać odpowiednie informacje i kliknąć Zapisz, aby zapisać ograniczenia klucza interfejsu API. Więcej informacji znajdziesz w przewodniku po uzyskiwaniu klucza API w dokumentacji dotyczącej interesującego Cię interfejsu API lub pakietu SDK.

Zalecane ograniczenia interfejsu API znajdziesz w artykule Zalecane ograniczenia interfejsu API.

Sprawdzanie użycia klucza interfejsu API

Jeśli chcesz ograniczyć dostęp do kluczy API po ich utworzeniu lub sprawdzić, których interfejsów API używa dany klucz, aby móc je ograniczyć, sprawdź użycie klucza API. Te czynności pokazują, w których usługach i metodach interfejsu API jest używany klucz interfejsu API. Jeśli zauważysz jakiekolwiek wykorzystanie poza usługami Google Maps Platform, sprawdź, czy musisz wprowadzić dodatkowe ograniczenia, aby zapobiec niechcianemu użyciu. Aby określić, które ograniczenia interfejsu API i aplikacji mają zastosowanie do klucza interfejsu API, możesz użyć eksploratora danych Cloud Console w Google Maps Platform:

Określanie interfejsów API, które korzystają z Twojego klucza API

Te raporty z danymi umożliwiają określenie, które interfejsy API korzystają z Twoich kluczy API. Dzięki tym raportom możesz:

  • Sprawdzanie sposobu używania kluczy interfejsu API
  • wykrywanie nieoczekiwanego użycia,
  • Pomóc w weryfikacji, czy nieużywany klucz można bezpiecznie usunąć. Informacje o usuwaniu klucza interfejsu API znajdziesz w artykule Usuwanie nieużywanych kluczy API.

Stosując ograniczenia interfejsu API, korzystaj z tych raportów, aby tworzyć listy interfejsów API, które chcesz autoryzować, lub weryfikować automatycznie generowane rekomendacje dotyczące ograniczeń kluczy interfejsu API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule Stosowanie zalecanych ograniczeń. Więcej informacji o korzystaniu z narzędzi Metrics Explorer znajdziesz w artykule Tworzenie wykresów za pomocą narzędzia Metrics Explorer.

  1. Otwórz eksplorer danych w Google Cloud Console.

  2. Zaloguj się i wybierz projekt, którego klucze interfejsu API chcesz sprawdzić.

  3. Otwórz stronę Metrics Explorer dla swojego typu interfejsu API:

    • W przypadku kluczy interfejsu API używanych do wywoływania dowolnego interfejsu API z wyjątkiem interfejsu Maps Embed API: otwórz stronę Statystyki Explorera.

    • Klucze interfejsu API używające interfejsu Maps Embed API: otwórz Narzędzia do analizy danych.

  4. Sprawdź każdy klucz API:

    1. Kliknij DODAJ FILTR.

    2. Wybierz etykietę credential_id.

    3. Wybierz wartość odpowiadającą kluczowi, który chcesz sprawdzić.

    4. Zaznacz, do których interfejsów API służy ten klucz i potwierdź, że jest to zgodne z oczekiwaniami.

    5. Gdy skończysz, wybierz Usuń filtr na końcu wiersza aktywnego filtra, aby usunąć dodatkowy filtr.

  5. Powtórz te czynności w przypadku pozostałych kluczy.

  6. Ogranicz klucze interfejsu API tylko do tych interfejsów API, których używasz.

  7. Jeśli zauważysz nieautoryzowane użycie, zapoznaj się z artykułem Zarządzanie nieautoryzowanym użyciem klucza API.

Wybierz odpowiedni typ ograniczenia aplikacji za pomocą Eksploratora danych

Po zweryfikowaniu i podjęciu odpowiednich działań, aby mieć pewność, że klucz interfejsu API jest używany tylko do obsługi usług Google Maps Platform, sprawdź, czy klucz interfejsu API ma odpowiednie ograniczenia aplikacji.

Jeśli klucz interfejsu API ma zalecane ograniczenia, zastosuj je. Więcej informacji znajdziesz w artykule Stosowanie zalecanych ograniczeń klucza interfejsu API.

Jeśli w przypadku klucza interfejsu API nie ma rekomendacji dotyczących ograniczeń, określ typ ograniczenia aplikacji, które należy zastosować, na podstawie zgłoszonego platform_type w narzędziu Eksplorator danych:

  1. Otwórz eksplorer danych w Google Cloud Console.

  2. Zaloguj się i wybierz projekt, którego interfejsy API chcesz sprawdzić.

  3. Otwórz tę stronę narzędzia Metrics Explorer: Metrics Explorer.

  4. Sprawdź każdy klucz API:

    1. Kliknij DODAJ FILTR.

    2. Wybierz etykietę credential_id.

    3. Wybierz wartość odpowiadającą kluczowi, który chcesz sprawdzić.

    4. Gdy skończysz, wybierz Usuń filtr na końcu wiersza aktywnego filtra, aby usunąć dodatkowy filtr.

  5. Powtórz te czynności w przypadku pozostałych kluczy.

  6. Gdy określisz typ platformy dla kluczy interfejsu API, zastosuj ograniczenia aplikacji dla tego platform_type:

    PLATFORM_TYPE_JS
    Zastosuj ograniczenia dotyczące witryn dla klucza.
    PLATFORM_TYPE_ANDROID
    Zastosuj ograniczenia aplikacji na Androida dotyczące klucza.
    PLATFORM_TYPE_IOS
    Zastosuj ograniczenia aplikacji iOS dotyczące klucza.
    PLATFORM_TYPE_WEBSERVICE
    Możesz użyć ograniczeń dotyczących adresów IP, aby odpowiednio ograniczyć dostęp do klucza. Więcej opcji dotyczących interfejsów Maps Static API i Street View Static API znajdziesz w artykule Ochrona aplikacji za pomocą interfejsów Static Web API. Więcej instrukcji dotyczących interfejsu Maps Embed API znajdziesz w artykule Witryny z interfejsem Maps Embed API.
    Mój klucz interfejsu API jest używany na wielu typach platform
    Twój ruch nie może być odpowiednio zabezpieczony za pomocą tylko jednego klucza interfejsu API. Musisz przejść na korzystanie z kilku kluczy interfejsu API. Więcej informacji znajdziesz w artykule Migracja na wiele kluczy API.

Używanie oddzielnych kluczy API dla każdej aplikacji

Ogranicza to zakres każdego klucza. Jeśli jeden klucz interfejsu API zostanie przejęty, możesz go usunąć lub wygenerować ponownie bez konieczności aktualizowania pozostałych kluczy. Możesz utworzyć maksymalnie 300 kluczy API na projekt. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące kluczy API.

Chociaż jeden klucz API na aplikację jest idealny z punktu widzenia bezpieczeństwa, możesz używać kluczy z ograniczeniami w wielu aplikacjach, o ile korzystają one z tego samego typu ograniczenia aplikacji.

Stosowanie zalecanych ograniczeń klucza interfejsu API

W przypadku niektórych właścicieli i edytorów projektów konsola Google Cloud Console sugeruje wprowadzenie określonych ograniczeń kluczy API do kluczy API bez ograniczeń na podstawie ich aktywności i korzystanie z Google Maps Platform.

Jeśli są dostępne, rekomendacje są wyświetlane jako wstępnie wypełnione opcje na stronie Dane logowania do Google Maps Platform.

.

Powody, dla których rekomendacja może się nie wyświetlać lub być niepełna

  • Używasz klucza API w innych usługach niż Google Maps Platform. Jeśli zauważysz użycie w innych usługach, nie stosuj rekomendacji, dopóki najpierw nie wykonasz tych czynności:

    1. Sprawdź, czy wykorzystanie interfejsu API widoczne w eksploratorze danych w konsoli Google Cloud jest uzasadnione.

    2. Ręcznie dodaj brakujące usługi do listy interfejsów API, które mają być autoryzowane.

    3. Ręcznie dodaj brakujące ograniczenia aplikacji dla usług dodanych do listy interfejsów API. Jeśli inne dodane klucze wymagają innego typu ograniczeń aplikacji, zapoznaj się z artykułem Przejście na kilka kluczy interfejsu API.

  • Klucz interfejsu API nie jest używany w pakietach SDK ani interfejsach API po stronie klienta.

  • Używasz klucza API w aplikacji lub witrynie o małej liczbie użytkowników, która nie była używana przez ostatnie 60 dni.

  • Utworzono nowy klucz lub wdrożony został istniejący klucz w nowej aplikacji. W takim przypadku odczekaj kilka dni, aby rekomendacje mogły się zaktualizować.

  • Używasz klucza interfejsu API w kilku aplikacjach, które wymagają sprzecznych typów ograniczeń aplikacji, lub używasz tego samego klucza interfejsu API w zbyt wielu aplikacjach lub na zbyt wielu stronach internetowych. W obu przypadkach zalecamy przejście na użycie wielu kluczy. Więcej informacji znajdziesz w artykule Migracja na wiele kluczy API.

Dlaczego rekomendacje mogą się nie wyświetlać na wykresach

  • Twoja aplikacja lub witryna wysyłała tylko bardzo krótkie impulsy ruchu. W takim przypadku przełącz widok z wykresu na tabelę lub oba formaty, ponieważ dane o użyciu są nadal widoczne w legendzie. Więcej informacji znajdziesz w artykule Włączanie i wyłączanie pełnych legend wykresu.

  • Twój ruch pochodzi z interfejsu Maps Embed API. Instrukcje znajdziesz w artykule Określanie interfejsów API, które używają klucza API.

  • Ruch z aplikacji lub witryny wykracza poza zakres dat dostępny w eksploratorze danych konsoli Google Cloud.

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Jeśli jest dostępna, wybierz opcję Zastosuj zalecane ograniczenia.

    Zastosuj zalecane ograniczenia

    Uwaga: jeśli nie widzisz żadnych zalecanych ograniczeń, zapoznaj się z artykułem Ustawianie ograniczeń interfejsu API dla klucza API, aby skonfigurować odpowiednie ograniczenia.

  3. Kliknij Sprawdź użycie interfejsu API, aby sprawdzić, w których usługach jest używany klucz interfejsu API. Jeśli widzisz inne usługi niż Google Maps Platform, zatrzymaj proces i ręcznie przejrzyj podane powyżej rekomendacje. Zapoznaj się z instrukcjami rozwiązywania problemów, które znajdują się na początku sekcji Stosowanie zalecanych ograniczeń klucza interfejsu API.

  4. Sprawdź, czy wstępnie wypełnione ograniczenia pasują do witryn i aplikacji, w których chcesz używać klucza interfejsu API.

    Sprawdzona metoda: udokumentuj i usuń wszelkie ograniczenia aplikacji lub interfejsu API, które nie są powiązane z Twoimi usługami. Jeśli coś przestanie działać z powodu nieoczekiwanej zależności, możesz ponownie dodać wymagane aplikacje lub interfejsy API.

    • Jeśli zauważysz, że w rekomendacjach brakuje aplikacji, witryny lub interfejsu API, dodaj je ręcznie lub odczekaj kilka dni, aby rekomendacje się zaktualizowały.

    • Jeśli potrzebujesz dalszej pomocy w związku z zaleceniami, skontaktuj się z zespołem pomocy.

  5. Kliknij Zastosuj.

Co zrobić, jeśli aplikacja zostanie odrzucona po zastosowaniu rekomendacji

Jeśli zauważysz, że aplikacja lub witryna została odrzucona po zastosowaniu ograniczenia, poszukaj w komunikacie o błędzie odpowiedzi interfejsu API ograniczenia aplikacji, które musisz dodać.

W przypadku pakietów SDK po stronie klienta:

Aby sprawdzić wymagane ograniczenia interfejsu API, przeczytaj artykuł Określanie interfejsów API, które korzystają z klucza API.

Jeśli nie możesz określić, które ograniczenia zastosować:

  1. Zanotuj aktualne ograniczenia na przyszłość.
  2. Tymczasowo je usuń, dopóki nie rozwiążesz problemu. Możesz sprawdzić użycie w ciągu czasu, wykonując czynności opisane w artykule Sprawdzanie użycia klucza interfejsu API.
  3. W razie potrzeby skontaktuj się z zespołem pomocy.

Usuwanie nieużywanych kluczy interfejsu API

Zanim usuniesz klucz interfejsu API, upewnij się, że nie jest on używany w środowisku produkcyjnym. Jeśli nie ma skutecznego ruchu, klucz można bezpiecznie usunąć. Więcej informacji znajdziesz w artykule Sprawdzanie użycia klucza interfejsu API.

Aby usunąć klucz interfejsu API:

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Wybierz klucz interfejsu API, który chcesz usunąć.

  3. U góry strony kliknij przycisk Usuń.

  4. Na stronie Usuwanie danych logowania kliknij Usuń.

    Usunięcie klucza interfejsu API może potrwać kilka minut. Po zakończeniu propagacji cały ruch korzystający z usuniętego klucza interfejsu API jest odrzucany.

Uważaj podczas ponownego generowania kluczy interfejsu API

Ponowne wygenerowanie klucza API spowoduje utworzenie nowego klucza z tymi samymi ograniczeniami. Spowoduje to też uruchomienie 24-godzinnego licznika czasu, po upływie którego stary klucz API zostanie usunięty.

W tym czasie akceptowane są zarówno stary, jak i nowy klucz, co daje Ci możliwość przeniesienia aplikacji na nowy klucz. Po upływie tego czasu wszystkie aplikacje, które nadal używają starego klucza API, przestaną działać.

Przed ponownym wygenerowaniem klucza API:

  • Najpierw spróbuj ograniczyć klucze interfejsu API zgodnie z instrukcjami podanymi w artykule Ograniczanie kluczy interfejsu API.

  • Jeśli ograniczenie klucza interfejsu API jest niemożliwe z powodu konfliktu między typami ograniczeń aplikacji, przejdź na kilka nowych (ograniczonych) kluczy zgodnie z instrukcjami podanymi w artykule Przejście na kilka kluczy interfejsu API. Migracja umożliwia kontrolowanie migracji i harmonogramu wdrażania nowych kluczy interfejsu API.

Jeśli nie możesz zastosować się do powyższych sugestii i musisz wygenerować nowy klucz API, aby zapobiec nieautoryzowanemu użyciu, wykonaj te czynności:

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Otwórz klucz interfejsu API, który chcesz ponownie wygenerować.

  3. U góry strony kliknij Wygeneruj klucz ponownie.

  4. Kliknij Zastąp klucz.

Uwaga: w razie potrzeby możesz przywrócić klucz, który został wygenerowany ponownie, do jego poprzedniej wersji. Nie ma limitów czasowych dla przywracania.

Aby cofnąć wygenerowany ponownie klucz:

  1. Otwórz stronę Dane logowania Google Maps Platform w konsoli Google Cloud.

  2. Otwórz klucz interfejsu API, który chcesz cofnąć.

  3. Wybierz Przywróć poprzedni klucz.

  4. W oknie Cofnij wybierz Cofnij klucz.

Po przywróceniu poprzedniej wersji klucza jego „nowa” wersja stanie się poprzednią wersją, a dla tej wersji zostanie ustawiony nowy 24-godzinny timer dezaktywacji. Dopóki nie wygenerujesz nowego klucza, możesz przełączać się między tymi 2 wartościami.

Jeśli wygenerujesz klucz ponownie, nowy klucz nadpisze starą nieaktywną wartość klucza.

Migracja na wiele kluczy interfejsu API

Aby przejść z użycia jednego klucza API dla wielu aplikacji na jeden niepowtarzalny klucz API dla każdej aplikacji, wykonaj te czynności:

  1. Znajdowanie aplikacji, które wymagają nowych kluczy:

    • Aplikacje internetowe są najłatwiejsze do zaktualizowania, ponieważ masz kontrolę nad całym kodem. Zaplanuj zaktualizowanie kluczy wszystkich swoich aplikacji internetowych.
    • W przypadku aplikacji mobilnych jest to znacznie trudniejsze, ponieważ klienci muszą zaktualizować aplikacje, zanim będą mogli używać nowych kluczy.
  2. Utwórz nowe klucze i ogranicz ich dostęp: dodaj zarówno ograniczenie aplikacji, jak i przynajmniej jedno ograniczenie interfejsu API. Więcej informacji znajdziesz w artykule Sprawdzone metody.

  3. Dodaj nowe klucze do aplikacji: w przypadku aplikacji mobilnych ten proces może potrwać miesiące, ponieważ wszyscy użytkownicy muszą zaktualizować aplikację do najnowszej wersji z nowym kluczem interfejsu API.

.

Zabezpieczanie aplikacji za pomocą interfejsów API do obsługi statycznej sieci Web

Statyczne interfejsy API sieci Web, takie jak interfejs Static API Map i Static API Street View, są podobne do wywołań interfejsu API usługi internetowej.

Oba wywołania wykonujesz za pomocą prostego interfejsu API REST HTTPS, a adres URL żądania interfejsu API generujesz zwykle na serwerze. Zamiast jednak zwracać odpowiedź w formacie JSON, interfejsy API StaticWeb generują obraz, który możesz osadzić w wygenerowanym kodzie HTML. Co ważniejsze, to klient użytkownika końcowego, a nie serwer, wywołuje usługę Google Maps Platform.

.

Używanie podpisu cyfrowego

Sprawdzoną metodą jest zawsze używanie podpisów cyfrowych oprócz klucza interfejsu API. Sprawdź też, ile niewymagających podpisu żądań chcesz zezwalać na dzień i zmodyfikuj limity takich żądań.

Więcej informacji o podpisach cyfrowych znajdziesz w przewodniku po podpisie cyfrowym.

Ochrona tajnego klucza do podpisywania

Aby chronić interfejsy API Static Web, nie umieszczaj informacji tajnych podpisywania interfejsu API bezpośrednio w kodzie ani w drzewie źródłowym ani nie udostępniaj ich w aplikacjach po stronie klienta. Aby chronić sekrety podpisywania:

  • Podpisywanie żądań po stronie serwera, a nie klienta. Jeśli podpisywanie odbywa się po stronie klienta w JavaScript, jest ono widoczne dla każdego, kto odwiedza Twoją witrynę. Dlatego w przypadku obrazów generowanych dynamicznie zawsze generuj podpisane adresy URL żądań interfejsu Static Maps API i Street View Image API po stronie serwera podczas wyświetlania strony internetowej. W przypadku statycznych treści internetowych możesz użyć widżetu Zaloguj się za pomocą adresu URL na stronie Dane uwierzytelniające Google Maps Platform w konsoli Cloud.

  • Przechowuj sekrety podpisywania poza kodem źródłowym i drzewem źródłowym aplikacji. Jeśli umieścisz tajne informacje do podpisywania lub inne informacje prywatne w zmiennych środowiskowych lub dołączysz pliki przechowywane oddzielnie, a potem udostępnisz kod, tajne informacje do podpisywania nie zostaną uwzględnione w udostępnionych plikach. Jeśli przechowujesz w plikach tajne klucze do podpisywania lub inne informacje prywatne, przechowuj je poza drzewem źródłowym aplikacji, aby nie były dostępne dla systemu kontroli kodu źródłowego. Ta ostrożność jest szczególnie ważna, jeśli używasz publicznego systemu zarządzania kodem źródłowym, takiego jak GitHub.

Zabezpieczanie klucza interfejsu API w aplikacjach korzystających z usług internetowych

przechowuj klucze interfejsu API poza kodem źródłowym lub drzewem źródłowym aplikacji. Jeśli umieścisz klucze interfejsu API lub inne informacje w zmiennych środowiskowych lub dołączysz pliki przechowywane oddzielnie, a potem udostępnisz kod, klucze interfejsu API nie zostaną uwzględnione w udostępnionych plikach. Jest to szczególnie ważne, jeśli używasz publicznego systemu zarządzania kodem źródłowym, takiego jak GitHub.

Ochrona klucza interfejsu API i tajemnego klucza podpisywania w aplikacjach mobilnych przy użyciu usług internetowych lub statycznych interfejsów API internetowych

Aby chronić aplikacje mobilne, użyj bezpiecznego repozytorium kluczy lub bezpiecznego serwera proxy:

  • Zapisz klucz interfejsu API lub tajny klucz do podpisywania w bezpiecznym magazynie kluczy. Dzięki temu trudniej będzie wydobyć klucze API i inne dane prywatne bezpośrednio z aplikacji.

  • Używaj bezpiecznego serwera proxy. Serwer proxy zapewnia solidne źródło do interakcji z odpowiednim interfejsem API Google Maps Platform. Więcej informacji o używaniu serwera proxy znajdziesz w artykule Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries (Przypadek użycia: korzystanie z serwerów proxy w bibliotekach klienta interfejsu Google Data API).

    • Tworzenie żądań do Google Maps Platform na serwerze proxy. Nie zezwalaj klientom na przekazywanie dowolnych wywołań interfejsu API przez serwer proxy.

    • przetwarzać odpowiedzi Google Maps Platform na serwerze proxy. odfiltrowywać dane, których klient nie potrzebuje;

Zabezpieczanie klucza interfejsu API za pomocą funkcji sprawdzania aplikacji

Niektóre pakiety SDK i interfejsy API Map umożliwiają integrację z funkcją Firebase AppCheck. Sprawdzanie aplikacji zapewnia ochronę wywołań z Twojej aplikacji do Google Maps Platform poprzez blokowanie ruchu pochodzącego ze źródeł innych niż prawidłowe aplikacje. Robi to, sprawdzając token od dostawcy usługi uwierzytelniania. Integracja aplikacji ze Sprawdzaniem aplikacji pomaga chronić przed złośliwymi żądaniami, dzięki czemu nie naliczamy opłat za nieautoryzowane wywołania interfejsu API.

Instrukcje integracji z App Check:

Rozwiązywanie problemów z nieautoryzowanym użyciem klucza API

Jeśli wykryjesz nieautoryzowane użycie klucza interfejsu API, wykonaj te czynności, aby rozwiązać problem:

  1. Ogranicz klucze: jeśli używasz tego samego klucza w kilku aplikacjach, przeprowadź migrację na kilka kluczy interfejsu API i używaj oddzielnych kluczy dla każdej aplikacji. Więcej informacji znajdziesz w tych artykułach:

  2. Tylko w przypadku, gdy nie możesz ich ograniczyć, wygeneruj ponownie klucze. Zanim przejdziesz dalej, przeczytaj sekcję Uważaj podczas generowania kluczy interfejsu API.

  3. Jeśli nadal masz problemy lub potrzebujesz pomocy, skontaktuj się z zespołem pomocy.

Zalecane ograniczenia aplikacji i interfejsu API

W następnych sekcjach znajdziesz odpowiednie ograniczenia aplikacji i interfejsu API dla każdego interfejsu API, pakietu SDK lub usługi Google Maps Platform.

Zalecane ograniczenia interfejsu API

Te wytyczne dotyczące ograniczeń interfejsu API obowiązują w całości Google Maps Platform:

  • Ogranicz użycie klucza interfejsu API tylko do tych interfejsów API, których używasz. Wyjątki:

    • Jeśli Twoja aplikacja korzysta z pakietu Places SDK dla Androida lub z pakietu Places SDK dla iOS, autoryzuj interfejs Places API.

    • Jeśli Twoja aplikacja korzysta z interfejsu Maps JavaScript API, zawsze autoryzuj ją za pomocą klucza.

    • Jeśli korzystasz też z jednego z tych usług interfejsu Maps JavaScript API, musisz dodatkowo autoryzować te interfejsy API:

    Usługa Ograniczenie interfejsu API
    Usługa wyznaczania trasy, Maps JavaScript API Directions API
    Usługa macierzy odległości, Maps JavaScript API Distance Matrix API
    Usługa określania wysokości, Maps JavaScript API Elevation API
    Usługa geokodowania, Maps JavaScript API Geocoding API
    Biblioteka miejsc, Maps JavaScript API Places API

Oto kilka przykładów:

  • Używasz pakietu Maps SDK na Androida i pakietu SDK Miejsc na Androida, więc musisz uwzględnić interfejsy Maps SDK na Androida i Places API jako ograniczenia interfejsu API.

  • Twoja witryna korzysta z usługi Elevation Service w interfejsie Maps JavaScript API oraz z interfejsu Maps Static API, więc dodajesz ograniczenia API dla wszystkich tych interfejsów API:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

Zalecane ograniczenie aplikacji

witryny korzystające z interfejsu Maps JavaScript API lub interfejsu Static Web API;

W przypadku witryn korzystających z usług JavaScript API Map lub interfejsów Static Web API użyj ograniczenia aplikacji Websites.

Używaj w przypadku witryn, które korzystają z tych usług i interfejsów API JavaScript:

1 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu Maps SDK na Androida i Maps SDK na iOS.

2 Zobacz też: ochrona aplikacji mobilnych za pomocą usługi internetowej lub interfejsów API Static Web.

Strony internetowe z interfejsem Maps Embed API

Korzystanie z interfejsu Maps Embed API jest bezpłatne, ale i tak należy ograniczyć używany klucz API, aby zapobiec nadużyciom w innych usługach.

Sprawdzona metoda: utwórz osobny klucz interfejsu API do użycia w Maps Embed API i ogranicz ten klucz do tylko interfejsu Maps Embed API. To ograniczenie zapewnia wystarczające zabezpieczenie klucza, zapobiegając jego nieautoryzowanemu użyciu w innych usługach Google.

Jeśli nie możesz oddzielić korzystania z interfejsu Mapy Google do wklejania od osobnego klucza API, zabezpiecz klucz za pomocą ograniczenia aplikacji Websites.

Aplikacje i serwery korzystające z usług internetowych

W przypadku aplikacji i serwerów korzystających z usług internetowych użyj ograniczenia aplikacji IP addresses.

Używaj ich w przypadku aplikacji i serwerów korzystających z tych interfejsów API:

3 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu Places SDK na AndroidaPlaces SDK na iOS.

Aplikacje na Androida

W przypadku aplikacji na Androida użyj ograniczenia aplikacji Android apps. Używaj ich w przypadku aplikacji i serwerów korzystających z tych pakietów SDK:

Dodatkowo zapobiegaj przypadkowemu dodaniu kluczy interfejsu API do kontroli wersji, używając wtyczki Gradle dla obiektów tajnych, aby wstrzyknąć obiekty tajne z pliku lokalnego zamiast przechowywać je w pliku manifestu Androida.

Aplikacje na iOS

W przypadku aplikacji na iOS użyj ograniczenia aplikacji iOS apps. Używaj ich w przypadku aplikacji i serwerów korzystających z tych pakietów SDK: