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

W przypadku aplikacji i projektów, które korzystają z interfejsów API i pakietów SDK Google Maps Platform, musisz używać kluczy interfejsu API lub, jeśli jest obsługiwana, protokołu OAuth, aby zapobiec nieautoryzowanemu użyciu i naliczaniu opłat. Jeśli używasz kluczy API, dla maksymalnego bezpieczeństwa ogranicz ich tworzenie podczas ich tworzenia. Z tych sprawdzonych metod dowiesz się, jak je ograniczać.

Oprócz stosowania ograniczeń dotyczących klucza aplikacji i interfejsu API przestrzegaj też wszelkich zasad dotyczących bezpieczeństwa, które obowiązują w poszczególnych usługach Google Maps Platform. Możesz na przykład zobaczyć interfejs Maps JavaScript API w sekcji Zalecane ograniczenia aplikacji i interfejsów API.

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

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

Zalecane sprawdzone metody

Aby zwiększyć bezpieczeństwo i uniknąć opłat za nieautoryzowane użycie, stosuj te sprawdzone metody dotyczące bezpieczeństwa interfejsów API w przypadku wszystkich 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 internetowych interfejsów API

Ochrona aplikacji przy użyciu statycznych internetowych interfejsów API

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

Ochrona aplikacji przy użyciu usług internetowych

Dodatkowe zalecenia dotyczące aplikacji mobilnych na iOS i Androida

Ochrona aplikacji mobilnych przy użyciu usługi sieciowej 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ź użycie klucza interfejsu API Ten krok jest szczególnie ważny, jeśli dodajesz ograniczenia po tym, jak klucz jest używany.

  • Po zmianie klucza w razie potrzeby zaktualizuj wszystkie aplikacje o nowe klucze interfejsu API.

  • Jeśli nie występuje aktywne nadużywanie klucza interfejsu API, możesz przenieść swoje aplikacje do wielu nowych kluczy API we własnym tempie, pozostawiając pierwotny klucz API bez zmian do czasu, aż pojawi się ruch tylko jednego typu, do którego będzie można ograniczyć klucze interfejsu API przez zastosowanie ograniczenia aplikacji. Dalsze instrukcje znajdziesz w artykule Migracja na wiele kluczy interfejsu API.

    Monitoruj wykorzystanie w czasie i sprawdź, kiedy określone interfejsy API, typy platform i domeny zostały przeniesione ze starego klucza interfejsu API, zanim zdecydujesz się ograniczyć lub usunąć stary klucz. Więcej informacji znajdziesz w artykułach Raportowanie i monitorowanie oraz Wskaźniki.

  • Jeśli Twój klucz interfejsu API został przejęty, chcesz to zrobić szybciej, aby zabezpieczyć swój klucz interfejsu API i pozbyć się nadużyć. W aplikacjach na Androida i iOS klucze nie zostaną zastąpione, dopóki klienci nie zaktualizują aplikacji. Aktualizacja lub wymiana kluczy w JavaScript lub aplikacjach usług internetowych jest znacznie łatwiejsza, ale nadal może wymagać starannego planowania i szybkiej pracy.

    Więcej informacji znajdziesz w artykule Postępowanie z nieautoryzowanym użyciem klucza interfejsu API.

Ograniczanie kluczy interfejsu API

Sprawdzoną metodą jest ograniczenie kluczy API za pomocą ograniczeń aplikacji i co najmniej 1 ograniczenia interfejsu API. Sugerowane ograniczenia dla poszczególnych interfejsów API, pakietu SDK lub usługi JavaScript znajdziesz w sekcji Zalecane ograniczenia aplikacji i interfejsu API poniżej.

  • Ograniczenie aplikacji Możesz ograniczyć użycie klucza interfejsu API do określonych platform: aplikacji na Androida lub iOS, konkretnych witryn dla aplikacji po stronie klienta, określonych adresów IP lub podsieci CIDR w przypadku aplikacji po stronie serwera wystawiających wywołania interfejsu API REST usługi internetowej.

    Aby ograniczyć użycie klucza, dodaj co najmniej 1 ograniczenie aplikacji dotyczące typów, które chcesz autoryzować. Po upływie tego czasu dozwolone są tylko żądania pochodzące z tych źródeł.

  • Ograniczenia interfejsów API Możesz określić, które interfejsy API, pakiety SDK i usługi Google Maps Platform mogą być używane w Twoim kluczu interfejsu API. Ograniczenia interfejsów API umożliwiają wysyłanie żądań wyłącznie do wskazanych 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.

