1. מבוא
Looker (ליבה של Google Cloud) מספק הקצאה, הגדרה וניהול פשוטים ומהירים של מכונה של Looker דרך מסוף Google Cloud. אפשר לבצע משימות ניהול מסוימות גם מהמסוף.
יש שלוש הגדרות רשת זמינות למכונות Looker (Google Cloud Core):
- ציבורי: חיבור הרשת משתמש בכתובת IP חיצונית שגלויה לאינטרנט.
- פרטי: חיבור הרשת משתמש בכתובת IP פנימית של ענן וירטואלי פרטי (VPC) שמתארח ב-Google.
- ציבורי ופרטי: החיבור לרשת משתמש גם בכתובת IP ציבורית וגם בכתובת IP פרטית, שבה תנועה נכנסת תנותב דרך IP ציבורי, ותנועה יוצאת תנותב דרך IP פרטי.
במדריך תלמדו איך לפרוס רשת פרטית מקצה לקצה כדי לתמוך בקישוריות של Looker ל-VPC מקומי דרך HA VPN, שניתן לשכפל כדי לעמוד בדרישות שלכם לקישוריות במספר עננים ובענן מקומי.
Looker (Google Cloud Core) תומך בכתובת IP פרטית למכונות שעומדות בקריטריונים הבאים:
- מהדורות המכונות חייבות להיות Enterprise או מוטמעת.
מה תפַתחו
במדריך הזה תלמדו לפתח פריסה מקיפה של רשת Looker פרטית ב-VPC עצמאי שיש בו קישוריות היברידית לענן רב-ענן ובארגון.
מגדירים רשת VPC בשם on-prem-vpc
כדי לייצג סביבה מקומית. בפריסה, ה-on-prem-vpc לא יהיה קיים. במקום זאת, תשתמשו ברשת היברידית למרכז הנתונים המקומי או לספק הענן.
בהמשך מופיעים השלבים העיקריים במדריך
- יצירת VPC עצמאי באזור us-central1
- הקצאת תת-רשת של IP לגישה לשירות פרטי
- פריסה של מכונה של Looker ב-VPC נפרד
- יצירת רשתות היברידיות ומותאמים אישית למרחב המשותף
- פרסום ואימות של טווח כתובות IP של Looker ב-BGP
- שילוב ואימות של תקשורת נתונים של Looker ו-Postgresql
Figure1
מה תלמדו
- איך יוצרים VPC ורשתות היברידיות משויכות
- איך לפרוס את Looker ב-VPC עצמאי
- איך יוצרים VPC בארגון ורשת היברידית משויכת
- חיבור של VPC מקומי ל-analytics-vps דרך HA VPN
- איך לפרסם רשתות משנה של Looker באמצעות רשתות היברידיות
- איך לעקוב אחרי תשתית של רשתות היברידיות
- איך משלבים מסד נתונים של Postgresql עם Looker Cloud Core
מה צריך להכין
- פרויקט ב-Google Cloud
הרשאות IAM
2. לפני שמתחילים
צריך לעדכן את הפרויקט כך שיתמוך במדריך הזה
המדריך הזה משתמש ב-$variables כדי לעזור בהטמעת ההגדרות של gcloud ב-Cloud Shell.
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. הגדרת VPC
יצירת analytics-vpc
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
יצירת on-prem-vpc
ב-Cloud Shell, מבצעים את הפעולות הבאות:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
יצירת תת-הרשת של מסד הנתונים של Postgresql
ב-Cloud Shell, מבצעים את הפעולות הבאות:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
הגדרת Cloud Router ו-NAT
נעשה שימוש ב-Cloud NAT במדריך להתקנת חבילת תוכנה כי למכונה הווירטואלית של מסד הנתונים אין כתובת IP חיצונית.
יוצרים את Cloud Router ב-Cloud Shell.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
יוצרים את שער ה-NAT ב-Cloud Shell.
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
יצירת מכונת בדיקת מסד נתונים
יוצרים מכונה של מסד נתונים מסוג postgres, שתשמש לבדיקה ולאימות של הקישוריות ל-Looker.
Inside 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"
יצירת כללי חומת אש
כדי לאפשר ל-IAP להתחבר למכונות הווירטואליות, יוצרים כלל של חומת אש:
- המדיניות חלה על כל מכונות וירטואליות שרוצים לגשת אליהן באמצעות IAP.
- תעבורת נתונים נכנסת (ingress) מטווח ה-IP 35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP ש-IAP משתמש בהן להעברת TCP.
מ-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. גישה לשירות פרטי
גישה לשירותים פרטיים היא חיבור פרטי בין רשת ה-VPC שלכם לרשת בבעלות Google או של צד שלישי. Google או הצד השלישי, הישות שמספקת את השירותים, נקראים גם 'בעלי השירות'. Looker Cloud Core הוא ספק שירות.
החיבור הפרטי מאפשר מכונות וירטואליות ברשת ה-VPC ובשירותים שאליהם אתם ניגשים כדי לתקשר באופן בלעדי באמצעות כתובות IP פנימיות.
באופן כללי, כדי להשתמש בגישה לשירותים פרטיים, צריך להקצות טווח כתובות IP (בלוק CIDR) ברשת ה-VPC, ואז ליצור חיבור פרטי לספק השירות.
הקצאת טווח כתובות IP לשירותים
לפני שיוצרים חיבור פרטי, צריך להקצות טווח כתובות IPv4 לשימוש ברשת ה-VPC של יצרן השירות. כך אפשר לוודא שאין התנגשות בין כתובות IP בין רשת ה-VPC לבין הרשת של ספק השירות.
כשמקצים טווח ברשת ה-VPC, הטווח הזה לא עומד בדרישות לרשתות משנה (טווחים ראשיים ומשניים) וליעדים של נתיבים סטטיים מותאמים אישית.
אין תמיכה בשימוש בטווחי כתובות של IPv6 עם גישה לשירותים פרטיים.
מפעילים את Service Networking API בפרויקט במסוף Google Cloud. כשמפעילים את ה-API, יכול להיות שתצטרכו לרענן את דף המסוף כדי לוודא שה-API הופעל.
יצירת הקצאת IP
כדי לציין טווח כתובות ואורך קידומת (מסיכת רשת משנה), משתמשים בדגלים של הכתובות ואורך הקידומת. לדוגמה, כדי להקצות את בלוק ה-CIDR 192.168.0.0/22, מציינים 192.168.0.0 עבור הכתובת ו-22 עבור אורך הקידומת.
יוצרים את הקצאת ה-IP ל-Looker ב-Cloud Shell.
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
ב-Cloud Shell, מאמתים את הקצאת ה-IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
דוגמה:
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
יצירת חיבור פרטי
אחרי שיוצרים טווח מוקצה, אפשר ליצור חיבור פרטי למפיק שירות, Looker Cloud Core. אחרי יצירת המכונה של Looker, החיבור הפרטי יוצר חיבור VPC Network Peering בין רשת ה-VPC שלכם לבין הרשת של ספק השירות.
חיבורים פרטיים הם מערכת יחסים של אחד לאחד בין רשת ה-VPC שלכם לבין מפיק שירות. אם הבעלים של שירות מסוים מציע כמה שירותים, צריך רק חיבור פרטי אחד לכל השירותים שלו.
אם אתם מתחברים לכמה ספקי שירות, צריך להשתמש בהקצאה ייחודית לכל ספק שירות. כך תוכלו לנהל את הגדרות הרשת, כמו מסלולים וכללי חומת אש, לכל בעל שירות.
ב-Inside Cloud Shell, יוצרים חיבור פרטי. שימו לב לשם הפעולה.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
דוגמה:
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.
ב-Cloud Shell, בודקים אם הפעולה בוצעה בהצלחה ומחליפים את OPERATION_NAME בשם שנוצר בשלב הקודם.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
דוגמה:
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. יצירת מכונה של Looker (Google Cloud Core)
לפני שמתחילים
מפעילים את Looker API לפרויקט במסוף Google Cloud. כשתפעילו את ה-API, יכול להיות שתצטרכו לרענן את הדף במסוף כדי לוודא שה-API הופעל.
מגדירים לקוח OAuth כדי לבצע אימות ולגשת למכונה.
בקטע הבא, תצטרכו להשתמש בסוד ובמזהה הלקוח של OAuth כדי ליצור את המכונה של Looker.
לא נדרשים מקורות מורשים של JavaScript ומזהי URI להפניה אוטומטית.
נכנסים למסוף Cloud ויוצרים מכונה על סמך צילומי המסך שסופקו.
עוברים אל LOOKER → CREATE AN INSTANCE
מאכלסים את מזהה הלקוח והסוד של OAuth שנוצרו קודם.
מקישים על יצירה.
בזמן שהמכונה נוצרת, תופנו לדף מכונות במסוף. יכול להיות שתצטרכו לרענן את הדף כדי לראות את הסטטוס של המכונה החדשה. אפשר גם לראות את הפעילות של יצירת המכונות בלחיצה על סמל ההתראות בתפריט של מסוף Google Cloud. בזמן יצירת המכונה, סמל ההתראות בתפריט של מסוף Google Cloud יהיה מוקף בסמל טעינה.
אחרי שיוצרים את המכונה של Looker, נוצרת כתובת URL של מכונה. כותבים את כתובת ה-URL.
6. עדכון מזהה הלקוח של OAuth 2.0
בקטע הבא תצטרכו לעדכן את ה-URI המורשה להפניה אוטומטית של מזהה הלקוח ב-OAuth שיצרתם קודם, על ידי הוספת /oauth2callback
לכתובת ה-URL של המכונה.
בסיום, תוכלו להשתמש בכתובת ה-URL של המכונה כדי להתחבר לממשק המשתמש של Looker.
במסוף Cloud, עוברים אל APIs & SERVICES → CREDENTIALS.
בוחרים את מזהה הלקוח ב-OAuth 2.0 ומעדכנים את כתובת ה-URL של המכונה. דוגמה:
7. אימות הגישה ל-Looker
במסוף Cloud, עוברים אל Looker ובוחרים את כתובת ה-URL של המכונה. כתובת ה-URL הזו תפתח את ממשק המשתמש של Looker.
לאחר ההשקה יוצג לכם דף הנחיתה, שמופיע בצילום המסך למטה, שמאשר את הגישה שלכם ל-Looker Cloud Core.
8. קישוריות היברידית
בחלק הבא, יוצרים Cloud Router שמאפשר להחליף באופן דינמי מסלולים בין ענן וירטואלי פרטי (VPC) לבין הרשת השכנה באמצעות Border Gateway Protocol (BGP).
Cloud Router יכול להגדיר סשן BGP דרך מנהרה של Cloud VPN כדי לחבר את הרשתות. הוא לומד באופן אוטומטי טווחי כתובות IP חדשים של תת-רשתות ומכריז עליהם ברשת השכנה.
במדריך תפרסו רשת HA VPN בין ה-analytics-vpc ו-on-prem-vpc כדי להמחיש קישוריות פרטית ל-Looker.
יוצרים את שער ה-HA VPN ל-analytics-vpc
כשיוצרים כל שער, מוקצות באופן אוטומטי שתי כתובות IPv4 חיצוניות, אחת לכל ממשק של שער. רושמים בצד את כתובות ה-IP האלה כדי להשתמש בהן בהמשך בשלבי ההגדרה.
Inside Cloud Shell, יוצרים את HA VPN GW
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
יוצרים את ה-HA VPN GW עבור on-prem-vpc
כשיוצרים כל שער, מוקצות באופן אוטומטי שתי כתובות IPv4 חיצוניות, אחת לכל ממשק של שער. חשוב לכתוב את כתובות ה-IP האלה כדי להשתמש בהן בשלבים הבאים של הגדרת השירות.
Inside Cloud Shell, יוצרים את HA VPN GW.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
אימות היצירה של HA VPN GW
במסוף, עוברים אל HYBRID CONNECTIVITY (קישוריות היברידית) → VPN (רשתות VPN) → CLOUD VPN GATEWAYS (שערי Cloud VPN).
יוצרים את Cloud Router עבור analytics-vpc
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
יצירת Cloud Router עבור ה-vpc בסביבה המקומית
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
יצירת מנהרות ה-VPN ל-analytics-vpc
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
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
יצירת מנהרת VPN1
ב-Cloud Shell, יוצרים את המנהרה tunnel1:
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
יצירת מנהרות ה-VPN ל-on-prem-vpc
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
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
יצירת מנהרת VPN1
בתוך Cloud Shell, יוצרים tunnel1:
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
אימות היצירה של מנהרת VPN
במסוף, עוברים אל HYBRID CONNECTIVITY (קישוריות היברידית) → VPN (VPN) → CLOUD VPN TUNNELS (מנהרות VPN ב-Cloud).
9. יצירת שכנים ב-BGP
יצירת פעילויות באמצעות BGP
בקטע הזה מגדירים ממשקים של Cloud Router ושותפי BGP.
יצירת ממשק BGP וקישור בין רשתות שכנות (peering) של analytics-vpc
יוצרים את ממשק ה-BGP ב-Cloud Shell:
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
ב-Cloud Shell, יוצרים את השותף ב-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
יוצרים את ממשק ה-BGP ב-Cloud Shell:
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
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-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
יצירת ממשק BGP וקישור בין רשתות שכנות ל-on-prem-vpc
יוצרים את ממשק ה-BGP ב-Cloud Shell:
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
ב-Cloud Shell, יוצרים את השותף ב-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
יוצרים את ממשק ה-BGP ב-Cloud Shell:
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
ב-Cloud Shell, יוצרים את השותף ב-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
עוברים אל Hybrid CONNECTIVITY → VPN כדי להציג את פרטי המנהרה של ה-VPN.
אימות מסלולים שנלמדו ב-analytics-vpc באמצעות HA VPN
מאחר שמנהרות ה-HA VPN וסשנים של BGP נוצרים, המסלולים מ-on-prem-vpc נלמדים מ-analytics-vpc. באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← analytics-vpc ← ROUTES ← REGION ← us-central1 ← VIEW
צפייה ב-analytics-vpc למדו מסלולים מ-on-prem-vpcDatabase-subnet-us-central1 172.16.10.0/27
מוודאים ש-on-prem-vpc לא למד נתיב דרך HA VPN
לרשת analytics-vpc אין תת-רשת, לכן Cloud Router לא יפרסם תת-רשתות ל-on-prem-vpc . באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← on-prem-vpc ← ROUTES ← REGION ← us-central1 ← VIEW
10. פרסום רשת המשנה של Looker לארגון מקומי
תת-הרשת של Looker Private Service Access (PSA) לא מפורסמת באופן אוטומטי על ידי נתב הענן analytics-cr-us-central1 כי תת-הרשת הוקצה ל-PSA ולא ל-VPC.
תצטרכו ליצור מודעה עם מסלול מותאם אישית מ-analytics-cr-central1 עבור רשת המשנה של PSA 192.168.0.0/22 (psa-range-looker) שתפורסם בסביבה המקומית וישמשו את עומסי העבודה כדי לגשת ל-Looker.
במסוף, עוברים אל HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1 ובוחרים באפשרות EDIT.
בקטע Advertised routes (מסלולים שפורסמו), בוחרים באפשרות Create custom routes (יצירת מסלולים מותאמים אישית), מעדכנים את השדות לפי הדוגמה שבהמשך, בוחרים באפשרות DONE (סיום) ולוחצים על SAVE (שמירה).
11. מוודאים ש-on-prem-vpc למד את תת-הרשת של Looker
מעכשיו, רשת המשנה on-prem-vpc תוכל לגשת לרשת המשנה של Looker PSA, כי היא פורסמה מ-analytics-cr-us-central1 כמודעה בהתאמה אישית של מסלול.
באמצעות המסוף, עוברים אל VPC NETWORKS ← VPC NETWORKS ← on-prem-vpc ← ROUTES ← REGION ← us-central1 ← VIEW
בודקים את המסלולים של Looker שפורסמו מ-analytics-vpc:
12. אימות הקישור בין רשתות שכנות (peering) של VPC
החיבור בין Looker Cloud Core לבין analytics-vpc הוא קישור בין רשתות שכנות (peering) ב-VPC, שמאפשרת להחליף מסלולים מותאמים אישית שנלמדו דרך BGP. במדריך הזה, המשתמשים ב-analytics-vpc יצטרכו לפרסם ל-Looker את המסלולים שנלמדו על ידי ה-vpc ב-on-prem-vpc. כדי להפעיל את הפונקציונליות הזו, צריך לעדכן את ה-VPC peering כדי לייצא מסלולים מותאמים אישית.
לבדוק את המסלולים המיובאים ומיוצאים הנוכחיים.
עוברים אל VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com.
בצילום המסך שבהמשך מפורט היבוא של analytics-vpc את psa-range-looker מרשת ה-VPC הדו-כיוונית המנוהלת על ידי Google, servicesnetworking.
בוחרים באפשרות 'נתיבי ייצוא', מכיוון שלא נשלחו נתיבים לרשת ה-VPC המקבילה כי: 1) תת-הרשתות לא מוגדרות ב-analytics-vpc 2) לא נבחרה האפשרות 'ייצוא של נתיבים מותאמים אישית'
13. עדכון קישור בין רשתות VPC שכנות (peering)
עוברים אל VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com → EDIT.
בוחרים באפשרות ייצוא של נתיבים מותאמים אישית → שמירה.
14. אימות הקישור בין רשתות שכנות (peering) של VPC
אימות הנתיבים שיוצאו.
עוברים אל VPC NETWORK ← VPC NETWORK PEERING → servicenetworking-googleapis-com
אם בוחרים באפשרות 'נתיבי ייצוא', רואים שהנתיבים של on-prem-vpc (תת-הרשת של מסד הנתונים 172.16.10.0/27) מיוצאים על ידי analytics-vpc לרשת ה-VPC המקושרת שמארחת את Looker.
15. יצירת מסד נתונים ב-Looker (postgres-database)
בקטע הבא תבצעו SSH ב-vm של מסד הנתונים postgres-data באמצעות Cloud Shell.
Inside Cloud Shell, מבצעים SSH למכונת postgres-database**.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
בתוך מערכת ההפעלה, מזהים את כתובת ה-IP (ens4) של מכונת ה-postgres-database.
ip a
דוגמה:
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
בתוך מערכת ההפעלה, מתחברים ל-postgresql.
sudo -u postgres psql postgres
בתוך מערכת ההפעלה, מזינים את הנחיית הסיסמה.
\password postgres
בתוך מערכת ההפעלה, מגדירים את הסיסמה ל-postgres (מזינים את אותה סיסמה פעמיים)
postgres
דוגמה:
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:
בתוך מערכת ההפעלה, יוצאים מפעולות המרה אחרי שליחת פוסט.
\q
דוגמה:
postgres=# \q
user@postgres-database:~$
בקטע הבא, עליכם להזין את כתובת ה-IP של מכונת postgres-database ואת רשת המשנה של Looker Private Google Access (192.168.0.0/22) בקובץ pg_hba.conf בחיבורים המקומיים של IPv4, לפי צילום המסך הבא:
sudo nano /etc/postgresql/15/main/pg_hba.conf
בקטע הבא, מבטלים את התגובה ל-postgresql.conf כדי להאזין לכל כתובות ה-IP '*' לפי צילום המסך הבא:
sudo nano /etc/postgresql/15/main/postgresql.conf
לפני:
אחרי:
בתוך מערכת ההפעלה, מפעילים מחדש את שירות postgresql.
sudo service postgresql restart
בתוך מערכת ההפעלה, מוודאים שהסטטוס של postgresql הוא פעיל.
sudo service postgresql status
דוגמה:
בתוך מערכת ההפעלה, מוודאים שהסטטוס של postgresql הוא פעיל.
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. יצירת מסד הנתונים postgres
בקטע הבא, תיצור מסד נתונים מסוג postgres בשם postgres_looker ו-schema looker_schema שישמש לאימות הצופה בקישוריות מקומית.
בתוך מערכת ההפעלה, מתחברים ל-postgres.
sudo -u postgres psql postgres
יוצרים את מסד הנתונים בתוך מערכת ההפעלה.
create database postgres_looker;
בתוך מערכת ההפעלה, מציגים את מסד הנתונים.
\l
בתוך מערכת ההפעלה, יוצרים את מראה המשתמש באמצעות כלי הסיסמאות
create user postgres_looker with password 'postgreslooker';
בתוך מערכת ההפעלה, מתחברים למסד הנתונים.
\c postgres_looker;
בתוך מערכת ההפעלה, יוצרים את הסכימה looker-schema ויוצאים להנחיה של Cloud Shell.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
דוגמה:
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
יוצאים ממערכת ההפעלה, חוזרים ל-Cloud Shell.
\q
exit
17. יצירת חומת אש ב-on-prem-vpc
בקטע הבא, יוצרים חומת אש של תעבורת נתונים נכנסת (ingress) עם רישום ביומן, שמאפשרת תקשורת רשת משנה של Looker למכונה של postgres-database.
יוצרים את חומת האש on-prem-vpc ב-Cloud Shell.
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. יצירת DNS פרטי ב-analytics-vpc
Looker פרוס ב-VPC מנוהל על ידי Google, אבל הגישה ל-analytics-vpc DNS הפרטי נתמכת באמצעות קישור בין רשתות שכנות (peering) עם רשתות שירותים.
בקטע הבא יוצרים אזור DNS פרטי ב-analytics-vpc. האזור הזה מורכב מרשומת A של מכונת postgres-database (שם דומיין מלא) (postgres.analytics.com)
וכתובת IP).
ב-Cloud Shell, יוצרים את האזור הפרטי 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"
מזהים ב-Cloud Shell את כתובת ה-IP של מכונת ה-postgres-database.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
דוגמה:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
יוצרים ב-Cloud Shell את רשומת ה-A ומקפידים להוסיף את כתובת ה-IP שצוינה קודם לכן.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
דוגמה:
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
ב-Cloud Shell, מקשרים את הסיומת של ה-DNS analytics.com ל-Service Networking, וכך מאפשרים ל-Looker לגשת לאזור הפרטי analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. שילוב של Looker עם מסד הנתונים postgres-database של Postgres
בקטע הבא תלמדו איך משתמשים במסוף Cloud כדי ליצור חיבור למסד נתונים למכונה של מסד הנתונים postgres בארגון.
במסוף Cloud, עוברים אל Looker ובוחרים את כתובת ה-URL של המכונה. כתובת ה-URL הזו תפתח את ממשק המשתמש של Looker.
לאחר ההפעלה יוצג לכם דף הנחיתה בצילום המסך שלמטה.
עוברים אל אדמין → מסד נתונים → חיבורים → בוחרים באפשרות הוספת חיבור.
ממלאים את פרטי החיבור לפי צילום המסך שבהמשך, ובוחרים באפשרות התחברות.
החיבור בוצע בהצלחה
20. אימות הקישוריות ל-Looker
בקטע הבא תלמדו איך לאמת את קישוריות Looker למסד הנתונים postgres-database ב-on-prem-vpc באמצעות הפעולה 'test' ב-Looker ו-TCPDUMP.
ב-Cloud Shell, מתחברים למסד הנתונים postgres-database אם פג התוקף של הסשן.
ב-Cloud Shell, מבצעים את הפעולות הבאות:
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"
ממערכת ההפעלה, יוצרים מסנן TCPDUMP עם תת-הרשת psa-range-looker 192.168.0.0/22
sudo tcpdump -i any net 192.168.0.0/22 -nn
עוברים אל 'חיבור נתונים' אדמין → מסד נתונים → חיבורים → בחירה → בדיקה.
אחרי שבוחרים באפשרות 'בדיקה', Looker יתחבר למסד הנתונים שלאחר מכן (postgres-database), כפי שמתואר בהמשך:
חוזרים אל טרמינל מערכת ההפעלה ומוודאים ש-TCPDUMP זיהה שה-psc-range-looker מתחבר למופע המקומי של postgres-database.
מוסיפים הערה שכל כתובת IP מטווח ה-PSA תוצג מ-Looker
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. המלצות בנושא אבטחה
יש כמה המלצות לאבטחה ושיטות מומלצות שקשורות לאבטחת Looker ולמסד הנתונים של Postgres. למשל:
- להגדיר ל-Looker את ההרשאות המינימליות ביותר בחשבון למסד הנתונים, כדי לאפשר לו לבצע את הפונקציות הנדרשות.
- נתונים במעבר בין הלקוח לממשק המשתמש של Looker ומ-Looker למסד נתונים מוצפנים באמצעות TLS 1.2 ואילך
- הנתונים באחסון מוצפנים כברירת מחדל, והלקוחות יכולים להשתמש ב-CMEK למכונות של Looker ( https://cloud.google.com/looker/docs/looker-core-cmek) וב-Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek)
- בקרת גישה ב-Looker – אדמינים ב-Looker יכולים לקבוע מה חשבון משתמש או קבוצת משתמשים יכולים לראות ולעשות ב-Looker, על ידי מתן הרשאות גישה לתוכן, לנתונים ולתכונות. האפשרויות האלה מאפשרות לאדמין ב-Looker להגדיר תפקידים ספציפיים שכוללים מודל וקבוצת הרשאות, וליצור בקרת גישה מפורטת לנתונים.
- ב-Looker יש תמיכה גם ביומני ביקורת וגם ביומני גישה לנתונים, שמתעדים מי עשה מה, מתי ואיפה. יומני הביקורת מופעלים כברירת מחדל, אבל צריך להפעיל באופן מפורש את יומני Data Access.
- נכון לעכשיו, VPC-SC תומך במכונות Enterprise ובמכונות הטמעה שמוגדרות באמצעות כתובת IP פרטית בלבד
22. הסרת המשאבים
כדי למחוק את המכונה של Looker Cloud Core, עוברים אל:
LOOKER ← Looker-tutorial ← DELETE
מוחקים את רכיבי המדריך מ-Cloud Shell.
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. מזל טוב
כל הכבוד! הגדרתם בהצלחה את הקישוריות ל-Looker וביצעתם את האימות באמצעות רשת היברידית שמאפשרת תקשורת נתונים בסביבות מקומיות ובסביבות מרובות עננים (multi-cloud).
בנוסף, הצלחתם לבדוק את קישוריות Looker Cloud Core למסד הנתונים postgres באמצעות הכלי 'בדיקה' של Lookers Connect ו-TCPDUMP במכונה של מסד הנתונים postgres.
ב-Cosmopup שלנו חושבים שמדריכים הם מדהימים!
המשך קריאה וסרטונים
- ההתפתחות הבאה של Looker
- עוברים ל-GCP? הדבר הראשון שצריך לעשות: רשתות VPC
- ניתוב דינמי באמצעות Cloud Router