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

W przypadku aplikacji i projektów, które korzystają z interfejsów API oraz pakietów SDK Google Maps Platform, musisz używać kluczy interfejsu API lub protokołu OAuth, jeśli są one obsługiwane, aby zapobiegać nieautoryzowanemu użyciu i obciążeniom. Jeśli używasz kluczy interfejsu API, to aby zapewnić jak największe bezpieczeństwo, ogranicz klucze interfejsu API podczas ich tworzenia. Z tych sprawdzonych metod dowiesz się, jak ograniczać takie kategorie.

Oprócz zastosowania ograniczeń aplikacji i klucza interfejsu API przestrzegaj też wszelkich zasad bezpieczeństwa, które mają zastosowanie do określonych usług Google Maps Platform. Możesz się na przykład zapoznać z opisem interfejsu Maps JavaScript API poniżej w sekcji Zalecane ograniczenia dotyczące aplikacji i interfejsów API.

Jeśli Twoje klucze interfejsu API są już używane, zapoznaj się z zaleceniami opisanymi w sekcji Jeśli ograniczasz lub ponownie generujesz klucz interfejsu API, który jest używany.

Więcej informacji na temat podpisów cyfrowych znajdziesz w Przewodniku po podpisach cyfrowych.

Zalecane sprawdzone metody

Aby zwiększyć bezpieczeństwo i uniknąć opłat za nieautoryzowane użycie, postępuj zgodnie z tymi sprawdzonymi metodami zapewniania bezpieczeństwa interfejsów API, pakietów SDK i usług Google Maps Platform:

Ograniczanie kluczy interfejsu API

Używanie oddzielnych kluczy interfejsu API w przypadku każdej aplikacji

Usuwanie nieużywanych kluczy interfejsu API

Sprawdzanie użycia klucza interfejsu API

Zachowaj ostrożność podczas ponownego generowania kluczy interfejsu API

Dodatkowe zalecenia dotyczące witryn korzystających ze statycznych interfejsów API sieci Web

Ochrona aplikacji za pomocą statycznych interfejsów API

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

Ochrona aplikacji za pomocą usług internetowych

Dodatkowe zalecenia dotyczące aplikacji mobilnych na iOS i Androida

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

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

  • Zanim zmienisz klucz interfejsu API, sprawdź jego użycie. Jest to szczególnie ważne, jeśli dodajesz ograniczenia po użyciu klucza.

  • W razie potrzeby po zmianie klucza zaktualizuj wszystkie aplikacje przy użyciu nowych kluczy interfejsu API.

  • Jeśli nie występuje aktywne nadużywanie klucza interfejsu API, możesz we własnym tempie przenieść swoje aplikacje do wielu nowych kluczy interfejsu API, pozostawiając pierwotny klucz bez zmian do czasu, gdy pojawi się tylko jeden typ ruchu, do którego możesz ograniczyć klucze interfejsu API za pomocą ograniczenia aplikacji. Dalsze instrukcje znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

    Zanim ograniczysz lub usuniesz stary klucz, monitoruj wykorzystanie w czasie i sprawdź, czy konkretne interfejsy API, typy platform i domeny zostały przeniesione ze starego klucza interfejsu API. Więcej informacji znajdziesz w artykułach Raportowanie i monitorowanie oraz Wskaźniki.

  • Jeśli ktoś przejął Twój klucz interfejsu API, możesz szybciej go zabezpieczyć i zapobiec nadużyciom. W aplikacjach na Androida i iOS klucze nie zostaną zastąpione, dopóki klienci nie zaktualizują aplikacji. Aktualizowanie lub zastępowanie kluczy w JavaScript lub aplikacjach usług internetowych jest znacznie prostsze, ale i tak może wymagać starannego planowania i szybkiej pracy.

    Więcej informacji znajdziesz w artykule na temat nieautoryzowanego użycia klucza interfejsu API.

Ograniczanie kluczy interfejsu API

