1. Wprowadzenie
Looker (podstawowa usługa Google Cloud) oferuje uproszczone i uproszczone udostępnianie instancji Lookera, konfigurację oraz zarządzanie nimi z poziomu konsoli Google Cloud. Niektóre zadania administrowania instancjami mogą być też wykonywane w konsoli.
Dla instancji Lookera (podstawowej usługi Google Cloud) dostępne są 3 konfiguracje sieci:
- Publiczne: połączenie sieciowe używa zewnętrznego adresu IP dostępnego w internecie.
- Prywatne: połączenie sieciowe używa wewnętrznego adresu IP prywatnego środowiska wirtualnego w chmurze (VPC) hostowanego przez Google.
- Publiczne i prywatne: połączenie sieciowe korzysta z publicznego adresu IP oraz prywatnego adresu IP, z którego ruch przychodzący jest kierowany przez publiczny adres IP, a wychodzący – przez prywatny adres IP.
W tym samouczku wdrożysz kompleksową sieć prywatną , która będzie obsługiwać połączenia Lookera z lokalną siecią VPN przez sieć VPN o wysokiej dostępności, którą będzie można replikować w celu spełnienia wymagań dotyczących połączeń lokalnych i w wielu chmurach.
Looker (podstawowa usługa Google Cloud) obsługuje prywatne adresy IP dla instancji spełniających te kryteria:
- Wersją instancji muszą być Enterprise lub Embed.
Co utworzysz
W tym samouczku utworzysz kompleksowe prywatne wdrożenie sieci Lookera w samodzielnym środowisku VPC, które ma połączenie hybrydowe z wielochmurami i środowiskami lokalnymi.
Skonfigurujesz sieć VPC o nazwie on-prem-vpc
, która będzie reprezentować środowisko lokalne. W Twoim wdrożeniu nie byłoby lokalnego środowiska VPC – użyto sieci hybrydowej do Twojego lokalnego centrum danych lub dostawcy usług w chmurze.
Poniżej znajdziesz główne etapy samouczka
- Tworzenie samodzielnego środowiska VPC w us-central1
- Przydziel podsieć IP do prywatnego dostępu do usług
- Wdrażanie instancji Lookera w samodzielnym środowisku VPC
- Tworzenie sieci lokalnych VPC i hybrydowych
- Rozgłaszaj i zweryfikuj zakres adresów IP Lookera przez BGP
- Integrowanie i weryfikowanie komunikacji danych Lookera i Postgresql
Figure1
Czego się nauczysz
- Jak utworzyć środowisko VPC i powiązane sieci hybrydowe
- Jak wdrożyć Lookera w samodzielnym środowisku VPC
- Jak utworzyć lokalny serwer VPC i powiązane sieci hybrydowe
- Połącz lokalny serwer VPC z analytics-vps przez sieć VPN o wysokiej dostępności
- Jak reklamować podsieci Lookera zamiast sieci hybrydowych
- Jak monitorować infrastrukturę sieci hybrydowych
- Jak zintegrować bazę danych Postgresql z Lookerem Cloud Core
Czego potrzebujesz
- Projekt Google Cloud
Uprawnienia
2. Zanim zaczniesz
Aktualizowanie projektu na potrzeby samouczka
W tym samouczku używamy zmiennych $variables, które ułatwiają implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Konfiguracja VPC
Tworzenie pliku analytics-vpc
W Cloud Shell wykonaj te czynności:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
Tworzenie lokalnego środowiska VPC
W Cloud Shell wykonaj te czynności:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Tworzenie podsieci bazy danych Postgresql
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Konfiguracja Cloud Router i NAT
W samouczku do instalacji pakietu oprogramowania używana jest usługa Cloud NAT, ponieważ instancja maszyny wirtualnej bazy danych nie ma zewnętrznego adresu IP.
Utwórz w Cloud Shell router Cloud Router.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Utwórz w Cloud Shell bramę NAT.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
Tworzenie testowej instancji bazy danych
Utwórz instancję bazy danych Postgres, która będzie używana do testowania i weryfikowania połączenia z Lookerem.
Utwórz instancję w Cloud Shell.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Utwórz reguły zapory sieciowej
Aby umożliwić IAP nawiązywanie połączeń z maszynami wirtualnymi, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne za pomocą IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP używane przez IAP do przekierowywania TCP.
Z Cloud Shell
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. Prywatny dostęp do usług
Dostęp do usług prywatnych to prywatne połączenie między siecią VPC a siecią należącą do Google lub innej firmy. Firma Google lub inna firma, czyli podmioty świadczące usługi, są również nazywane producentami usług. Looker Cloud Core jest producentem usług.
Połączenie prywatne umożliwia instancjom maszyn wirtualnych w Twojej sieci VPC i usługom, z których korzystasz, komunikowanie się wyłącznie za pomocą wewnętrznych adresów IP.
Ogólnie, aby korzystać z dostępu do usług prywatnych, musisz przydzielić zakres adresów IP (blok CIDR) w swojej sieci VPC, a następnie utworzyć połączenie prywatne z producentem usług.
Przydziel zakres adresów IP dla usług
Zanim utworzysz połączenie prywatne, musisz przydzielić zakres adresów IPv4 do użytku przez sieć VPC producenta usługi. Dzięki temu nie wystąpi konflikt adresów IP między siecią VPC a siecią producenta usługi.
Gdy przydzielisz zakres w swojej sieci VPC, nie będzie się on kwalifikować do podsieci (zakresów podstawowych i dodatkowych) ani miejsc docelowych niestandardowych tras statycznych.
Używanie zakresów adresów IPv6 z dostępem do usług prywatnych nie jest obsługiwane.
Włącz w swoim projekcie Service Networking API w konsoli Google Cloud. Po włączeniu tego interfejsu API może być konieczne odświeżenie strony konsoli, aby potwierdzić, że ten interfejs API został włączony.
Tworzenie przydziału adresów IP
Aby określić zakres adresów i długość prefiksu (maska podsieci), użyj flag z adresami i długością prefiksu. Aby na przykład przydzielić blok CIDR 192.168.0.0/22, wpisz 192.168.0.0 jako adres i 22 jako długość prefiksu.
Utwórz w Cloud Shell przydział adresów IP dla Lookera.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
Sprawdź w Cloud Shell przydział adresów IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Przykład:
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
Tworzenie połączenia prywatnego
Po utworzeniu przydzielonego zakresu możesz utworzyć połączenie prywatne z producentem usług Looker Cloud Core. Po ustanowieniu instancji Lookera połączenie prywatne nawiązuje połączenie równorzędne sieci VPC między siecią VPC a siecią producenta usługi.
Połączenia prywatne to relacja jeden do jednego między siecią VPC a producentem usług. Jeśli jeden producent usług oferuje wiele usług, potrzebujesz tylko jednego połączenia prywatnego dla wszystkich jego usług.
Jeśli łączysz się z kilkoma producentami usług, użyj oddzielnego przydziału dla każdego z nich. Ułatwia to zarządzanie ustawieniami sieciowymi poszczególnych producentów usług, takimi jak trasy i reguły zapory sieciowej.
Utwórz w Cloud Shell połączenie prywatne i zanotuj nazwę operacji.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Przykład:
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
Sprawdź w Cloud Shell, czy operacja się udała. Zastąp OPERATION_NAME nazwą wygenerowaną w poprzednim kroku.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
Przykład:
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5. Tworzenie instancji Lookera (podstawowej usługi Google Cloud)
Zanim zaczniesz
Włącz w swoim projekcie interfejs Looker API w konsoli Google Cloud. Po włączeniu tego interfejsu API może być konieczne odświeżenie strony konsoli, aby potwierdzić, że ten interfejs API został włączony.
Skonfiguruj klienta OAuth, aby uwierzytelnić instancję i uzyskać do niej dostęp.
W poniższej sekcji utworzysz instancję Lookera przy użyciu identyfikatora klienta i tajnego klucza OAuth.
Autoryzowane źródła JavaScript i identyfikatory URI przekierowania nie są wymagane.
W konsoli Cloud utwórz instancję na podstawie dostarczonych zrzutów ekranu.
Wybierz LOOKER → UTWÓRZ INSTANCJĘ.
Wypełnij wcześniej utworzony identyfikator i klucz tajny klienta OAuth.
Wybierz UTWÓRZ.
Gdy trwa tworzenie instancji, przekierujemy Cię na stronę Instancje w konsoli. Aby wyświetlić stan nowej instancji, konieczne może być odświeżenie strony. Aktywność związaną z tworzeniem instancji możesz też wyświetlić, klikając ikonę powiadomień w menu konsoli Google Cloud. Podczas tworzenia instancji ikona powiadomień w menu konsoli Google Cloud będzie otoczona ikoną ładowania.
Po utworzeniu instancji Lookera generowany jest adres URL instancji. Zanotuj adres URL.
6. Zaktualizuj identyfikator klienta OAuth 2.0
W tej sekcji musisz zaktualizować utworzony wcześniej identyfikator klienta OAuth Identyfikator URI autoryzowanego przekierowania, dołączając /oauth2callback
do adresu URL instancji.
Po zakończeniu możesz zalogować się w interfejsie Lookera za pomocą adresu URL instancji.
W konsoli Cloud otwórz Interfejsy API USŁUGI → DANE uwierzytelniające
Wybierz identyfikator klienta Oauth 2.0 i zaktualizuj adres URL instancji. Przykład poniżej:
7. Weryfikacja dostępu do Lookera
W konsoli Cloud przejdź do Lookera i wybierz URL instancji, który spowoduje otwarcie interfejsu Lookera.
Po uruchomieniu wyświetli się strona docelowa jak na zrzucie ekranu poniżej, która potwierdza Twój dostęp do Looker Cloud Core.
8. Połączenia hybrydowe
W tej sekcji utworzysz router Cloud Router, który umożliwia dynamiczną wymianę tras między Twoim prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną przy użyciu protokołu Border Gateway Protocol (BGP).
Cloud Router może skonfigurować sesję BGP przez tunel Cloud VPN, aby połączyć Twoje sieci. Automatycznie uczy się nowych zakresów adresów IP podsieci i ogłasza je w sieci równorzędnej.
W tym samouczku wdrożysz sieć VPN o wysokiej dostępności między analytics-vpc a on-prem-vpc, aby zilustrować połączenia prywatne z Lookerem.
Utwórz GW o wysokiej dostępności dla sieci VPN o wysokiej dostępności dla analytics-vpc.
Podczas tworzenia każdej bramy automatycznie przyznawane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy. Zanotuj te adresy IP – będą Ci potrzebne później w krokach konfiguracji.
Utwórz w Cloud Shell sieć VPN o wysokiej dostępności
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
Utwórz GW o wysokiej dostępności dla sieci VPN o wysokiej dostępności dla on-prem-vpc
Podczas tworzenia każdej bramy automatycznie przyznawane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy. Zanotuj te adresy IP – będą Ci potrzebne później w krokach konfiguracji.
Utwórz w Cloud Shell sieć VPN o wysokiej dostępności.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Sprawdzanie tworzenia GW o wysokiej dostępności sieci VPN
W konsoli wybierz POŁĄCZENIE HYBRYDOWE → VPN → GATEWAYS CLOUD VPN.
Tworzenie routera Cloud Router dla analytics-vpc
Utwórz w Cloud Shell router Cloud Router znajdujący się w regionie us-central1.
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Tworzenie routera Cloud Router dla lokalnego środowiska VPC
Utwórz w Cloud Shell router Cloud Router znajdujący się w regionie us-central1.
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Tworzenie tuneli VPN dla analytics-vpc
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
Utwórz w Cloud Shell środowisko tunnel0:
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
Tworzenie tunelu VPN1
W Cloud Shell utwórz tunel 1:
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
Tworzenie tuneli VPN dla lokalnego środowiska VPC
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
Utwórz w Cloud Shell środowisko tunnel0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
Tworzenie tunelu VPN1
W Cloud Shell utwórz tunel 1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Sprawdź poprawność utworzenia tunelu VPN
W konsoli wybierz POŁĄCZENIE HYBRYDOWE → VPN → TUNNELS CLOUD VPN.
9. Ustal sąsiadów BGP
Utwórz sesje BGP
W tej sekcji skonfigurujesz interfejsy Cloud Router i peery BGP.
Tworzenie interfejsu BGP i połączenie równorzędne dla analytics-vpc
W Cloud Shell utwórz interfejs BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
W Cloud Shell utwórz peera BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
W Cloud Shell utwórz interfejs BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
W Cloud Shell utwórz peera BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
Utwórz interfejs BGP i połączenie równorzędne dla lokalnego środowiska VPC
W Cloud Shell utwórz interfejs BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
W Cloud Shell utwórz peera BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
W Cloud Shell utwórz interfejs BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
W Cloud Shell utwórz peera BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
Wybierz POŁĄCZENIE hybrydowe → VPN, aby wyświetlić szczegóły tunelu VPN.
Zweryfikuj zapamiętane trasy analytics-vpc przez sieć VPN o wysokiej dostępności
Ponieważ tworzone są tunele sieci VPN o wysokiej dostępności i sesje BGP, trasy z lokalnego serwera VPC są zapamiętywane z instancji analytics-vpc. W konsoli wybierz Sieć VPC → Sieci VPC → analytics-vpc → TRASY → REGION → us-central1 → WIDOK
Obserwuj, czy komponent analytics-vpc zapamiętał trasy z bazy danych on-prem-vpc database-subnet-us-central1 172.16.10.0/27
Sprawdź, czy lokalna sieć VPC nie zapamiętywała tras przez sieć VPN o wysokiej dostępności
Tag analytics-vpc nie ma podsieci, dlatego router Cloud Router nie rozgłasza żadnych podsieci do instancji on-prem-vpc . W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-vpc → TRASY → REGION → us-central1 → WIDOK
10. Rozgłaszaj podsieć Lookera jako lokalną
Podsieć prywatnego dostępu do usługi Looker (PSA) nie jest automatycznie rozgłaszana przez router Cloud Router analytics-cr-us-central1, ponieważ jest przypisana do PSA, a nie do VPC.
Musisz utworzyć reklamę trasy niestandardowej z analytics-cr-central1 dla podsieci PSA 192.168.0.0/22 (PSA-range-looker), która będzie rozgłaszana w środowisku lokalnym i używana przez zbiory zadań do uzyskiwania dostępu do Lookera.
W konsoli wybierz HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1 i wybierz EDYTUJ.
W sekcji Rozgłaszane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola zgodnie z poniższym przykładem, wybierz GOTOWE i kliknij ZAPISZ.
11. Sprawdź, czy lokalny serwer VPC zapamiętał podsieć Lookera
Lokalna instancja vpc będzie miała teraz dostęp do podsieci PSA Lookera, ponieważ została rozgłaszana z Analytics-cr-us-central1 jako reklama na trasie niestandardowej.
W konsoli wybierz SIEĆ VPC → SIECI VPC → on-prem-vpc → TRASY → REGION → us-central1 → WIDOK
Obserwuj trasy Lookera rozgłaszane z analytics-vpc:
12. Zweryfikuj bieżące połączenie równorzędne VPC
Połączenie między Looker Cloud Core a Analytics-vpc odbywa się przez połączenie równorzędne VPC, które umożliwia wymianę niestandardowych tras zapamiętanych przez BGP. W samouczku interfejs analytics-vpc będzie musiał opublikować w Lookerze trasy zapamiętane przez lokalny serwer VPC. Aby włączyć tę funkcję, połączenia równorzędne VPC wymagają aktualizacji eksportu tras niestandardowych.
Zweryfikuj aktualnie zaimportowane i wyeksportowane trasy.
Przejdź do SIEĆ VPC → PEERING SIECI VPC → servicenetworking-googleapis-com
Na zrzucie ekranu poniżej widać szczegóły narzędzia analytics-vpc importujące narzędzie psa-range-looker z zarządzanej przez Google równorzędnej sieci vpc o nazwie servicesnetworking.
Wybierz EKSPORTOWANE TRASY, nie są eksportowane żadne trasy do równorzędnej sieci VPC, ponieważ 1) podsieci nie są skonfigurowane w analytics-vpc; 2) nie wybrano opcji eksportu tras niestandardowych.
13. Zaktualizuj połączenie równorzędne VPC
Wybierz SIEĆ VPC → PEERING SIECI VPC → servicenetworking-googleapis-com → EDYTUJ
Wybierz EKSPORTUJ NIESTANDARDOWE TRASY → ZAPISZ.
14. Sprawdź zaktualizowane połączenie równorzędne VPC
Zweryfikuj wyeksportowane trasy.
Przejdź do SIEĆ VPC → PEERING SIECI VPC → servicenetworking-googleapis-com
Wybierz EKSPORTOWANE TRASY, aby wyświetlić lokalne trasy VPC (podsieć bazy danych 172.16.10.0/27) wyeksportowane do równorzędnej sieci VPC hostującej narzędzie Looker przez analytics-vpc.
15. Tworzenie bazy danych Postgres na platformie Looker
W następnej sekcji wykonasz połączenie SSH z maszyną wirtualną postgres-database za pomocą Cloud Shell.
Wykonaj w Cloud Shell połączenie SSH z instancją postgres-database**.
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Zidentyfikuj i zanotuj adres IP (ens4) instancji postgres-database w systemie operacyjnym.
ip a
Przykład:
user@postgres-database:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/64 scope link
valid_lft forever preferred_lft forever
W systemie operacyjnym zaloguj się do postgresql.
sudo -u postgres psql postgres
W systemie operacyjnym wpisz prośbę o hasło.
\password postgres
W systemie operacyjnym ustaw hasło na postgres (dwukrotnie wpisz to samo hasło)
postgres
Przykład:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
W systemie operacyjnym zamknij postgres.
\q
Przykład:
postgres=# \q
user@postgres-database:~$
W tej sekcji wstawisz adres IP instancji postgres-database oraz podsieć prywatnego dostępu do Google Lookera (192.168.0.0/22) w pliku pg_hba.conf w sekcji połączeń lokalnych IPv4 zgodnie z zrzutem ekranu poniżej:
sudo nano /etc/postgresql/15/main/pg_hba.conf
W następnej sekcji usuń znacznik komentarza z pliku postgresql.conf, aby nasłuchiwać wszystkich znaków „*” Adresy IP widoczne na zrzucie ekranu poniżej:
sudo nano /etc/postgresql/15/main/postgresql.conf
Przed:
Po:
Uruchom ponownie usługę postgresql w systemie operacyjnym.
sudo service postgresql restart
W systemie operacyjnym zweryfikuj stan postgresql jako aktywny.
sudo service postgresql status
Przykład:
W systemie operacyjnym zweryfikuj stan postgresql jako aktywny.
user@postgres-database$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. Tworzenie bazy danych postgres
W tej sekcji utworzysz bazę danych postgres o nazwie postgres_looker i schemat Looker_schema, która służy do weryfikowania Lookera i połączeń lokalnych.
Zaloguj się w systemie operacyjnym do postgres.
sudo -u postgres psql postgres
Utwórz bazę danych w systemie operacyjnym.
create database postgres_looker;
Wyświetl bazę danych w systemie operacyjnym.
\l
W systemie operacyjnym utwórz narzędzie do Lookera użytkowników za pomocą narzędzia do wyszukiwania haseł.
create user postgres_looker with password 'postgreslooker';
W systemie operacyjnym połącz się z bazą danych.
\c postgres_looker;
W systemie operacyjnym utwórz schemat Lookera-schematu i wyjdź do promptu Cloud Shell.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Przykład:
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
CREATE SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
Wyjdź z systemu operacyjnego, wracając do Cloud Shell.
\q
exit
17. Utwórz zaporę sieciową w lokalnym środowisku VPC
W poniższej sekcji utwórz zaporę sieciową ruchu przychodzącego z logowaniem, która umożliwia komunikację podsieci Lookera z instancją postgres-database.
W Cloud Shell utwórz lokalną zaporę sieciową VPC.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18. Utwórz prywatny DNS w analytics-vpc
Chociaż Looker jest wdrożony w zarządzanym środowisku VPC Google, dostęp do prywatnego DNS Analytics-vpc jest obsługiwany przez połączenie równorzędne z siecią usług.
W tej sekcji utworzysz w Analytics-vpc prywatną strefę DNS zawierającą rekord A instancji postgres-database w pełni kwalifikowana nazwa domeny (postgres.analytics.com)
i adres IP).
W Cloud Shell utwórz strefę prywatną analytics.com.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
Zidentyfikuj w Cloud Shell adres IP instancji postgres-database.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
Przykład:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
W Cloud Shell utwórz rekord A i dodaj zidentyfikowany wcześniej adres IP.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
Przykład:
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
Z Cloud Shell połącz się z dns-suffix – analytics.com. do sieci usług, co pozwala Lookerowi na dostęp do strefy prywatnej analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Integracja Lookera z bazą danych Postgres
W tej sekcji użyjesz konsoli Cloud, aby utworzyć połączenie bazy danych z lokalną instancją postgres-database.
W konsoli Cloud przejdź do Lookera i wybierz URL instancji, który spowoduje otwarcie interfejsu Lookera.
Po uruchomieniu usługi zobaczysz stronę docelową widoczną na zrzucie ekranu poniżej.
Wybierz ADMINISTRACJA → BAZA DANYCH → POŁĄCZENIA → wybierz DODAJ POŁĄCZENIE.
Podaj szczegóły połączenia (jak na zrzucie ekranu poniżej) i kliknij POŁĄCZ.
Nawiązano połączenie
20. Sprawdzanie połączeń z Lookerem
W tej sekcji dowiesz się, jak za pomocą „testu” sprawdzać połączenie Lookera z bazą danych postgres w lokalnym środowisku vpc. działania i TCPDUMP.
Jeśli sesja przekroczyła limit czasu, zaloguj się w bazie danych postgres w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
W systemie operacyjnym utwórz filtr TCPDUMP z podsiecią psa-range-looker 192.168.0.0/22
sudo tcpdump -i any net 192.168.0.0/22 -nn
Przejdź do węzła ADMINISTRACJA → BAZA DANYCH → POŁĄCZENIA → Wybierz → Testuj.
Po wybraniu testu Looker połączy się z bazą danych postgres w następujący sposób:
Wróć do terminala systemu operacyjnego i sprawdź, czy narzędzie TCPDUMP wykryło, że narzędzie psc-range-looker łączy się z lokalną instancją postgres-database.
Dodaj notatkę, że każdy adres IP z zakresu PSA będzie wyświetlany z Lookera
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. Zalecenia dotyczące bezpieczeństwa
Istnieje kilka rekomendacji i sprawdzonych metod dotyczących bezpieczeństwa związanych z zabezpieczaniem Lookera i bazy danych Postgres. Możesz w tym celu korzystać z:
- Konfigurowanie na potrzeby Lookera uprawnień konta bazy danych o najmniejszych uprawnieniach, które nadal pozwalają mu na wykonywanie potrzebnych funkcji.
- Dane przesyłane między klientem a interfejsem Lookera oraz Lookerem w bazie danych zaszyfrowane przy użyciu TLS 1.2 lub nowszego
- Dane w spoczynku są domyślnie szyfrowane. Klient może też używać kluczy CMEK na potrzeby instancji Lookera ( https://cloud.google.com/looker/docs/looker-core-cmek) i Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek).
- Kontrola dostępu Lookera – administratorzy Lookera mogą kontrolować, co dana zasada lub grupa użytkowników może zobaczyć i zrobić w narzędziu Looker, przyznając dostęp do treści, danych i funkcji. Dzięki tym opcjom administrator Lookera może zdefiniować konkretne role, które obejmują model i zestaw uprawnień, oraz utworzyć szczegółową kontrolę dostępu do danych.
- Looker obsługuje zarówno logi kontrolne, jak i logi dostępu do danych, które rejestrują, kto i kiedy zrobił, co i gdzie. Logi kontrolne są domyślnie włączone, natomiast logi dostępu do danych muszą być jednoznacznie włączone.
- Obecnie VPC-SC obsługuje instancje Enterprise i Embed skonfigurowane tylko z prywatnym adresem IP
22. Czyszczenie danych
Usuń instancję Lookera Cloud Core. Otwórz stronę:
LOOKER → Looker-tutorial → USUŃ
Usuń z Cloud Shell komponenty samouczka.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. Gratulacje
Gratulujemy! Udało Ci się skonfigurować i zweryfikować połączenie Lookera w sieciach hybrydowych, co umożliwia komunikację danych między środowiskami lokalnymi i wielochmurowymi.
Udało Ci się też przetestować połączenie Looker Cloud Core z bazą danych postgres za pomocą testu Lookers Connect. i TCPDUMP w instancji bazy danych postgres.
Cosmopup uważa, że samouczki są świetne!
Więcej informacji filmy,
- Przedstawiamy nową wersję Lookera
- Migracja do GCP? Zacznijmy od początku: VPC
- Routing dynamiczny w Cloud Router
Dokumentacja
- Dokumentacja Lookera (podstawowej usługi Google Cloud)
- Tworzenie instancji Lookera (podstawowej usługi Google Cloud)
- Tworzenie połączenia z prywatnym adresem IP na potrzeby Lookera (podstawowej usługi Google Cloud)
- Sieć VPN o wysokiej dostępności między sieciami Google Cloud
- Skonfiguruj tłumaczenie adresów sieciowych i zarządzaj nimi w Cloud NA
- Opcje wymiany tras dynamicznych