Sprawdzone metody zabezpieczania interfejsu API

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 protokołu OAuth (jeśli są obsługiwane), aby zapobiegać nieautoryzowanemu użyciu i obciążeniom. Jeśli używasz kluczy interfejsu API, ze względów bezpieczeństwa ogranicz używanie kluczy interfejsu API podczas ich tworzenia. Z tych sprawdzonych metod dowiesz się, jak wprowadzić ograniczenia.

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

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

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 dla 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 witryn

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ług internetowych lub statycznych interfejsów API witryn

Jeśli ograniczasz używany klucz interfejsu API lub go ponownie generujesz

  • 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 swoje aplikacje przy użyciu nowych kluczy interfejsu API.

  • Jeśli nie ma aktywnego nadużywania klucza interfejsu API, możesz we własnym tempie przenieść aplikacje do wielu nowych kluczy interfejsu API, pozostawiając pierwotny klucz interfejsu API bez zmian, dopóki nie zobaczysz tylko jednego typu ruchu, do którego możesz potem 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, możesz monitorować wykorzystanie w czasie i sprawdzać, kiedy 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 Twój klucz interfejsu API został przejęty, zabezpiecz go szybciej, aby zapobiec nadużyciom. W aplikacjach na Androida i iOS klucze nie są wymieniane, dopóki klienci nie zaktualizują aplikacji. Aktualizowanie i zastępowanie kluczy w aplikacjach JavaScript lub aplikacjach usług internetowych jest znacznie prostsze, ale wymaga starannego planowania i szybkiej pracy.

    Więcej informacji znajdziesz w artykule Postępowanie w przypadku nieautoryzowanego użycia klucza interfejsu API.

Ograniczanie kluczy interfejsu API

Sprawdzoną metodą jest zawsze ograniczanie kluczy interfejsu API za pomocą ograniczeń aplikacji oraz co najmniej 1 ograniczenia interfejsu API. Sugerowane ograniczenia przez interfejs API, pakiet SDK lub usługę JavaScript znajdziesz w sekcji Zalecane ograniczenia dotyczące aplikacji i interfejsów API poniżej.

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

    Aby ograniczyć użycie klucza, możesz dodać co najmniej 1 ograniczenie aplikacji dla typów, które chcesz autoryzować. Gdy to zrobisz, dozwolone są 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 w przypadku Twojego klucza interfejsu API. Ograniczenia interfejsów API umożliwiają wyłącznie wysyłanie żądań 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.

Ustaw ograniczenie 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 Edytowanie 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 zgodnie z listą.

    Typ ograniczenia Opis
    Witryny Określ co najmniej jedną witrynę odsyłającą.
    • Powszechnie obsługiwane schematy identyfikatora 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).
    • Aby autoryzować wszystkie subdomeny, 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 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 autoryzowania 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ą odpowiadać adresowi źródłowemu obserwowanemu przez serwery Google Maps Platform. Jeśli korzystasz z 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, informacje o pobieraniu odcisku cyfrowego certyfikatu podpisującego znajdziesz w sekcji Współpraca z dostawcami interfejsów API. Jeśli zarządzasz własnym kluczem podpisywania, przeczytaj sekcję Samodzielne podpisywanie 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.

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 Edytuj klucz 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ć. Szczegółowe informacje znajdziesz w artykule Włączanie co najmniej jednego interfejsu API lub pakietu SDK.

    Ograniczanie interfejsu API na stronie Edytuj klucz interfejsu API

  4. Kliknij Zapisz.

    Po tym kroku to 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 konkretnego interfejsu API lub pakietu SDK, który Cię interesuje.

Zalecane ograniczenia dotyczące 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 chcesz zobaczyć, 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 jest używany klucz interfejsu API. Jeśli zauważysz użycie usług wykraczających poza usługi Google Maps Platform, sprawdź, czy trzeba dodać więcej ograniczeń, aby uniknąć niechcianego korzystania. Możesz użyć eksploratora wskaźników konsoli Google Maps Platform w konsoli 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 korzystających z klucza interfejsu API

