1. مقدمه
Looker (هسته Google Cloud) تهیه، پیکربندی و مدیریت ساده و سادهشده یک نمونه Looker را از کنسول Google Cloud ارائه میکند. برخی از وظایف مدیریت نمونه نیز ممکن است از کنسول انجام شوند.
سه پیکربندی شبکه موجود برای نمونههای Looker (هسته Google Cloud) وجود دارد:
- عمومی: اتصال شبکه از یک آدرس IP خارجی و قابل دسترسی به اینترنت استفاده می کند.
- خصوصی: اتصال شبکه از یک آدرس IP داخلی ابر خصوصی مجازی (VPC) با میزبانی گوگل استفاده می کند.
- عمومی و خصوصی: اتصال شبکه از یک آدرس IP عمومی و یک آدرس IP خصوصی استفاده می کند، که در آن ترافیک ورودی از طریق IP عمومی و ترافیک خروجی از طریق IP خصوصی هدایت می شود.
در این آموزش شما یک شبکه خصوصی جامع پایان به پایان را برای پشتیبانی از اتصال Looker به یک vpc روی prem-vpc از طریق HA VPN مستقر خواهید کرد که می تواند برای برآورده کردن نیازهای شما برای اتصال چند ابری و داخلی تکرار شود.
Looker (هسته Google Cloud) از IP خصوصی برای نمونه هایی که معیارهای زیر را برآورده می کنند پشتیبانی می کند:
- نسخه های نمونه باید Enterprise یا Embed باشند.
چیزی که خواهی ساخت
در این آموزش، شما قصد دارید یک شبکه خصوصی خصوصی جامع در یک VPC مستقل بسازید که دارای اتصال ترکیبی به چند ابری و داخلی است.
شما یک شبکه VPC به نام on-prem-vpc
راه اندازی خواهید کرد تا یک محیط داخلی را نشان دهد. برای استقرار شما، on-prem-vpc وجود نخواهد داشت، در عوض از شبکه ترکیبی به مرکز داده داخلی یا ارائهدهنده ابری شما استفاده میشود.
در زیر مراحل اصلی آموزش آورده شده است
- یک VPC مستقل در us-central1 ایجاد کنید
- یک زیرشبکه IP به دسترسی به سرویس خصوصی اختصاص دهید
- استقرار نمونه Looker در VPC مستقل
- شبکه های on-prem-vpc و ترکیبی ایجاد کنید
- محدوده IP Looker را از طریق BGP تبلیغ و تأیید کنید
- ارتباطات داده Looker و Postgresql را یکپارچه و اعتبار سنجی کنید
شکل 1
چیزی که یاد خواهید گرفت
- نحوه ایجاد VPC و شبکه هیبریدی مرتبط
- نحوه استقرار Looker در vpc مستقل
- نحوه ایجاد یک شبکه هیبریدی on-prem-vpc و مرتبط
- on-prem-vpc را با analytics-vps از طریق HA VPN وصل کنید
- چگونه زیرشبکه های Looker را از طریق شبکه های ترکیبی تبلیغ کنیم
- نحوه نظارت بر زیرساخت شبکه های ترکیبی
- نحوه ادغام پایگاه داده Postgresql با Looker Cloud Core
آنچه شما نیاز دارید
- پروژه Google Cloud
مجوزهای IAM
2. قبل از شروع
برای پشتیبانی از آموزش، پروژه را به روز کنید
این آموزش از $variables برای کمک به پیاده سازی پیکربندی gcloud در Cloud Shell استفاده می کند.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. راه اندازی VPC
analytics-vpc را ایجاد کنید
در داخل 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
روتر ابری و پیکربندی NAT
Cloud NAT در آموزش نصب بسته نرم افزاری استفاده می شود زیرا نمونه VM پایگاه داده یک آدرس IP خارجی ندارد.
در داخل Cloud Shell، Cloud Router را ایجاد کنید.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
در داخل Cloud Shell، دروازه 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
نمونه آزمایشی پایگاه داده را ایجاد کنید
یک نمونه پایگاه داده postgres ایجاد کنید که برای آزمایش و اعتبارسنجی اتصال به Looker استفاده می شود.
در داخل 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 اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:
- برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
- به ترافیک ورودی از محدوده 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 یک تولید کننده خدمات است.
اتصال خصوصی نمونه های VM را در شبکه 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 را برای طول پیشوند مشخص کنید.
در داخل Cloud Shell، تخصیص IP را برای Looker ایجاد کنید.
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 ایجاد کنید. اتصال خصوصی یک اتصال همتا شبکه VPC را بین شبکه VPC شما و شبکه تولید کننده خدمات پس از ایجاد نمونه Looker برقرار می کند.
اتصالات خصوصی یک رابطه یک به یک بین شبکه VPC شما و یک تولید کننده خدمات است. اگر یک تولیدکننده خدمات چند سرویس ارائه دهد، شما فقط به یک اتصال خصوصی برای همه خدمات تولیدکننده نیاز دارید.
اگر به چندین تولیدکننده خدمات متصل هستید، از یک تخصیص منحصر به فرد برای هر تولیدکننده خدمات استفاده کنید. این تمرین به شما کمک می کند تنظیمات شبکه خود را مدیریت کنید، مانند مسیرها و قوانین فایروال، برای هر تولید کننده سرویس.
در داخل 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) ایجاد کنید
قبل از شروع
API Looker را برای پروژه خود در کنسول Google Cloud فعال کنید. هنگام فعال کردن API، ممکن است لازم باشد صفحه کنسول را بازخوانی کنید تا تأیید کنید که API فعال شده است.
یک سرویس گیرنده OAuth را برای احراز هویت و دسترسی به نمونه تنظیم کنید .
در بخش زیر، باید از OAuth Client ID و Secret برای ایجاد نمونه Looker استفاده کنید.
مبداهای مجاز جاوا اسکریپت و URIهای تغییر مسیر مورد نیاز نیستند.
Inside Cloud Console یک نمونه بر اساس اسکرین شات های ارائه شده ایجاد کنید.
به LOOKER → CREATE AN AN ANSTANCE بروید
شناسه مشتری OAuth و راز ایجاد شده قبلی را پر کنید.
CREATE را انتخاب کنید
همانطور که نمونه در حال ایجاد است، به صفحه Instances در کنسول هدایت خواهید شد. برای مشاهده وضعیت نمونه جدید خود، ممکن است لازم باشد صفحه را بازخوانی کنید. همچنین می توانید فعالیت ایجاد نمونه خود را با کلیک بر روی نماد اعلان ها در منوی کنسول Google Cloud مشاهده کنید. در حالی که نمونه شما در حال ایجاد است، نماد اعلان ها در منوی کنسول Google Cloud توسط یک نماد بارگیری احاطه می شود.
پس از ایجاد نمونه Looker یک URL نمونه تولید می شود. URL را یادداشت کنید
6. شناسه مشتری OAuth 2.0 را به روز کنید
در بخش بعدی، باید با اضافه کردن /oauth2callback
به URL نمونه، OAuth Client ID Authorized URI تغییر مسیر قبلی ایجاد شده را به روز کنید.
پس از تکمیل، می توانید از URL نمونه برای ورود به رابط کاربری Looker استفاده کنید.
در داخل Cloud Console، به APIs & SERVICEs → CREDENTIALS بروید
شناسه مشتری Oauth 2.0 خود را انتخاب کنید و URL نمونه خود را بهروزرسانی کنید، مثال زیر:
7. اعتبار سنجی Looker Access
در Cloud Console، به Looker بروید و نشانی اینترنتی نمونه خود را انتخاب کنید که رابط کاربری Looker را باز می کند.
پس از راهاندازی، صفحه فرود در تصویر زیر برای شما نمایش داده میشود که دسترسی شما به Looker Cloud Core را تأیید میکند.
8. اتصال هیبریدی
در بخش زیر، یک Cloud Router ایجاد می کنید که به شما امکان می دهد با استفاده از پروتکل دروازه مرزی (BGP) مسیرها را بین Virtual Private Cloud (VPC) و شبکه همتای خود به صورت پویا مبادله کنید.
Cloud Router می تواند یک جلسه BGP را روی یک تونل Cloud VPN برای اتصال شبکه های شما راه اندازی کند. به طور خودکار محدوده آدرس IP زیرشبکه جدید را می آموزد و آنها را به شبکه همتای شما اعلام می کند.
در این آموزش شما HA VPN را بین analytics-vpc و on-prem-vpc مستقر خواهید کرد تا اتصال خصوصی به Looker را نشان دهید.
HA VPN GW را برای analytics-vpc ایجاد کنید
هنگامی که هر دروازه ایجاد می شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص می یابد، یکی برای هر رابط دروازه. این آدرس های IP را یادداشت کنید تا بعداً در مراحل پیکربندی استفاده کنید.
در داخل 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 را یادداشت کنید تا بعداً در مراحل پیکربندی استفاده کنید.
در داخل 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 → CLOUD VPN GATEWAYS بروید.
Cloud Router را برای analytics-vpc ایجاد کنید
در داخل Cloud Shell، Cloud Router واقع در us-central1 را ایجاد کنید
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
روتر ابری را برای on-prem-vpc ایجاد کنید
در داخل 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 ایجاد خواهید کرد.
ایجاد VPN tunnel0
در داخل Cloud Shell، 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
ایجاد VPN tunnel1
در داخل 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 ایجاد خواهید کرد.
ایجاد VPN tunnel0
در داخل Cloud Shell، 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
ایجاد VPN tunnel1
در داخل 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 → CLOUD VPN TUNNELS بروید.
9. همسایگان BGP را ایجاد کنید
ایجاد جلسات BGP
در این بخش، رابط های Cloud Router و همتایان BGP را پیکربندی می کنید.
یک رابط BGP و peering برای analytics-vpc ایجاد کنید
در داخل Cloud Shell، رابط 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
در داخل 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
در داخل Cloud Shell، رابط 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
در داخل 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 ایجاد کنید
در داخل Cloud Shell، رابط 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
در داخل 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
در داخل Cloud Shell، رابط 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
در داخل 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
برای مشاهده جزئیات تونل VPN به مسیر Hybrid CONNECTIVITY → 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-vpc-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 را در on-prem تبلیغ کنید
زیرشبکه 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 NETWORK → VPC NETWORKS → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW بروید.
مسیرهای Looker تبلیغ شده از analytics-vpc را مشاهده کنید:
12. اعتبار سنجی فعلی VPC Peering
ارتباط بین Looker Cloud Core و analytics-vpc از طریق همتاسازی VPC است که امکان تبادل مسیرهای سفارشی آموخته شده از طریق BGP را فراهم می کند. در این آموزش، analytics-vpc باید مسیرهای آموخته شده توسط on-prem-vpc را به Looker منتشر کند. برای فعال کردن این عملکرد، همتاسازی VPC به یک بهروزرسانی برای صادرات مسیرهای سفارشی نیاز دارد.
اعتبارسنجی مسیرهای فعلی وارداتی و صادراتی
به 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 بروید
EXPORT CUSTOM ROUTES → SAVE را انتخاب کنید
14. اعتبارسنجی به روز شده VPC Peering
اعتبارسنجی مسیرهای صادر شده
به VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com بروید
انتخاب مسیرهای صادر شده نشان می دهد که مسیرهای on-prem-vpc (زیر شبکه پایگاه داده 172.16.10.0/27) توسط analytics-vpc به Looker میزبان شبکه VPC همتا صادر می شوند.
15. Looker postgres- پایگاه داده ایجاد کنید
در بخش زیر، SSH را در postgres-database vm با استفاده از Cloud Shell انجام خواهید داد.
در داخل Cloud Shell، یک نمونه ssh به postgres-base را انجام دهید**.**
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:
در داخل سیستم عامل، از postgres خارج شوید.
\q
مثال:
postgres=# \q
user@postgres-database:~$
در بخش زیر، آدرس IP نمونه postgres-database و زیرشبکه Google Access Private Looker (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 ایجاد خواهید کرد که برای اعتبارسنجی اتصال looker به داخل محل استفاده می شود.
در داخل سیستم عامل، وارد postgres شوید.
sudo -u postgres psql postgres
در داخل سیستم عامل، پایگاه داده را ایجاد کنید.
create database postgres_looker;
در داخل سیستم عامل، پایگاه داده را فهرست کنید.
\l
در داخل سیستم عامل، جستجوگر کاربر را با جستجوگر رمز عبور ایجاد کنید
create user postgres_looker with password 'postgreslooker';
در داخل سیستم عامل، به پایگاه داده متصل شوید.
\c postgres_looker;
در داخل سیستم عامل، schema 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
از سیستم عامل خارج شوید و شما را به پوسته ابری بازگرداند.
\q
exit
17. یک فایروال در on-prem-vpc ایجاد کنید
در بخش زیر، یک فایروال Ingress با ورود به سیستم ایجاد کنید که به زیرشبکه Looker اجازه می دهد تا با نمونه postgres-database ارتباط برقرار کند.
از Cloud Shell، فایروال on-prem-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. DNS خصوصی در analytics-vpc ایجاد کنید
اگرچه Looker در VPC مدیریت شده توسط Google مستقر شده است، دسترسی به DNS خصوصی تجزیه و تحلیل vpc از طریق همتاسازی با شبکه خدمات پشتیبانی می شود.
در بخش زیر، یک منطقه DNS خصوصی در analytics-vpc ایجاد خواهید کرد که شامل یک رکورد از نمونه 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، peer dns-suffix analytics.com . به شبکههای خدماتی که به 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 postgres ادغام کنید
در بخش بعدی از Cloud Console برای ایجاد اتصال پایگاه داده به نمونه داخلی postgres-database استفاده خواهید کرد.
در Cloud Console، به Looker بروید و نشانی اینترنتی نمونه خود را انتخاب کنید که رابط کاربری Looker را باز می کند.
پس از راهاندازی، صفحه فرود در تصویر زیر به شما نمایش داده میشود.
به ADMIN → پایگاه داده → اتصالات → انتخاب افزودن اتصال بروید
جزئیات اتصال را در تصویر زیر پر کنید، CONNECT را انتخاب کنید
اکنون اتصال با موفقیت انجام شده است
20. اعتبار اتصال Looker
در بخش بعدی نحوه اعتبارسنجی اتصال Looker به پایگاه داده postgres در on-prem-vpc با استفاده از اکشن Looker 'test' و TCPDUMP را خواهید آموخت.
اگر زمان جلسه تمام شده است، از Cloud Shell وارد پایگاه داده postgres شوید.
در داخل 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
به ADMIN اتصال داده → پایگاه داده → اتصالات → انتخاب → آزمایش بروید
پس از انتخاب Test Looker با موفقیت به پایگاه داده postgres متصل می شود که در زیر نشان داده شده است:
به پایانه سیستم عامل بازگردید و اعتبارسنجی TCPDUMP تشخیص داده است که psc-range-looker به نمونه پایگاه داده postgres در محل متصل می شود.
یک یادداشت اضافه کنید که هر 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 که همچنان به آن اجازه می دهد تا عملکردهای مورد نیاز را انجام دهد.
- داده در حال انتقال بین Client و Looker UI و Looker to Database به صورت رمزگذاری شده با استفاده از 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 Admin اجازه میدهند تا نقشهای خاصی را تعریف کند که شامل مدل و مجموعه مجوز است و کنترل دسترسی دقیق به دادهها را ایجاد میکند.
- Looker از گزارشهای حسابرسی و گزارشهای دسترسی به داده پشتیبانی میکند که نشان میدهد چه کسی چه زمانی و کجا چه کاری انجام داده است. گزارشهای حسابرسی بهطور پیشفرض فعال هستند، در حالی که گزارشهای دسترسی به داده باید به صراحت فعال شوند.
- در حال حاضر VPC-SC از نمونه های Enterprise و Embed پشتیبانی می کند که فقط با 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 را از طریق شبکه ترکیبی پیکربندی و تأیید کردهاید که امکان برقراری ارتباط دادهها را در محیطهای داخلی و چند ابری فراهم میکند.
شما همچنین توانستید با استفاده از ابزار Lookers Connect 'Test' و TCPDUMP در نمونه postgres-database، اتصال Looker Cloud Core به پایگاه داده postgres را با موفقیت آزمایش کنید.
Cosmopup فکر می کند آموزش ها عالی هستند!!