Ustaw ograniczenie aplikacji dla klucza interfejsu API

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

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

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

    Edytuj stronę klucza interfejsu API

  4. Wybierz jeden z typów ograniczeń i podaj wymagane informacje, postępując zgodnie z listą ograniczeń.

    Typ ograniczenia Opis
    Witryny Podaj co najmniej jedną witrynę odsyłającą.
    • Powszechnie obsługiwane schematy URI strony odsyłającej 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).
    • Do autoryzacji wszystkich subdomen możesz użyć symboli wieloznacznych. Na przykład https://*.google.com akceptuje wszystkie witryny z końcówką .google.com. Pamiętaj, że jeśli podasz adres www.domena.com, będzie to symbol wieloznaczny www.domena.com/* i autoryzuje każdą ścieżkę podrzędną 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ść obecnych przeglądarek domyślnie usuwa ścieżkę z żądań z innych domen.
    Adresy IP Podaj co najmniej 1 adres IPv4 lub IPv6 albo 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 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, przeczytaj informacje o samodzielnym podpisywaniu aplikacji lub zapoznaj się z instrukcjami dotyczącymi 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.

Ustaw ograniczenia interfejsu API dla klucza interfejsu API

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

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

  3. Na stronie Edytowanie 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 Twoja aplikacja ma mieć dostęp za pomocą klucza interfejsu API.

      Jeśli interfejsu API lub pakietu SDK nie ma na liście, musisz go włączyć. Szczegółowe informacje znajdziesz w artykule Włączanie co najmniej 1 interfejsu API lub pakietu SDK.

    Ograniczanie interfejsu API na stronie Edytuj klucz interfejsu API

  4. Kliknij Zapisz.

    Gdy wykonasz ten krok, ograniczenie stanie się częścią definicji klucza interfejsu API. Podaj odpowiednie informacje i wybierz Zapisz, aby zapisać ograniczenia klucza interfejsu API. Więcej informacji znajdziesz w przewodniku Uzyskiwanie klucza interfejsu API w dokumentacji używanego przez Ciebie interfejsu API lub pakietu SDK.

Zalecane ograniczenia interfejsów API znajdziesz w artykule Zalecane ograniczenia interfejsów API.

Sprawdzanie użycia klucza interfejsu API

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

Określ interfejsy API korzystające z klucza interfejsu API

Poniższe raporty wskaźników umożliwiają określenie, które interfejsy API używają kluczy API. Raporty pozwolą Ci:

  • Zobacz, jak są używane Twoje klucze interfejsu API
  • Wykrywanie nieoczekiwanego użycia
  • Sprawdzanie, czy nieużywany klucz można bezpiecznie usunąć. Informacje o usuwaniu klucza interfejsu API znajdziesz w artykule Usuwanie nieużywanych kluczy interfejsu API.

Podczas stosowania ograniczeń interfejsu API użyj tych raportów, aby utworzyć listę interfejsów API do autoryzacji lub zweryfikować automatycznie wygenerowane rekomendacje dotyczące ograniczeń klucza interfejsu API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule o stosowaniu zalecanych ograniczeń. Więcej informacji o korzystaniu z narzędzia Metrics Explorer znajdziesz w artykule na temat tworzenia wykresów w narzędziu Metrics Explorer.

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

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

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

    • W przypadku kluczy interfejsu API korzystających z dowolnego interfejsu API z wyjątkiem interfejsu 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. Wybierz DODAJ FILTR.

    2. Wybierz etykietę credential_id.

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

    4. Zanotuj, w których interfejsach API jest używany ten klucz interfejsu API, i potwierdź, że jego użycie jest prawidłowe.

    5. Po zakończeniu kliknij Usuń filtr na końcu aktywnego wiersza filtra, aby usunąć dodatkowy filtr.

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

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

  7. Jeśli zauważysz nieautoryzowane użycie klucza interfejsu API, zapoznaj się z sekcją Postępowanie z nieautoryzowanym użyciem klucza interfejsu API.

Wybierz odpowiedni typ ograniczenia aplikacji za pomocą narzędzia Metrics Explorer