Dzięki raportom wskaźników możesz określić, które interfejsy API używają Twoich kluczy interfejsu API. Za pomocą tych raportów możesz:

  • Zobacz, jak używane są klucze interfejsu API
  • Nieoczekiwane użycie Spota
  • Sprawdź, czy nieużywany klucz można bezpiecznie usunąć. Informacje o usuwaniu klucza interfejsu API znajdziesz w sekcji Usuwanie nieużywanych kluczy interfejsu API.

Podczas stosowania ograniczeń interfejsu API użyj tych raportów do utworzenia listy interfejsów API do autoryzowania lub do zweryfikowania automatycznie wygenerowanych rekomendacji ograniczeń klucza interfejsu API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule Stosowanie zalecanych ograniczeń. Więcej informacji o korzystaniu z eksploratora wskaźników znajdziesz w artykule Tworzenie wykresów w narzędziu Metrics Explorer.

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

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

  3. Otwórz stronę Metrics Explorer odpowiednią dla Twojego 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 stronę 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, dla których interfejsów API jest używany ten klucz interfejsu API, i potwierdź, że użycie jest oczekiwane.

    5. Po zakończeniu 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 tych, które są używane.

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

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

Po zweryfikowaniu klucza interfejsu API i podjęciu odpowiednich działań, aby mieć pewność, że będzie on używany tylko w usługach Google Maps Platform, z których korzysta, sprawdź, czy klucz interfejsu API ma odpowiednie 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 klucz interfejsu API nie zawiera rekomendacji dotyczących ograniczeń, w eksploratorze wskaźników ustal typ ograniczenia aplikacji, które chcesz zastosować, na podstawie raportu platform_type:

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

  2. Zaloguj się i wybierz projekt dla 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. Po zakończeniu 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 tego platform_type:

    PLATFORM_TYPE_JS
    Zastosuj do klucza ograniczenia witryny.
    PLATFORM_TYPE_ANDROID
    Zastosuj do klucza ograniczenia aplikacji na Androida.
    PLATFORM_TYPE_IOS
    Zastosuj do klucza ograniczenia aplikacji na iOS.
    PLATFORM_TYPE_WEBSERVICE
    Aby odpowiednio ograniczyć klucz, być może musisz stosować do niego ograniczenia dotyczące adresów IP. Dalsze opcje związane z interfejsami Maps Static API i Street View Static API znajdziesz w artykule Ochrona aplikacji za pomocą statycznych interfejsów API internetu. 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 da się odpowiednio zabezpieczyć ruchu za pomocą jednego klucza interfejsu API. Musisz użyć wielu kluczy interfejsu API. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

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

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

Jeden klucz interfejsu API na aplikację jest idealny ze względów bezpieczeństwa, ale kluczy z ograniczeniami możesz używać w wielu aplikacjach, o ile mają one ten sam rodzaj ograniczeń.

Zastosuj zalecane ograniczenia klucza interfejsu API

W przypadku niektórych właścicieli i edytujących projektów konsola Google Cloud Console sugeruje konkretne ograniczenia kluczy interfejsu API w przypadku kluczy interfejsu API bez ograniczeń na podstawie ich wykorzystania i aktywności w Google Maps Platform.

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

