Łączenie Looker Cloud przez sieci hybrydowe

Informacje o tym ćwiczeniu (w Codelabs)
schedule151 minut
subjectOstatnia aktualizacja: 8 sierpnia 2023
account_circleAutorzy: Deepak Michael, Eric Lyons, Eric Hutcheson, Assaf Namer

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:

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

  1. Tworzenie samodzielnego środowiska VPC w us-central1
  2. Przydziel podsieć IP do prywatnego dostępu do usług
  3. Wdrażanie instancji Lookera w samodzielnym środowisku VPC
  4. Tworzenie sieci lokalnych VPC i hybrydowych
  5. Rozgłaszaj i zweryfikuj zakres adresów IP Lookera przez BGP
  6. Integrowanie i weryfikowanie komunikacji danych Lookera i Postgresql

Figure1

8436cc4802b670db.png

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.

103601bca0b6ebe8.png

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.

b780ed751824176c.png

3fe880e26a81a756.png

91acffd74c68a067.png

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.

5ac8a1b8b438dce6.png

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:

793c5b82ec34fb1f.png

7. Weryfikacja dostępu do Lookera

W konsoli Cloud przejdź do Lookera i wybierz URL instancji, który spowoduje otwarcie interfejsu Lookera.

9d132a67c532279e.png

Po uruchomieniu wyświetli się strona docelowa jak na zrzucie ekranu poniżej, która potwierdza Twój dostęp do Looker Cloud Core.

b77055fd674f8a69.png

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.

a3973b2bbb832bae.png

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.

61c09b3d3102149d.png

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.

ddd4a8f851d44fd6.png

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

57c7898390db4bcb.png

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

5b007e46a7c7026.png

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.

87f95ee3d1cd8521.png

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:

a987a76fd57ddedd.png

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

f6d9395712934cd8.png

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.

86a0e8c3534c6986.png

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.

a52de427fa73fb22.png

13. Zaktualizuj połączenie równorzędne VPC

Wybierz SIEĆ VPC → PEERING SIECI VPC → servicenetworking-googleapis-com → EDYTUJ

Wybierz EKSPORTUJ NIESTANDARDOWE TRASY → ZAPISZ.

a2309e4c3a7cee80.png

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.

47e953268d78a469.png

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:

178364a8ee9b6233.png

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:

aad52092c0a9408.png

Po:

7e80b916d29e097c.png

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.

9d132a67c532279e.png

Po uruchomieniu usługi zobaczysz stronę docelową widoczną na zrzucie ekranu poniżej.

b77055fd674f8a69.png

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.

c8cca15252c2020d.png

Nawiązano połączenie

3e51b7e2cc62fb45.png

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:

ef25b837b6a41fe.png

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Ń

e5a2e3af9e7ffd40.png

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!

e6d3675ca7c6911f.jpeg

Więcej informacji filmy,

Dokumentacja