Klucze API są wymagane w przypadku aplikacji i projektów, które korzystają z interfejsów API Google Maps Platform i pakietów SDK. Podczas tworzenia kluczy bezpieczeństwa zapewnij ich maksymalną ochronę i minimalizację wysiłku.
Klucze interfejsu API można zabezpieczyć po ich utworzeniu i użyciu, jednak w zależności od sposobu ich użycia mogą obowiązywać inne ograniczenia. Aktualizowanie i zastępowanie kluczy w aplikacjach mobilnych (Android i iOS) jest najtrudniejsze, ponieważ klucze te nie zostaną zastąpione, dopóki wszyscy klienci nie zaktualizują swoich aplikacji. Aktualizowanie lub zastępowanie kluczy w aplikacjach JavaScript lub w usługach internetowych jest o wiele łatwiejsze, ale pamiętaj, że ich aktualizacja może wymagać starannego planowania i szybkiej pracy.
Procedury bezpieczeństwa poszczególnych usług Google Maps Platform, takich jak Maps JavaScript API, znajdziesz w sekcji Więcej informacji.
Ogranicz klucze interfejsu API
Gdy tworzysz klucze interfejsu API po raz pierwszy, ogranicz je za pomocą ograniczenia aplikacji i co najmniej jednego ograniczenia interfejsu API.
Ograniczenia aplikacji ograniczają używanie klucza interfejsu API do konkretnej platformy (Android lub iOS) lub określonych witryn (publiczny adres IP i witryna). Do każdego klucza interfejsu API można dodać tylko jeden typ ograniczenia aplikacji.
Ograniczenia dostępu do interfejsów API ograniczają możliwość korzystania z kluczy interfejsu API do jednego lub kilku interfejsów API Google Maps Platform lub pakietów SDK. Przetwarzane będą tylko żądania użycia interfejsów API lub pakietów SDK powiązanych z kluczem interfejsu API. W przypadku dowolnego klucza interfejsu API możesz określić dowolną liczbę ograniczeń interfejsu API.
Jeśli podczas tworzenia klucza interfejsu API nie zabezpieczono go, utwórz dodatkowe klucze interfejsu API i ogranicz je, a następnie zaktualizuj wszystkie aplikacje przy użyciu nowych kluczy. Jeden klucz na aplikację najlepiej nadaje się ze względów bezpieczeństwa, ale możesz używać kluczy z ograniczeniem w wielu aplikacjach, o ile rodzaje ograniczeń klucza nie spowodują problemów z zgodnością z aplikacjami, które mają ten sam klucz.
Jeśli ograniczasz klucze interfejsu API po ich utworzeniu, sprawdź użycie kluczy interfejsu API, aby mieć pewność, że ograniczenia nie zepsują żadnej z istniejących aplikacji.
Otwórz stronę wskaźników w Google Cloud Console.
Kliknij Pokaż filtry.
W sekcji Grupowanie według wybierz Dane logowania. Zobaczysz, które klucze interfejsu API są używane w poszczególnych usługach Google.
Kliknij Dane logowania.
Odznacz wszystkie dane logowania.
Wybierz klucz dla każdego wyświetlonego klucza i kliknij OK.
W sekcji Grouped by (Zgrupowane według) wybierz API. Zobaczysz, które ograniczenia interfejsu API zostaną zastosowane do tego klucza.
Wybranie opcji Metoda interfejsu API w narzędziu Grouped by (Zgrupowane według) może wyświetlić wskazówki na temat tego, który typ ograniczenia aplikacji jest odpowiedni dla klucza.
Ustawianie ograniczenia aplikacji dla klucza interfejsu API
- Otwórz stronę Dane logowania.
Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
W sekcji Ograniczenia klucza wybierz Ograniczenia aplikacji.
Wybierz jeden z typów ograniczeń i podaj wymagane informacje zgodnie z listą ograniczeń.
Typ ograniczenia Opis Strony odsyłające HTTP Podaj co najmniej jedną witrynę odsyłającą. Możesz używać symboli wieloznacznych do autoryzowania wszystkich subdomen (na przykład *.google.com
akceptuje wszystkie witryny kończące się na.google.com
). Określhttps://
ihttp://
w stanie, w jakim się znajdujesz. W przypadku innych typów protokołów adresów URL stron odsyłających musisz użyć specjalnej reprezentacji. Na przykład użyj formatufile:///path/to/
jako__file_url__//path/to/*
. Po włączeniu stron odsyłających sprawdź ich wykorzystanie, aby upewnić się, że spełnia Twoje oczekiwania. Obsługiwane są te protokoły odsyłające:about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
.Adresy IP Podaj 1 adres IPv4 lub IPv6 albo podsieć w notacji CIDR. Żądanie usługi internetowej sprawdza i porównuje zewnętrzny adres IP z ograniczeniem klucza interfejsu API,więc użyj publicznego adresu IP serwera. Aplikacje na Androida Dodaj w pliku AndroidManifest.xml
odcisk cyfrowy certyfikatu SHA-1 i nazwę pakietu na Androida.Aplikacje na iOS Pod typami wybierz odpowiedni identyfikator pakietu na iOS. Kliknij Zapisz.
Ustawianie ograniczenia dotyczącego klucza interfejsu API
Otwórz stronę danych logowania.
Wybierz klucz interfejsu API, do którego dostęp chcesz ograniczyć. Pojawi się strona Ogranicz klucz interfejsu API i zmień jego nazwę.
W sekcji Ograniczenia interfejsu API:
Kliknij Ogranicz klucz.
Kliknij menu Wybierz interfejsy API i za pomocą klucza interfejsu API wybierz z niego interfejsy API lub pakiety SDK, do których Twoja aplikacja ma mieć dostęp.
Jeśli na liście nie ma interfejsu API lub pakietu SDK, musisz go włączyć.
Kliknij Zapisz.
Po wykonaniu tego kroku ograniczenie stanie się częścią definicji klucza interfejsu API. Jeśli nie podasz odpowiednich szczegółów lub nie klikniesz „Zapisz”, klucz interfejsu API nie zostanie ograniczony. Więcej informacji o odpowiednim API lub pakiecie SDK znajdziesz w przewodniku po uzyskiwaniu klucza interfejsu API.
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 żadnego ruchu, prawdopodobnie klucz jest bezpieczny do usunięcia.
Aby usunąć klucz interfejsu API:
Otwórz stronę Dane logowania.
Wybierz klucz interfejsu API, który chcesz usunąć.
Kliknij przycisk Usuń u góry strony.
Gdy pojawi się okno Usuń dane logowania, kliknij Usuń.
Rozpowszechnienie klucza interfejsu API może potrwać kilka minut. Po rozpowszechnieniu ruch używający usuniętego klucza interfejsu API będzie odrzucany.
Inne sposoby zabezpieczania interfejsów API
Zachowaj ostrożność podczas ponownego generowania kluczy interfejsu API
Ponowne wygenerowanie klucza interfejsu API spowoduje utworzenie nowego klucza, który będzie miał wszystkie ograniczenia. Spowoduje to również uruchomienie licznika 24 godzin, który dezaktywuje stary klucz interfejsu API.
W tym czasie zarówno stary, jak i nowy klucz są akceptowane, co daje Ci szansę na migrację aplikacji do nowego klucza. Po zakończeniu tego okresu aplikacje wciąż korzystające ze starego klucza interfejsu API przestaną jednak działać.
Otwórz stronę kluczy interfejsów API.
Kliknij Przywróć poprzedni klucz.
W oknie Przywróć kliknij Przywróć klucz.
Gdy cofniesz, poprzednia „nowa” wersja stanie się poprzednią wersją i zostanie ustawiony dla niej nowy 24-godzinny minutnik dezaktywacji. Między tymi 2 wartościami klucza możesz je cofać, dopóki nie wygenerujesz go jeszcze raz.
Ta druga regeneracja zastępuje starą nieaktywną wartość klucza.
Monitorowanie wykorzystania interfejsu API
Aby sprawdzić użycie klucza interfejsu API:
Otwórz stronę Dane.
Kliknij Pokaż filtry.
W sekcji Grupowanie według wybierz Metoda interfejsu API.
W sekcji Kod odpowiedzi wybierz 2xx, aby wyświetlić udane żądania tego klucza.
W przypadku wykrycia nieautoryzowanego użycia:
Ogranicz klucze.
Jeśli ten sam klucz jest używany w wielu aplikacjach, przeprowadź migrację do wielu kluczy interfejsu API, najlepiej używając oddzielnych kluczy interfejsu API dla każdej aplikacji.
Jeśli nieautoryzowane użycie będzie kontynuowane, ponownie wygeneruj lub usuń odpowiednie klucze.
Używaj oddzielnych kluczy interfejsu API dla każdej aplikacji
Ogranicza to zakres każdego klucza. Jeśli klucz API zostanie przejęty, możesz go usunąć lub wygenerować ponownie bez konieczności aktualizowania pozostałych.
Migracja do wielu kluczy interfejsu API
Aby przeprowadzić migrację z jednego klucza interfejsu API do wielu aplikacji, na jeden unikalny klucz interfejsu API dla każdej aplikacji:
Określ, które aplikacje będą potrzebować nowych kluczy.
- Aplikacje internetowe najłatwiej zaktualizować, bo masz pełną kontrolę nad kodem. Zaplanuj zaktualizowanie wszystkich kluczy aplikacji internetowych.
- Aplikacje mobilne są znacznie trudniejsze, ponieważ klienci muszą zaktualizować aplikacje, aby móc korzystać z nowych kluczy.
Utwórz i ogranicz nowe klucze.
- Dodaj ograniczenie dotyczące aplikacji i co najmniej jedno ograniczenie interfejsu API.
Dodaj nowe klucze do różnych aplikacji.
- W przypadku aplikacji mobilnych aktualizacja może potrwać kilka miesięcy, zanim wszyscy użytkownicy zdecydują się na użycie nowego klucza interfejsu API.
Metody ochrony aplikacji w interfejsach API usług internetowych Map Google lub statycznych interfejsów API
Przechowuj klucze interfejsu API i tajne klucze podpisywania poza kodem źródłowym aplikacji. Jeśli umieścisz zmienne interfejsu API lub inne prywatne informacje w zmiennych środowiskowych albo dołączysz pliki przechowywane osobno, a następnie udostępnisz kod, klucze interfejsu API lub tajne klucze podpisywania nie będą uwzględniane w udostępnionych plikach.
Przechowuj klucze interfejsu API lub obiekty tajne podpisywania w plikach poza drzewem źródłowym aplikacji. Jeśli przechowujesz w plikach klucze interfejsu API lub inne prywatne informacje, przechowuj je poza drzewem źródłowym aplikacji, aby zablokować klucze w systemie kontroli kodu źródłowego. Jest to szczególnie ważne, jeśli korzystasz z publicznego systemu zarządzania kodami źródłowymi, takiego jak GitHub.
Metody ochrony aplikacji mobilnych usług internetowych lub statycznych interfejsów API usług internetowych
Używaj serwera proxy. Serwer proxy zapewnia stałe źródło interakcji z odpowiednim interfejsem Google Maps Platform API. Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Życie/świętowanie: korzystanie z serwerów proxy w bibliotekach klienta interfejsu Google Data API.
Zaciemnij lub zaszyfruj klucz interfejsu API lub tajny klucz logowania. Utrudnia to pobieranie kluczy interfejsu API i innych danych prywatnych bezpośrednio z aplikacji.
Więcej informacji
W tych tabelach podano odpowiednie ograniczenia klucza interfejsu API oraz sprawdzone metody bezpieczeństwa interfejsu API związane z każdym interfejsem API, pakietem SDK i usługami Google Maps Platform.
Witryny z JavaScriptem, interfejsem do umieszczania na stronie lub interfejsami statycznymi API
Aplikacje i serwery korzystające z usług internetowych
Aplikacje na Androida
Interfejs API/SDK/usługa | Ograniczenie aplikacji (1) | Ograniczenie interfejsu API (1) | Sprawdzone metody |
---|---|---|---|
Pakiet SDK Map na Androida | Ograniczenie Androida | Maps SDK na Androida | |
Pakiet SDK Miejsc na Androida | Ograniczenie Androida | Places API |
Aplikacje na iOS
Interfejs API/SDK/usługa | Ograniczenie aplikacji (1) | Ograniczenie interfejsu API (1) | Sprawdzone metody |
---|---|---|---|
Pakiet SDK Map na iOS | Ograniczenie iOS | Maps SDK na iOS | |
Pakiet SDK Miejsc na iOS | Ograniczenie iOS | Places API |
1 Możesz użyć nieograniczonego klucza interfejsu API z każdym interfejsem Google Maps Platform API lub pakietem SDK. Zdecydowanie zalecamy jednak ograniczenie kluczy kluczy, zwłaszcza w tych sytuacjach:
Środowisko testowe będzie widoczne lub widoczne publicznie.
Aplikacja korzystająca z klucza interfejsu API jest gotowa do użycia w środowisku produkcyjnym.
2 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu SDK Map na Androida i Map SDK na iOS.
3 W przypadku statycznego interfejsu API Map Google i interfejsu Street View Static API oprócz klucza interfejsu API musisz podać podpis cyfrowy, który będzie przekraczał dzienny limit 25 000 wczytań mapy.
Jeśli podpisujesz prośby, sprawdź, ile żądań bez podpisów chcesz zaakceptować dziennie, i odpowiednio dostosuj limity niepodpisanych żądań.
4 Ograniczenia IP mogą nie być stosowane w niektórych sytuacjach, np. w aplikacjach mobilnych i środowiskach chmurowych, które zależą od dynamicznych adresów IP. Jeśli w tych sytuacjach używasz interfejsu API usługi internetowej Map, zabezpiecz swoje aplikacje, używając serwera proxy lub zaciemniania kodu.
5 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu Places SDK na Androida i Places SDK na iOS.