Tworzenie użytecznych map, które zaspokajają potrzeby użytkowników Twojej strony, wymaga dużych nakładów czasu i energii. Istotna jest wydajna i bezpieczna integracja Twoich rozwiązań z Platformą Google Maps. Ten artykuł z serii o dobrych praktykach korzystania z Platformy pomoże Ci ochronić swoje konto Google Maps przed uzyskaniem do niego dostępu przez nieupoważnione osoby. Pierwszy temat tej serii to zabezpieczenie kluczy API.
Z wyjątkiem URL Maps, wszystkie produkty APIs i SDKs Platformy Google Maps wymagają, aby wywołania zawierały klucz API. Klucze API są generowane w konsoli Google Cloud i stanowią unikalne identyfikatory, które zapewniają autoryzację wywołań wysyłanych do Platformy i które odpowiadają za naliczanie kosztów na konto. Klucze API to główne źródło uwierzytelnienia Twojego dostępu do APIs i SDKs Platformy Google Maps.
Dlaczego powinienem zabezpieczyć swoje klucze API?
Zabezpieczenie kluczy API chroni konto na Platformie Google Maps. Kluczy API należy pilnować, tak samo jak kluczy do mieszkania lub samochodu, aby mogły z nich korzystać tylko upoważnione do tego osoby. Zalecamy zabezpieczenie kluczy API już w momencie, gdy generujesz je w konsoli Google Cloud. Jeśli będzie to potrzebne, możesz zmienić limity w każdej chwili.
Co to jest zabezpieczenie klucza API?
Zabezpieczenie klucza API to ustawienia, które ustanawiają limity do których aplikacji, APIs i SDKs może być użyty ten klucz. Przykładowo, możesz określić, że dany klucz API może być użyty jedynie do wywołań Map z aplikacji Android, która posiada Twoją nazwę lub kierować wywołania jedynie do Geocoding API z serwera, którego adres IP zgadza się z Twoim serwerem.
Zabezpieczenie klucza API może być traktowane jak hasło. Używanie tego samego hasła do wielu kont oznacza, że w przypadku, gdy dostanie się ono w niepożądane ręce, złodziej ma dostęp do wielu różnych platform. Zabezpieczenie klucza API umożliwia ustawienie limitów jego użycia, co minimalizuje narażenie na straty w przypadku przejęcia klucza przez nieuprawnioną osobę.
Jakie typy zabezpieczeń klucza są dostępne?
Istnieją 2 typy zabezpieczeń klucza API: zabezpieczenia API oraz zabezpieczenia aplikacji. Zabezpieczenia aplikacji ograniczają użycie klucza API do konkretnych stron internetowych, serwerów lub aplikacji. Platforma Google Maps obsługuje cztery typy zabezpieczeń aplikacji:
- HTTP referer (adresy stron, z których użytkownik został przekierowany za pomocą odnośnika) – ogranicza użycie do jednego lub więcej adresów URL i jest przeznaczone dla kluczy, które są wykorzystywane w aplikacjach lub na stronach internetowych. Ten rodzaj zabezpieczenia pozwala na ustawienie ograniczeń konkretnej domeny, strony lub zbioru stron na Twojej stronie internetowej.
- Adresy IP – ogranicza użycie do jednego lub wielu adresów IP i jest przeznaczone do zabezpieczania kluczy wykorzystywanych do wywołań po stronie serwera, takich jak wywołania z serwerów internetowych lub programów do harmonogramowania zadań (cron jobs).
- Aplikacje Android – ogranicza użycie do wywołań z aplikacji Android o konkretnej nazwie.
- Aplikacje iOS – ogranicza użycie do wywołań z aplikacji iOS o konkretnym identyfikatorze.
Zabezpieczenia API limitują użycie klucza API do jednego lub więcej APIs lub SDKs. Przykładowo, jeśli Twoja aplikacja mobilna korzysta wyłącznie z Maps SDK dla Androida oraz Places SDK dla Androida, możesz ograniczyć klucz do użytku wyłącznie tych dwóch SDK. Możesz ustawić klucz API do autoryzacji tylu APIs i SDKs ile chcesz, lecz zalecamy ograniczyć ich ilość do wyłącznie tych, które potrzebujesz.
Jakie są dobre praktyki ustawiania zabezpieczeń klucza API?
Oto kilka podstawowych wskazówek, które pomogą Ci ustalić, które zabezpieczenia kluczy API powinieneś zastosować i jak wdrożyć je w integracji z Platformą Google Maps:
- Używaj oddzielnego klucza API do każdego źródła wywołań i zastosuj zabezpieczenie na poziomie aplikacji do każdego z nich. Przykładowo, stwórz oddzielne klucze API dla swojej aplikacji Android i aplikacji internetowej i użyj wobec nich kolejno zabezpieczenia aplikacji Android i zabezpieczenia HTTP referer.
- Zastosuj zabezpieczenie aplikacji i jedno lub więcej zabezpieczenie API do wszystkich Twoich kluczy API. Ta praktyka zapewni maksimum bezpieczeństwa poprzez ograniczanie użycia klucza przez poszczególne aplikacje i z którymi APIs i SDKs może być on wykorzystany.
- Nigdy nie używaj tego samego klucza API dla aplikacji klienckich (aplikacja mobilna, aplikacja internetowa) i aplikacji serwerowej.
Jak mogę zabezpieczyć swoje klucze API?
Zabezpieczanie klucza API jest szybkie i proste. Możesz zrobić to w każdej chwili z zakładki „dane logowania” na stronie „Interfejsy API i usługi” w konsoli Google Cloud. Jednak jak wspomnieliśmy wcześniej, zalecamy zastosowanie zabezpieczeń do każdego klucza w momencie, gdy jest on generowany. Aby dowiedzieć się, jak zabezpieczyć klucz przeczytaj instrukcję Google lub obejrzyj poniższy filmik.
Zachęcamy do poznania innych dobrych praktyk w naszych kolejnych wpisach z tej serii. Masz więcej pytań? Skontaktuj się z nami!
Artykuł źródłowy: https://cloud.google.com/blog/products/maps-platform/google-maps-platform-best-practices-restricting-api-keys