Sprawdzoną metodą jest zawsze ograniczanie kluczy interfejsu API za pomocą ograniczeń aplikacji i co najmniej 1 ograniczenia interfejsu API. Sugerowane ograniczenia zależne od interfejsu API, pakietu SDK lub usługi JavaScript znajdziesz w sekcji Zalecane ograniczenia dotyczące aplikacji i interfejsów API poniżej.

  • Ograniczenie aplikacji Możesz ograniczyć korzystanie z klucza interfejsu API do konkretnych platform: aplikacji na Androida lub iOS, konkretnych witryn aplikacji po stronie klienta albo konkretnych adresów IP lub podsieci CIDR na potrzeby aplikacji po stronie serwera wywołujących interfejs API REST API.

    Aby ograniczyć użycie klucza, musisz dodać co najmniej 1 ograniczenie aplikacji dla typów, które chcesz autoryzować. Gdy to zrobisz, dozwolone będą wyłącznie żądania pochodzące z tych źródeł.

  • Ograniczenia interfejsów API Możesz określić, które interfejsy API, pakiety SDK lub usługi Google Maps Platform mogą być używane z Twoim kluczem interfejsu API. Ograniczenia interfejsów API umożliwiają wysyłanie żądań tylko do określonych przez Ciebie interfejsów API i pakietów SDK. Dla każdego 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 ograniczenia aplikacji dla klucza interfejsu API

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

  2. Wybierz klucz interfejsu API, dla którego chcesz ograniczyć dostęp.

  3. Na stronie edytowania klucza interfejsu API w sekcji Ograniczenia klucza wybierz Ustaw ograniczenie aplikacji.

    Edytuj stronę klucza interfejsu API

  4. Wybierz jeden z typów ograniczeń i podaj wymagane informacje, korzystając z listy ograniczeń.

    Typ ograniczenia Opis
    Witryny Określ co najmniej jedną witrynę odsyłającą.
    • Powszechnie obsługiwane schematy identyfikatorów URI stron odsyłających to https i http.
    • Zawsze podawaj pełny identyfikator URI strony odsyłającej, w tym schemat protokołu, nazwę hosta i opcjonalny port (np. https://google.com).
    • Aby autoryzować wszystkie subdomeny, możesz użyć symboli wieloznacznych. Na przykład https://*.google.com akceptuje wszystkie witryny kończące się na .google.com. Pamiętaj, że jeśli podasz www.domena.com, będzie on działać jako symbol wieloznaczny www.domena.com/* i autoryzuje dowolną ścieżkę podrzędną dla tej nazwy hosta.
    • Zachowaj ostrożność podczas autoryzacji stron odsyłających o pełnej ścieżce, np. https://google.com/some/path, ponieważ większość współczesnych przeglądarek domyślnie usuwa ścieżkę z żądań z innych domen.
    Adresy IP Podaj co najmniej 1 adres IPv4 lub IPv6 bądź podsieć w notacji CIDR. Adresy IP muszą być zgodne z adresem źródłowym obserwowanym przez serwery Google Maps Platform. Jeśli używasz tłumaczenia adresów sieciowych (NAT), ten adres zwykle odpowiada publicznemu adresowi IP Twojego komputera.
    Aplikacje na Androida Dodaj nazwę pakietu na Androida (z pliku AndroidManifest.xml) oraz odcisk cyfrowy certyfikatu podpisywania 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 sekcją Współpraca z dostawcami interfejsów API. Jeśli zarządzasz własnym kluczem podpisywania, zapoznaj się z informacjami o samodzielnym podpisywaniu aplikacji lub w instrukcjach dotyczących Twojego środowiska kompilacji.
    Aplikacje na iOS Dodaj identyfikator pakietu każdej aplikacji na iOS, którą chcesz autoryzować.

    Zalecenia dotyczące ograniczenia aplikacji znajdziesz w artykule Zalecane ograniczenie aplikacji.

  5. Kliknij Zapisz.

Ustawianie ograniczeń interfejsu API dla klucza interfejsu API

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

  2. Wybierz klucz interfejsu API, dla którego chcesz ograniczyć dostęp.

  3. Na stronie edytowania klucza interfejsu API w sekcji Ograniczenia interfejsu API:

    • Wybierz Ogranicz klucz.

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

      Jeśli interfejsu API lub pakietu SDK nie ma na liście, musisz go włączyć. Więcej informacji znajdziesz w artykule o włączaniu co najmniej jednego interfejsu API lub pakietu SDK.

    Ograniczanie interfejsu API na stronie Edytuj klucz interfejsu API

  4. Kliknij Zapisz.

    Po tym kroku ograniczenie stanie się częścią definicji klucza interfejsu API. Podaj odpowiednie informacje i kliknij Zapisz, aby zapisać ograniczenia klucza interfejsu API. Więcej informacji znajdziesz w przewodniku Uzyskiwanie klucza interfejsu API w dokumentacji określonego interfejsu API lub pakietu SDK, który Cię interesuje.

Zalecane ograniczenia dotyczące interfejsów API znajdziesz w artykule Zalecane ograniczenia dotyczące interfejsów API.

Sprawdzanie użycia klucza interfejsu API

Jeśli ograniczasz klucze interfejsu API po ich utworzeniu lub chcesz sprawdzić, jakie interfejsy API są używane przez dany klucz, aby je ograniczyć, sprawdź wykorzystanie klucza interfejsu API. Te kroki pokazują, w których usługach i metodach interfejsu API używany jest klucz interfejsu API. Jeśli zauważysz użycie danych poza usługami Google Maps Platform, sprawdź, czy musisz dodać więcej ograniczeń, aby uniknąć niechcianego użycia. Możesz użyć eksploratora wskaźników w konsoli Cloud Google Maps Platform, aby określić, które ograniczenia interfejsów API i aplikacji zastosować do Twojego klucza interfejsu API:

Określanie interfejsów API, które używają Twojego klucza interfejsu API

Dzięki tym raportom wskaźników możesz określić, które interfejsy API używają Twoich kluczy interfejsu API. Raporty te pozwolą Ci:

  • Sprawdzanie, jak używane są klucze interfejsu API
  • Spotkanie z nieoczekiwanym użyciem
  • Sprawdź, czy nieużywany klucz można bezpiecznie usunąć. Informacje na temat usuwania klucza interfejsu API znajdziesz w sekcji Usuwanie nieużywanych kluczy interfejsu API.

Jeśli stosujesz ograniczenia interfejsów API, użyj tych raportów, aby utworzyć listę interfejsów API do autoryzacji lub zweryfikować wygenerowane automatycznie rekomendacje dotyczące ograniczeń klucza interfejsu API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule Stosowanie zalecanych ograniczeń. Więcej informacji o korzystaniu z narzędzia Metrics Explorer znajdziesz w artykule Tworzenie wykresów w narzędziu Metrics Explorer.

  1. Otwórz w Google Cloud Console Metrics Explorer.

  2. Zaloguj się i wybierz projekt dla kluczy interfejsu API, które chcesz sprawdzić.

  3. Otwórz stronę Metrics Explorer odpowiednią dla odpowiedniego typu interfejsu API:

    • W przypadku kluczy interfejsu API korzystających z dowolnego interfejsu API oprócz Maps Embed API: otwórz stronę Metrics Explorer.

    • W przypadku kluczy interfejsu API korzystających z interfejsu Maps Embed API: otwórz Metrics Explorer.

  4. Sprawdź każdy klucz interfejsu API:

    1. Kliknij DODAJ FILTR.

    2. Wybierz etykietę credential_id.

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

    4. Zanotuj, do których interfejsów API jest używany ten klucz interfejsu API, i potwierdź, że użycie jest zgodne z oczekiwaniami.

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

  5. Powtórz te czynności dla pozostałych klawiszy.

  6. Ogranicz klucze interfejsu API tylko do używanych interfejsów API.

  7. Jeśli zauważysz nieautoryzowane użycie klucza interfejsu API, przeczytaj artykuł Postępowanie w przypadku nieautoryzowanego użycia klucza interfejsu API.

Wybierz prawidłowy typ ograniczenia aplikacji w narzędziu Metrics Explorer

Gdy zakończysz weryfikację i wykonasz wymagane działania, aby mieć pewność, że Twój klucz interfejsu API jest używany tylko w usługach Google Maps Platform, z których on korzysta, sprawdź też, czy klucz interfejsu API ma odpowiednie ograniczenia aplikacji.

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

Jeśli klucz interfejsu API nie zawiera rekomendacji dotyczących ograniczeń, w narzędziu Metrics Explorer określ typ ograniczenia aplikacji, które chcesz zastosować, na podstawie raportowanych wartości platform_type:

  1. Otwórz w Google Cloud Console Metrics Explorer.

  2. Zaloguj się i wybierz projekt interfejsów API, które chcesz sprawdzić.

  3. Otwórz stronę Metrics Explorer: Metrics Explorer.

  4. Sprawdź każdy klucz interfejsu 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 aktywnego wiersza filtra, aby usunąć dodatkowy filtr.

  5. Powtórz te czynności dla pozostałych klawiszy.

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

    PLATFORM_TYPE_JS
    Zastosuj do klucza ograniczenia dostępu do stron.
    PLATFORM_TYPE_ANDROID
    Zastosuj ograniczenia aplikacji na Androida do klucza.
    PLATFORM_TYPE_IOS
    Zastosuj ograniczenia aplikacji na iOS do klucza.
    PLATFORM_TYPE_WEBSERVICE
    Być może musisz zastosować na kluczu ograniczenia adresu IP, aby odpowiednio ograniczyć jego użycie. Więcej informacji o interfejsach Maps Static API i Street View Static API znajdziesz w artykule Ochrona aplikacji za pomocą statycznych interfejsów API. Dalsze instrukcje dotyczące interfejsu Maps Embed API znajdziesz w artykule na temat stron internetowych korzystających z interfejsu Maps Embed API.
    Mój klucz interfejsu API korzysta z wielu typów platform
    Nie da się odpowiednio zabezpieczyć ruchu za pomocą jednego klucza interfejsu API. Musisz przeprowadzić migrację do wielu kluczy interfejsu API. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

Używanie oddzielnych kluczy interfejsu API dla każdej aplikacji

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

Jeden klucz interfejsu API na aplikację to idealne rozwiązanie ze względów bezpieczeństwa, ale możesz używać kluczy z ograniczeniami w wielu aplikacjach, pod warunkiem że są w nich stosowane tego samego typu ograniczenia.

Zastosuj zalecane ograniczenia klucza interfejsu API

W przypadku niektórych właścicieli i edytujących projekty konsola Google Cloud sugeruje określone ograniczenia dotyczące kluczy interfejsu API, które mają zastosowanie do kluczy interfejsu API bez ograniczeń na podstawie ich wykorzystania i aktywności w Google Maps Platform.

Rekomendacje będą widoczne jako wstępnie wypełnione opcje na stronie Dane logowania do Google Maps Platform.

Powody, dla których możesz nie widzieć rekomendacji lub jest niekompletna

  • Używasz (również) klucza interfejsu API w usługach innych niż Google Maps Platform. Jeśli zauważysz użycie w innych usługach, nienie stosuj tej rekomendacji bezuprzedniego wykonania tych czynności:

    1. Sprawdź, czy wykorzystanie interfejsu API, które widzisz w narzędziu Google Cloud Console Metrics, jest wiarygodne.

    2. Ręcznie dodaj brakujące usługi do listy interfejsów API do autoryzacji.

    3. Ręcznie dodaj wszystkie brakujące ograniczenia aplikacji w usługach dodanych do listy interfejsów API. Jeśli dodana inna dodana osoba wymagałaby innego typu ograniczeń aplikacji, zapoznaj się z sekcją Migracja do wielu kluczy interfejsu API.

  • Twój klucz interfejsu API nie jest używany w pakietach SDK ani interfejsach API po stronie klienta.

  • Używasz klucza interfejsu API w aplikacji lub witrynie o niskiej liczbie wyświetleń, które nie były używane w ciągu ostatnich 60 dni.

  • Nowo utworzony klucz lub bardzo niedawno wdrożyłeś(-aś) istniejący klucz w nowej aplikacji. W takim przypadku zaczekaj jeszcze kilka dni, aby umożliwić zaktualizowanie rekomendacji.

  • Używasz klucza interfejsu API w wielu aplikacjach, które wymagają nakładania się typów ograniczeń aplikacji powodujących konflikt, lub używasz tego samego klucza interfejsu API w zbyt wielu różnych aplikacjach lub witrynach. W obu przypadkach zgodnie ze sprawdzonymi metodami przeprowadź migrację do wielu kluczy. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

Powody, dla których rekomendacje mogą być niewidoczne na wykresach

  • Twoja aplikacja lub strona internetowa wysłała tylko bardzo krótkie serie ruchu. W takim przypadku przełącz się z widoku WYKRES, aby wyświetlić TABELA lub OBA, ponieważ wykorzystanie jest nadal widoczne w legendzie. Więcej informacji znajdziesz w artykule Przełączanie pełnych legend wykresu.

  • Ruch pochodzi z interfejsu Maps Embed API. Instrukcje znajdziesz w artykule na temat określania interfejsów API, które używają Twojego klucza interfejsu API.

  • Ruch z aplikacji lub witryny wykracza poza zakres dat dostępny w narzędziu Metrics Explorer w Google Cloud Console.

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

  2. Jeśli to możliwe, wybierz Zastosuj zalecane ograniczenia.

    Zastosuj zalecane ograniczenia

    Uwaga: jeśli nie widzisz żadnych zalecanych ograniczeń, zapoznaj się z sekcją Ustawianie ograniczeń interfejsu API dla klucza interfejsu API, aby ustawić odpowiednie ograniczenia.

  3. Wybierz Sprawdź wykorzystanie interfejsu API, aby zobaczyć, w których usługach używany jest klucz interfejsu API. Jeśli widzisz inne opcje niż Google Maps Platform, wstrzymaj, aby ręcznie sprawdzić opisane powyżej czynności związane z rekomendacjami. Instrukcje rozwiązywania problemów znajdziesz na początku sekcji Stosowanie zalecanych ograniczeń klucza interfejsu API.

  4. Dokładnie sprawdź, czy wstępnie wypełnione ograniczenia są zgodne z witrynami i aplikacjami, w których zamierzasz używać klucza interfejsu API.

    Sprawdzona metoda: udokumentuj i usuń wszystkie ograniczenia dotyczące aplikacji i interfejsów API, które nie są powiązane z Twoimi usługami. Jeśli coś się zepsuje z powodu nieoczekiwanej zależności, możesz z powrotem dodać wymagane aplikacje lub interfejsy API.

    • Jeśli zauważysz, że w rekomendacji wyraźnie brakuje aplikacji, witryny lub interfejsu API, dodaj ją ręcznie lub poczekaj kilka dni, aż rekomendację się zaktualizuje.

    • Jeśli potrzebujesz dodatkowej pomocy w związku z sugerowaną rekomendacją, skontaktuj się z zespołem pomocy.

  5. Kliknij Zastosuj.

Co zrobić, jeśli zgłoszenie zostanie odrzucone po zastosowaniu rekomendacji

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

Poniżej znajdziesz informacje o pakietach SDK po stronie klienta:

Aby sprawdzić wymagane ograniczenia interfejsów API, przeczytaj artykuł o określaniu interfejsów API, które korzystają z Twojego klucza interfejsu API.

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

  1. Zanotuj obecne ograniczenia, aby skorzystać z nich w przyszłości.
  2. Usuń je tymczasowo na czas badania problemu. Z czasem wykorzystanie możesz sprawdzić, wykonując czynności opisane w sekcji Sprawdzanie użycia klucza interfejsu API.
  3. W razie potrzeby skontaktuj się z zespołem pomocy.

Usuń nieużywane klucze interfejsu API

Zanim usuniesz klucz interfejsu API, sprawdź, czy nie jest on używany w środowisku produkcyjnym. Jeśli nie ma pomyślnego ruchu, klucz można prawdopodobnie 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 do Google Maps Platform w konsoli Google Cloud.

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

  3. Kliknij przycisk Usuń u góry strony.

  4. Na stronie Usuwanie danych logowania wybierz 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.

Zachowaj ostrożność podczas ponownego generowania kluczy interfejsu API

Ponowne wygenerowanie klucza interfejsu API powoduje utworzenie nowego klucza, który ma wszystkie ograniczenia starego klucza. Ten proces rozpoczyna też 24-godzinny czas, po którym stary klucz interfejsu API jest usuwany.

W tym czasie akceptowany jest zarówno stary, jak i nowy klucz, dzięki czemu masz możliwość przeniesienia aplikacji do nowego. Jednak po upływie tego czasu aplikacje nadal korzystające ze starego klucza interfejsu API przestaną działać.

Przed ponownym wygenerowaniem klucza interfejsu API:

  • Najpierw spróbuj ograniczyć klucze interfejsu API zgodnie z opisem w sekcji Ograniczanie kluczy interfejsu API.

  • Jeśli ograniczenie klucza interfejsu API nie jest możliwe z powodu sprzecznych typów ograniczeń aplikacji, przenieś się do wielu nowych (z ograniczeniami) kluczy zgodnie z opisem w sekcji Migracja do wielu kluczy interfejsu API. Migracja pozwala kontrolować migrację i wdrażać nowe klucze interfejsu API.

Jeśli powyższe sugestie nie są możliwe i musisz ponownie wygenerować klucz interfejsu API, aby zapobiec nieautoryzowanemu użyciu, wykonaj te czynności:

  1. Otwórz stronę Dane logowania do 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 wycofać każdy klucz, który został ponownie wygenerowany w poprzedniej wersji. Nie ma żadnych limitów czasowych na przywrócenie poprzedniej wersji produkcyjnej.

Aby wycofać ponownie wygenerowany klucz

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

  2. Otwórz klucz interfejsu API, którego przywrócenie chcesz przywrócić.

  3. Wybierz Przywróć poprzedni klucz.

  4. W oknie Przywróć wybierz Przywróć klucz.

Po wycofaniu poprzednia „nowa” wersja klucza staje się poprzednią wersją i ustawiono dla niej nowy 24-godzinny licznik czasu dezaktywacji. Możesz przełączać się między tymi 2 wartościami klucza, dopóki nie wygenerujesz ponownie klucza.

Jeśli wygenerujesz ponownie klucz ponownie, zastąpi on starą, nieaktywną parę klucz-wartość.

Migracja do wielu kluczy interfejsu API

Aby przejść z używania 1 klucza API dla wielu aplikacji na 1 unikalny klucz interfejsu API dla każdej aplikacji, wykonaj te czynności:

  1. Określ, które aplikacje wymagają nowych kluczy:

    • Aplikacje internetowe są najłatwiejsze do aktualizowania, ponieważ to Ty kontrolujesz cały kod. Zaplanuj zaktualizowanie kluczy wszystkich aplikacji internetowych.
    • Aplikacje mobilne są znacznie trudniejsze, ponieważ klienci muszą je zaktualizować, zanim będzie można używać nowych kluczy.
  2. Utwórz i ogranicz nowe klucze: dodaj zarówno ograniczenie aplikacji, jak i co najmniej jedno ograniczenie interfejsu API. Więcej informacji znajdziesz w artykule Zalecane sprawdzone metody.

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

Ochrona aplikacji za pomocą statycznych interfejsów API witryn

Statyczne interfejsy API witryn internetowych, takie jak Maps Static API i Street View Static API, są podobne do wywołań interfejsu API usług internetowych.

Wywołujesz oba za pomocą prostego interfejsu API typu HTTPS REST i zwykle generujesz adres URL żądania do interfejsu API na serwerze. Jednak zamiast zwracać odpowiedź JSON, statyczne interfejsy Web API generują obraz, który możesz umieścić w wygenerowanym kodzie HTML. Co ważniejsze, usługę Google Maps Platform wywołuje zwykle klient użytkownika, a nie serwer.

Korzystanie z podpisu cyfrowego

Sprawdzoną metodą jest używanie podpisów cyfrowych oprócz klucza interfejsu API. Sprawdź też, na ile niepodpisanych żądań chcesz zezwolić dziennie, i odpowiednio dostosuj limity niepodpisanych żądań.

Więcej informacji na temat podpisów cyfrowych znajdziesz w Przewodniku po podpisach cyfrowych.

Chroń swój tajny klucz podpisywania

Aby chronić statyczne interfejsy API witryny, nie umieszczaj tajnych kluczy podpisywania interfejsów API bezpośrednio w kodzie ani w drzewie źródłowym ani nie ujawniaj ich w aplikacjach po stronie klienta. Postępuj zgodnie z tymi sprawdzonymi metodami ochrony obiektów tajnych podpisywania:

  • Podpisuj żądania po stronie serwera, a nie klienta. Jeżeli podpiszesz stronę po stronie klienta w języku JavaScript, będzie ona widoczna dla wszystkich użytkowników Twojej witryny. Dlatego w przypadku obrazów generowanych dynamicznie należy zawsze generować podpisany interfejs Maps Statyczny interfejs API oraz Adres URL statycznego interfejsu Street View API podczas wyświetlania strony internetowej po stronie serwera. W przypadku statycznych treści internetowych możesz użyć widżetu Podpisz URL teraz na stronie Dane logowania Google Maps Platform w konsoli Cloud.

  • Przechowuj tajne klucze podpisywania poza kodem źródłowym i drzewem źródłowym aplikacji. Jeśli umieścisz w zmiennych środowiskowych swoje tajne klucze podpisywania lub inne prywatne informacje bądź uwzględnisz pliki, które są przechowywane oddzielnie, a potem udostępnisz swój kod, tajne klucze podpisywania nie zostaną udostępnione w plikach udostępnionych. Jeśli przechowujesz obiekty tajne podpisywania lub inne informacje prywatne w plikach, przechowuj te pliki poza drzewem źródłowym aplikacji, aby te klucze nie były dostępne w systemie kontroli kodu źródłowego. Jest to szczególnie ważne, jeśli korzystasz z publicznego systemu zarządzania kodem źródłowym, takiego jak GitHub.

Ochrona klucza interfejsu API w aplikacjach za pomocą usług internetowych

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

Ochrona klucza interfejsu API i tajnego klucza podpisywania w aplikacjach mobilnych za pomocą usług internetowych lub statycznych interfejsów API sieci Web

Aby chronić aplikacje mobilne, używaj bezpiecznego magazynu kluczy lub serwera proxy:

  • Przechowuj klucz interfejsu API lub tajny klucz podpisywania w bezpiecznym magazynie kluczy. Utrudnia to pobieranie kluczy interfejsu API i innych danych prywatnych bezpośrednio z aplikacji.

  • Korzystanie z bezpiecznego serwera proxy. Serwer proxy jest solidnym źródłem interakcji z odpowiednim interfejsem Google Maps Platform API. Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries (Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries).

    • Twórz żądania Google Maps Platform na serwerze proxy. Nie zezwalaj klientom na przekazywanie dowolnych wywołań interfejsu API przez serwer proxy.

    • Przetwórz odpowiedzi Google Maps Platform na serwerze proxy. Odfiltrowywanie danych, których klient nie potrzebuje.

Nieautoryzowane użycie klucza interfejsu API

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

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

  2. Wygeneruj klucze tylko wtedy, gdy nie możesz ich ograniczyć. Przeczytaj sekcję Zachowaj ostrożność podczas ponownego generowania kluczy interfejsu API, zanim przejdziesz dalej.

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

Zalecane ograniczenia dotyczące aplikacji i interfejsów API

W sekcjach poniżej podpowiadamy odpowiednie ograniczenia dotyczące aplikacji i interfejsów API w przypadku poszczególnych interfejsów API i pakietów SDK oraz usług Google Maps Platform.

Zalecane ograniczenia interfejsu API

Poniższe wytyczne dotyczące ograniczeń interfejsu API mają zastosowanie do całej usługi Google Maps Platform:

  • Ogranicz klucz interfejsu API tylko do tych interfejsów API, w których go używasz, z tymi wyjątkami:

    • Jeśli Twoja aplikacja używa pakietu SDK Miejsc na Androida lub pakietu SDK Miejsc na iOS, autoryzuj interfejs Places API.

    • Jeśli aplikacja korzysta z interfejsu Maps JavaScript API, zawsze autoryzuj go w swoim kluczu.

    • Jeśli korzystasz też z poniższych usług Maps JavaScript API, musisz też 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 SDK Map Google na Androida i pakietu SDK Miejsc na Androida, więc jako ograniczeń interfejsu API uwzględniasz pakiet Maps SDK na Androida i interfejs Places API.

  • Twoja witryna korzysta z usługi podwyższania interfejsu Maps JavaScript API i interfejsu Maps Static API, dlatego musisz dodać ograniczenia interfejsów API dla wszystkich następujących interfejsów API:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

Zalecane ograniczenie aplikacji

Witryny korzystające z Maps JavaScript API lub Static Web API

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

Używaj w witrynach korzystających z tych usług i interfejsów API JavaScript:

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

2 Zobacz też Ochrona aplikacji mobilnych za pomocą usługi internetowej lub statycznych interfejsów API internetowych.

Witryny korzystające z interfejsu Maps Embed API

Chociaż korzystanie z interfejsu Maps Embed API jest bezpłatne, należy nadal stosować ograniczenia dotyczące użycia każdego używanego klucza interfejsu API, aby zapobiec nadużyciom w innych usługach.

Sprawdzona metoda: utwórz oddzielny klucz interfejsu API na potrzeby interfejsu Maps Embed API i ogranicz ten klucz tylko do interfejsu Maps Embed API. To ograniczenie wystarczająco zabezpiecza klucz i zapobiega jego nieautoryzowanemu użyciu w jakiejkolwiek innej usłudze Google.

Jeśli nie możesz oddzielić wykorzystania interfejsu Maps Embed API od osobnego klucza interfejsu API, zabezpiecz swój 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 zastosuj ograniczenie aplikacji IP addresses.

Używaj 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 Androida i pakietu SDK Miejsc na iOS.

Aplikacje na Androida

W przypadku aplikacji na Androida zastosuj ograniczenie aplikacji Android apps. Używaj w przypadku aplikacji i serwerów korzystających z tych pakietów SDK:

Aby zapobiec przypadkowemu sprawdzaniu kluczy interfejsu API pod kątem kontroli wersji, użyj wtyczki do obsługi obiektów tajnych w Gradle do wstrzykiwania obiektów tajnych z pliku lokalnego zamiast zapisywania ich w pliku manifestu Androida.

Aplikacje na iOS

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