Gdy już sprawdzisz i podejmiesz niezbędne działania, aby mieć pewność, że klucz interfejsu API jest używany tylko w usługach Google Maps Platform, z których korzysta, sprawdź też, czy klucz interfejsu API ma prawidłowe ograniczenia aplikacji.

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

Jeśli Twój klucz interfejsu API nie ma rekomendacji dotyczących ograniczeń, na podstawie zgłoszonego platform_type za pomocą Metrics Explorer określ typ ograniczenia aplikacji, które chcesz zastosować:

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

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

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

  4. Sprawdź każdy klucz interfejsu API:

    1. Wybierz DODAJ FILTR.

    2. Wybierz etykietę credential_id.

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

    4. Po zakończeniu kliknij Usuń filtr na końcu aktywnego wiersza filtra, aby usunąć dodatkowy filtr.

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

  6. Po określeniu typu platformy dla kluczy interfejsu API zastosuj ograniczenie aplikacji do tego zasobu (platform_type):

    PLATFORM_TYPE_JS
    Zastosuj do klucza ograniczenia dostępu do stron.
    PLATFORM_TYPE_ANDROID
    Zastosuj do klucza ograniczenia aplikacji na Androida.
    PLATFORM_TYPE_IOS
    Zastosuj do klucza ograniczenia aplikacji na iOS.
    PLATFORM_TYPE_WEBSERVICE
    Możliwe, że aby zastosować odpowiednie ograniczenia, trzeba będzie zastosować ograniczenia adresów IP klucza. Więcej informacji o opcjach używania interfejsu Maps Static API i Street View Static API znajdziesz w artykule Ochrona aplikacji za pomocą statycznych internetowych interfejsów API. Dalsze instrukcje dotyczące interfejsu Maps Embed API znajdziesz w artykule Witryny korzystające z interfejsu Maps Embed API.
    Mój klucz interfejsu API korzysta z wielu typów platform
    Nie można prawidłowo zabezpieczyć ruchu za pomocą jednego klucza interfejsu API. Musisz przejść na kilka kluczy interfejsu API. Więcej informacji znajdziesz w artykule na temat migracji na wiele kluczy API.

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

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

Mimo że 1 klucz interfejsu API na aplikację to idealne rozwiązanie ze względów bezpieczeństwa, możesz używać kluczy z ograniczeniami w wielu aplikacjach, pod warunkiem że używają tego samego rodzaju ograniczeń aplikacji.

Zastosuj zalecane ograniczenia klucza interfejsu API

W przypadku niektórych właścicieli projektów i edytujących Google Cloud Console sugeruje konkretne ograniczenia kluczy interfejsu API dla nieobjętych ograniczeniami kluczy interfejsu API na podstawie sposobu korzystania z Google Maps Platform i ich aktywności.

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

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

  • Używasz też klucza interfejsu API w usługach innych niż Google Maps Platform. Jeśli zauważysz użycie w innych usługach, nie stosuj rekomendacji, chyba że wcześniej wykonasz te czynności:

    1. Sprawdź, czy wykorzystanie interfejsu API widoczne w narzędziu Metrics Console w Google Cloud Console jest wiarygodne.

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

    3. Ręcznie dodaj wszelkie brakujące ograniczenia aplikacji dla usług dodanych do listy interfejsów API. Jeśli drugi dodany wymaga 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.

  • Klucza interfejsu API używasz w aplikacji lub witrynie o małym natężeniu ruchu, która nie była używana w ciągu ostatnich 60 dni.

  • Nowy klucz został utworzony niedawno lub niedawno został wdrożony w nowej aplikacji. W takim przypadku poczekaj jeszcze kilka dni, aby umożliwić aktualizację rekomendacji.

  • Używasz klucza interfejsu API w wielu aplikacjach, które wymagałyby pokrywających się typów ograniczeń aplikacji, lub używasz tego samego klucza interfejsu API w zbyt wielu różnych aplikacjach lub witrynach. W obu przypadkach najlepiej jest przejść na wiele kluczy. Więcej informacji znajdziesz w artykule na temat migracji do wielu kluczy interfejsu API.