Powody, dla których możesz nie widzieć rekomendacji lub która 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 przed najpierw wykonaniem tych czynności:

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

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

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

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

  • Klucza interfejsu API używasz w aplikacji lub witrynie o niewielkiej objętości, które nie były używane w ciągu ostatnich 60 dni.

  • Nowo utworzony klucz lub bardzo niedawno wdrożony w nowej aplikacji. W takim przypadku odczekaj jeszcze kilka dni, aby umożliwić zaktualizowanie rekomendacji.

  • Używasz klucza interfejsu API w wielu aplikacjach, które wymagają sprzecznych ograniczeń aplikacji, lub używasz tego samego klucza interfejsu API w zbyt wielu różnych aplikacjach lub witrynach. W obu przypadkach najlepiej przeprowadzić migrację na większą liczbę kluczy. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

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

  • Twoja aplikacja lub witryna generowała tylko bardzo krótkie okresy ruchu. W takim przypadku przełącz się z widoku WYKRES, aby wyświetlić tabelę lub OBIE, ponieważ wykorzystanie jest nadal widoczne w legendzie. Więcej informacji znajdziesz w sekcji Przełączanie pełnych legend wykresu.

  • Ruch pochodzi z interfejsu Maps Embed API. Instrukcje znajdziesz w artykule Określanie, które interfejsy API używają Twojego klucza interfejsu API.

  • Ruch z aplikacji lub witryny wykracza poza zakres dat dostępny w eksploratorze wskaźników 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 dowiedzieć się, w których usługach używany jest klucz interfejsu API. Jeśli widzisz inne usługi niż Google Maps Platform, wstrzymaj, aby ręcznie sprawdzić powyższe rekomendacje. Zapoznaj się z instrukcjami rozwiązywania problemów podanymi na początku sekcji Stosowanie zalecanych ograniczeń klucza interfejsu API.

  4. Dokładnie sprawdź, czy wstępnie wypełnione ograniczenia odpowiadają witrynom i aplikacjom, w których zamierzasz używać Twojego klucza interfejsu API.

    Sprawdzona metoda: udokumentuj i usuń wszystkie ograniczenia 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 ponownie dodać wymagane aplikacje lub interfejsy API.

    • Jeśli stwierdzisz, że w rekomendacji ewidentnie brakuje aplikacji, witryny lub interfejsu API, dodaj te rekomendacje ręcznie lub poczekaj kilka dni, aby pozwolić na aktualizację rekomendacji.

    • Jeśli potrzebujesz dodatkowej pomocy, 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 jest odrzucana, poszukaj ograniczenia do aplikacji, które musisz dodać w komunikacie o błędzie odpowiedzi interfejsu API.

Zapoznaj się z tymi informacjami o pakietach SDK po stronie klienta:

Aby sprawdzić wymagane ograniczenia interfejsu API, zapoznaj się z sekcją Określanie, które interfejsy API używają Twojego klucza interfejsu API.

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

  1. Zapisz aktualne ograniczenia, by skorzystać z nich w przyszłości.
  2. Usuń je tymczasowo na czas badania problemu. Wykorzystanie z czasem możesz sprawdzić, wykonując czynności opisane w artykule 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 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 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ń.

    Rozpowszechnienie 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 ze wszystkimi ograniczeniami 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, co umożliwia migrację aplikacji do nowego. Jednak po upływie tego czasu wszystkie 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 artykule Ograniczanie kluczy interfejsu API.

  • Jeśli ograniczenie klucza interfejsu API nie jest możliwe z powodu sprzecznych typów ograniczeń aplikacji, przejdź na wiele nowych kluczy (z ograniczeniami) zgodnie z opisem w sekcji Migracja do wielu kluczy interfejsu API. Migracja pozwala kontrolować migrację i wdrażać harmonogram nowych kluczy 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 jeszcze raz.

  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 limitów czasu dla operacji przywracania.

Aby wycofać wygenerowany klucz

  1. Otwórz stronę Dane logowania do 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 wycofaniu poprzednia „nowa” wersja klucza staje się poprzednią i ustawiono dla niej nowy 24-godzinny licznik dezaktywacji. Między tymi 2 wartościami klucza można się przełączać do momentu ponownego wygenerowania klucza.

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

Migracja do wielu kluczy interfejsu API

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

  1. Identyfikowanie aplikacji, które potrzebują nowych kluczy:

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

  3. Dodawanie nowych kluczy 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 stron internetowych, takie jak Maps Static API i Street View Static API, są podobne do wywołań interfejsu API usług internetowych.