Przyczyny, dla których możesz widzieć rekomendacje, które nie są widoczne na wykresach

  • Twoja aplikacja lub witryna wygenerowała tylko bardzo krótkie przerwy w 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 sekcji Przełączanie pełnych legend na wykresie.

  • Ruch pochodzi z interfejsu Maps Embed API. Instrukcje znajdziesz w artykule Określanie interfejsów API, które korzystają z klucza interfejsu API.

  • Ruch z aplikacji lub witryny wykracza poza zakres dat dostępny w eksploratorze wskaźników konsoli Google Cloud.

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

  2. Wybierz opcję Zastosuj zalecane ograniczenia, jeśli jest dostępna.

    Zastosuj zalecane ograniczenia

    Uwaga: jeśli nie widzisz żadnych zalecanych ograniczeń, zapoznaj się z artykułem Ustawianie ograniczeń interfejsu API dla klucza interfejsu API, aby ustawić 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 usługi inne niż Google Maps Platform, wstrzymaj je, aby ręcznie przejrzeć powyższe zalecenia. Instrukcje rozwiązywania problemów znajdziesz na początku sekcji Stosowanie zalecanych ograniczeń kluczy interfejsu API.

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

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

    • Jeśli zauważysz, że w Twojej rekomendacji wyraźnie brakuje aplikacji, witryny lub interfejsu API, dodaj ją ręcznie lub poczekaj kilka dni, aby umożliwić aktualizację rekomendacji.

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

  5. Kliknij Zastosuj.

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

Jeśli po zastosowaniu ograniczenia zauważysz, że aplikacja lub witryna została 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, zapoznaj się z artykułem Określanie interfejsów API, które korzystają z 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. Tymczasowo usuń je na czas badania problemu. Aby sprawdzić wykorzystanie klucza interfejsu API z upływem czasu, wykonaj czynności opisane w artykule Sprawdzanie wykorzystania klucza interfejsu API.
  3. W razie potrzeby skontaktuj się z zespołem pomocy.

Usuń nieużywane klucze interfejsu API

Zanim usuniesz klucz interfejsu API, upewnij się, że nie jest on używany w środowisku produkcyjnym. Jeśli nie ma udanego 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. 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 uruchamia również 24-godzinny licznik, po którym stary klucz interfejsu API jest usuwany.

W tym czasie akceptowany jest zarówno stary, jak i nowy klucz, dzięki czemu możesz przenieść aplikacje do nowego klucza. Jednak po upływie tego czasu wszystkie aplikacje, które nadal używają starego klucza interfejsu API, przestaną działać.

Zanim ponownie wygenerujesz klucz interfejsu API:

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

  • Jeśli ograniczenie klucza interfejsu API jest niemożliwe z powodu konfliktów typów ograniczeń aplikacji, przeprowadź migrację do wielu nowych (z ograniczeniami) kluczy zgodnie z opisem w sekcji Migracja do wielu kluczy interfejsu API. Migracja pozwala kontrolować migrację i wdrażać oś czasu na 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 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. Wybierz Zastąp klucz.

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

Aby wycofać ponownie wygenerowany klucz

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

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

  3. Wybierz Przywróć poprzedni klucz.

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

Po przywróceniu poprzedniej wersji klucza poprzednia „nowa” wersja staje się poprzednią wersją i zostaje dla niej ustawiony nowy 24-godzinny licznik dezaktywacji. Możesz przełączać się między tymi 2 wartościami klucza do czasu ponownego wygenerowania klucza.

Ponowne wygenerowanie klucza spowoduje zastąpienie starej, nieaktywnej wartości klucza.

Migracja na wiele kluczy interfejsu API

Aby przejść z jednego klucza interfejsu API w wielu aplikacjach na jeden unikalny klucz interfejsu API dla każdej aplikacji:

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

    • Aplikacje internetowe są najłatwiejsze, ponieważ masz kontrolę nad całym kodem. Zaplanuj zaktualizowanie wszystkich kluczy aplikacji internetowych.
    • Aplikacje mobilne są znacznie trudniejsze, ponieważ klienci muszą zaktualizować aplikacje, zanim będą mogli korzystać z nowych kluczy.
  2. Utwórz i ogranicz nowe klucze: dodaj zarówno ograniczenie aplikacji, jak i co najmniej 1 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 przy użyciu statycznych internetowych interfejsów API

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

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

Używanie podpisu cyfrowego

Sprawdzoną metodą jest używanie zawsze 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 o podpisach cyfrowych znajdziesz w przewodniku po podpisach cyfrowych.

Chroń swój tajny klucz podpisywania

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

  • Podpisz żądania po stronie serwera, nie po stronie klienta. Jeśli robisz podpisywanie po stronie klienta w JavaScripcie, udostępniasz go każdemu, kto odwiedza Twoją witrynę. Dlatego w przypadku zdjęć generowanych dynamicznie podczas wyświetlania strony internetowej zawsze generuj podpisane adresy URL żądań do interfejsu Maps static API i Street View static API ze Street View. W przypadku statycznych treści internetowych możesz użyć widżetu Zarejestruj adres URL teraz w Cloud Console na stronie Dane logowania w Google Maps Platform.

  • Przechowuj obiekty tajne 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 informacje prywatne albo dodasz pliki przechowywane oddzielnie, a potem udostępnisz swój kod, klucze tajne podpisywania nie zostaną uwzględnione w udostępnianych plikach. Jeśli w plikach przechowujesz tajne klucze podpisywania lub inne informacje prywatne, przechowuj je poza drzewem źródłowym aplikacji, aby tajne klucze podpisywania nie trafiały do systemu 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.

Chroń klucz interfejsu API w aplikacjach przy użyciu usług internetowych

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

Chroń klucz interfejsu API i tajny klucz podpisywania w aplikacjach mobilnych przy użyciu usług internetowych lub statycznych interfejsów API

Aby chronić aplikacje mobilne, użyj 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.

  • Używaj bezpiecznego serwera proxy. Serwer proxy zapewnia solidne źródło interakcji z odpowiednim interfejsem Google Maps Platform API. Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Living Vicariously: używanie serwerów proxy z bibliotekami klienta interfejsu Google Data API.

    • Twórz żądania do 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.

Obsługa nieautoryzowanego użycia klucza interfejsu API

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

  1. Ogranicz klucze: jeśli używasz tego samego klucza w wielu aplikacjach, przeprowadź migrację do większej liczby kluczy interfejsu API i użyj oddzielnych kluczy interfejsu API w przypadku każdej aplikacji. Więcej informacji znajdziesz w tych artykułach:

  2. Tylko ponownie wygeneruj klucze, jeśli 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 wsparcia, skontaktuj się z zespołem pomocy.

Zalecane ograniczenia aplikacji i interfejsów API

W poniższych sekcjach znajdziesz sugestie dotyczące odpowiednich ograniczeń aplikacji i interfejsów API dla poszczególnych interfejsów API, pakietu SDK i usług Google Maps Platform.

Zalecane ograniczenia interfejsów API

Te wskazówki dotyczące ograniczeń interfejsów API mają zastosowanie do całej platformy Google Maps Platform:

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

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

    • Jeśli aplikacja używa Maps JavaScript API, zawsze autoryzuj ją w kluczu.

    • Jeśli używasz też którejkolwiek z poniższych usług 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 Places SDK na Androida, dlatego musisz dołączyć pakiet Maps SDK for Android i Places API jako ograniczenia interfejsu API.

  • Twoja witryna używa usługi Maps JavaScript API Elevation Service i Maps static API, więc musisz dodać ograniczenia interfejsów API dla wszystkich tych interfejsów:

    • 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 ze statycznych internetowych interfejsów API zastosuj ograniczenie aplikacji Websites.

Używaj w przypadku witryn 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 Map SDK na iOS.

2 Przeczytaj też artykuł Ochrona aplikacji mobilnych przy użyciu usługi sieciowej lub statycznych interfejsów API.

Witryny z interfejsem Maps Embed API

Chociaż korzystanie z interfejsu Maps Embed API jest bezpłatne, nadal zalecamy ograniczenie używanego klucza interfejsu API, aby zapobiec nadużyciom w innych usługach.

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

Jeśli nie możesz rozdzielić korzystania z interfejsu API Map Google do osobnego klucza API, zabezpiecz swój klucz, stosując ograniczenie aplikacji Websites.

Aplikacje i serwery korzystające z usług internetowych

W przypadku aplikacji i serwerów korzystających z usług internetowych skorzystaj z ograniczenia dotyczącego 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 oraz pakietu SDK Miejsc na iOS.

Aplikacje na Androida

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

Poza tym zapobiega przypadkowemu sprawdzaniu kluczy interfejsu API w celu kontroli wersji przez użycie wtyczki Gradle obiektów tajnych do wstrzykiwania obiektów tajnych z pliku lokalnego, zamiast przechowywania ich w pliku manifestu Androida.

Aplikacje na iOS

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