Oba te wywołania wykonuje się za pomocą prostego interfejsu API HTTPS REST, a adres URL żądania API zwykle generuje się na serwerze. Jednak zamiast zwracać odpowiedź JSON, statyczne interfejsy internetowe API generują obraz, który możesz umieścić w wygenerowanym kodzie HTML. Co więcej, usługę Google Maps Platform wywołuje zwykle klient użytkownika, a nie serwer.

Użyj podpisu cyfrowego

Sprawdzoną metodą jest używanie zawsze podpisu cyfrowego 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 stron internetowych, nie umieszczaj kluczy tajnych podpisywania 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 tajnych kluczy podpisywania:

  • Podpisuj żądania po stronie serwera, a nie klienta. Jeśli przeprowadzisz podpisywanie po stronie klienta w języku JavaScript, będzie on widoczny dla wszystkich odwiedzających Twoją witrynę. Dlatego w przypadku obrazów generowanych dynamicznie należy zawsze generować podpisane adresy URL w interfejsie MapsStatic API i Street View Static API żądania URL po stronie serwera podczas wyświetlania strony internetowej. W przypadku statycznych treści internetowych możesz użyć widżetu Podpisz URL teraz na stronie Dane logowania w Google Maps Platform w Cloud Console.

  • 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 informacje prywatne albo dołączysz pliki przechowywane oddzielnie, a potem udostępnisz swój kod, tajne klucze podpisywania nie zostaną udostępnione w udostępnianych plikach. Jeśli przechowujesz obiekty tajne podpisywania lub inne informacje prywatne w plikach, przechowuj te pliki poza drzewem źródłowym aplikacji, aby nie dopuścić do niedostępności tajnych kluczy podpisywania 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, np. GitHuba.

Ochrona 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 albo dołączysz pliki przechowywane oddzielnie, a następnie 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.

Chroń swój klucz interfejsu API i tajny klucz 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 bezpiecznego serwera proxy:

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

  • Używaj bezpiecznego serwera proxy. Serwer proxy jest doskonałym źródłem interakcji z odpowiednim interfejsem API Google Maps Platform. Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Living Vicariously: Korzystanie z serwerów proxy przy użyciu bibliotek klienta interfejsu Google Data API (w języku angielskim).

    • 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.

Zapobiegaj nieautoryzowanemu użyciu klucza interfejsu 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 wielu aplikacjach, przeprowadź migrację do wielu 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 ponownie tylko wtedy, gdy nie możesz ich ograniczyć. Zanim przejdziesz dalej, przeczytaj sekcję Zachowaj ostrożność podczas ponownego generowania kluczy interfejsu API.

  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 znajdziesz sugestie odpowiednich ograniczeń dotyczących aplikacji i interfejsów API dla każdego interfejsu API, pakietu SDK i usługi Google Maps Platform.

Zalecane ograniczenia interfejsu API

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

  • Ogranicz swój klucz interfejsu API tylko do interfejsów API, w których go używasz, z następującymi wyjątkami:

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

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

    • Jeśli korzystasz też z którejś 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 Maps SDK na Androida i Places SDK na Androida, więc jako ograniczenia interfejsu API dołączasz pakiet Maps SDK na Androida i Place API.

  • Twoja witryna korzysta z usługi Maps JavaScript API Elevation Service i interfejsu Maps Static API, dlatego musisz dodać ograniczenia interfejsów API dla wszystkich tych interfejsów API:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

Zalecane ograniczenie aplikacji

Witryny z interfejsem 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 SDK Map Google na Androida i pakietu Maps SDK na iOS.

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

Strony internetowe z interfejsem Maps Embed API

Korzystanie z interfejsu Maps Embed API jest bezpłatne, ale nadal należy ograniczać wszelkie używane klucze interfejsu API, aby zapobiec nadużyciom w innych usługach.

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

Jeśli nie możesz oddzielić korzystania z interfejsu Maps Embed API do 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 Places SDK na iOS.

Aplikacje na Androida

W przypadku aplikacji na Androida użyj ograniczenia 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 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: