1. Giới thiệu
Looker (Lõi Google Cloud) cung cấp dịch vụ cấp phép, định cấu hình và quản lý phiên bản Looker từ bảng điều khiển Google Cloud một cách đơn giản và đơn giản. Bạn cũng có thể thực hiện một số thao tác quản trị thực thể trên bảng điều khiển.
Hiện có ba cấu hình mạng cho các thực thể Looker (Lõi Google Cloud):
- Công cộng: Kết nối mạng sử dụng địa chỉ IP bên ngoài có thể truy cập Internet.
- Riêng tư: Kết nối mạng sử dụng địa chỉ IP Đám mây riêng tư ảo (VPC) nội bộ do Google lưu trữ.
- Công cộng và riêng tư: Kết nối mạng sử dụng cả địa chỉ IP công khai và địa chỉ IP riêng tư, nơi lưu lượng truy cập đến sẽ được định tuyến qua IP công khai và lưu lượng đi sẽ được định tuyến qua IP riêng tư.
Trong hướng dẫn này, bạn sẽ triển khai một Mạng riêng toàn diện để hỗ trợ kết nối Looker với máy tính tại chỗ qua VPN HA. Các ứng dụng này có thể được sao chép để đáp ứng yêu cầu của bạn về kết nối đa đám mây và tại cơ sở.
Looker (Lõi Google Cloud) hỗ trợ IP riêng tư đối với các phiên bản đáp ứng các tiêu chí sau:
- Phiên bản thực thể phải là phiên bản Enterprise hoặc phiên bản Nhúng.
Sản phẩm bạn sẽ tạo ra
Trong hướng dẫn này, bạn sẽ xây dựng quy trình triển khai mạng Looker riêng tư toàn diện trong một đám mây riêng ảo (VPC) độc lập có khả năng kết nối kết hợp giữa nhiều đám mây và tại cơ sở hạ tầng riêng.
Bạn sẽ thiết lập một mạng lưới VPC có tên là on-prem-vpc
để đại diện cho một môi trường tại cơ sở hạ tầng riêng. Để triển khai, vpc tại chỗ sẽ không tồn tại mà thay vào đó, hệ thống sẽ sử dụng kết nối mạng kết hợp với trung tâm dữ liệu tại chỗ hoặc nhà cung cấp dịch vụ đám mây.
Dưới đây là các bước chính của hướng dẫn
- Tạo một đám mây riêng ảo (VPC) độc lập trong us-central1
- Phân bổ một mạng con IP cho Quyền truy cập vào dịch vụ riêng tư
- Triển khai phiên bản Looker trong VPC độc lập
- Tạo mạng tại chỗ và mạng kết hợp
- Thông báo và xác thực dải IP của Looker qua BGP
- Tích hợp và xác thực hoạt động giao tiếp dữ liệu Looker và Postgresql
Figure1
Kiến thức bạn sẽ học được
- Cách tạo VPC và kết nối mạng kết hợp liên kết
- Cách triển khai Looker trong một vpc độc lập
- Cách tạo mạng kết hợp tại chỗ và liên kết
- Kết nối VPN tại cơ sở với analytics-vps qua VPN HA
- Cách quảng cáo mạng con Looker qua mạng kết hợp
- Cách giám sát cơ sở hạ tầng mạng kết hợp
- Cách tích hợp cơ sở dữ liệu Postgresql với Looker Cloud Core
Bạn cần có
- Dự án trong Google Cloud
Quyền quản lý danh tính và quyền truy cập (IAM)
2. Trước khi bắt đầu
Cập nhật dự án để hỗ trợ hướng dẫn
Hướng dẫn này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Thiết lập VPC
Tạo tệp analytics-vpc
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
Tạo tại chỗ
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Tạo mạng con cơ sở dữ liệu Postgresql
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Cấu hình Cloud Router và NAT
Cloud NAT được dùng trong hướng dẫn cài đặt gói phần mềm vì thực thể máy ảo cơ sở dữ liệu không có địa chỉ IP bên ngoài.
Bên trong Cloud Shell, hãy tạo Cloud Router.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Bên trong Cloud Shell, hãy tạo cổng 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
Tạo thực thể kiểm thử cơ sở dữ liệu
Tạo một thực thể postgres-database sẽ dùng để kiểm thử và xác thực khả năng kết nối với Looker.
Bên trong Cloud Shell, hãy tạo một thực thể.
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"
Tạo quy tắc về tường lửa
Để cho phép IAP kết nối với các phiên bản máy ảo của bạn, hãy tạo một quy tắc tường lửa:
- Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải ô này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Của 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. Quyền truy cập vào dịch vụ riêng tư
Quyền truy cập vào các dịch vụ riêng tư là kết nối riêng tư giữa mạng VPC của bạn và mạng do Google hoặc một bên thứ ba sở hữu. Google hoặc bên thứ ba, các pháp nhân cung cấp dịch vụ, còn được gọi là nhà sản xuất dịch vụ. Looker Cloud Core là một nhà sản xuất dịch vụ.
Kết nối riêng tư cho phép các thực thể máy ảo trong mạng VPC và những dịch vụ mà bạn truy cập để giao tiếp độc quyền bằng cách sử dụng địa chỉ IP nội bộ.
Ở cấp độ cao, để sử dụng quyền truy cập vào các dịch vụ riêng tư, bạn phải phân bổ một dải địa chỉ IP (khối CIDR) trong mạng VPC, sau đó tạo kết nối riêng tư đến một nhà sản xuất dịch vụ.
Phân bổ dải địa chỉ IP cho các dịch vụ
Trước khi tạo kết nối riêng tư, bạn phải phân bổ một dải địa chỉ IPv4 để mạng VPC của nhà tạo dịch vụ sử dụng. Việc này đảm bảo không có xung đột địa chỉ IP giữa mạng VPC của bạn và mạng của nhà sản xuất dịch vụ.
Khi bạn phân bổ một dải ô trong mạng VPC, dải ô đó không đủ điều kiện cho mạng con (phạm vi chính và phụ) và các đích đến của tuyến tĩnh tuỳ chỉnh.
Không hỗ trợ việc sử dụng dải địa chỉ IPv6 với quyền truy cập vào các dịch vụ riêng tư.
Bật Service Networking API cho dự án của bạn trong bảng điều khiển Google Cloud. Khi bật API, có thể bạn cần phải làm mới trang bảng điều khiển để xác nhận rằng API đó đã được bật.
Tạo quá trình phân bổ IP
Để chỉ định dải địa chỉ và độ dài tiền tố (mặt nạ mạng con), hãy sử dụng địa chỉ và cờ có độ dài tiền tố. Ví dụ: để phân bổ khối CIDR 192.168.0.0/22, hãy chỉ định 192.168.0.0 cho địa chỉ và 22 cho độ dài tiền tố.
Bên trong Cloud Shell, hãy tạo cơ chế phân bổ IP cho 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
Bên trong Cloud Shell, hãy xác thực hoạt động phân bổ IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Ví dụ:
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
Tạo kết nối riêng tư
Sau khi tạo một dải ô được phân bổ, bạn có thể tạo một kết nối riêng tư với nhà sản xuất dịch vụ Looker Cloud Core. Kết nối riêng tư sẽ thiết lập kết nối Kết nối ngang hàng mạng VPC giữa mạng VPC của bạn và mạng của nhà sản xuất dịch vụ sau khi thực thể Looker được thiết lập.
Kết nối riêng tư là mối quan hệ một với một giữa mạng VPC của bạn và một nhà sản xuất dịch vụ. Nếu một nhà sản xuất dịch vụ duy nhất cung cấp nhiều dịch vụ, thì bạn chỉ cần một kết nối riêng tư cho mọi dịch vụ của nhà sản xuất đó.
Nếu bạn kết nối với nhiều nhà sản xuất dịch vụ, hãy sử dụng mức phân bổ riêng biệt cho từng nhà sản xuất dịch vụ. Phương pháp này giúp bạn quản lý các chế độ cài đặt mạng, chẳng hạn như các tuyến và quy tắc tường lửa, cho từng trình tạo dịch vụ.
Bên trong Cloud Shell, hãy tạo một kết nối riêng tư, ghi lại tên thao tác.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Ví dụ:
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.
Bên trong Cloud Shell, hãy kiểm tra xem thao tác có thành công hay không, thay thế ACTIVITY_NAME bằng tên được tạo ở bước trước.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
Ví dụ:
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. Tạo một thực thể Looker (Google Cloud Core)
Trước khi bắt đầu
Bật API Looker cho dự án của bạn trong bảng điều khiển Google Cloud. Khi bật API, có thể bạn cần phải làm mới trang bảng điều khiển để xác nhận rằng API đó đã được bật.
Thiết lập một ứng dụng OAuth để xác thực và truy cập vào thực thể đó.
Trong phần sau, bạn sẽ cần dùng Mã ứng dụng khách OAuth và Khoá bí mật để tạo thực thể Looker.
Không bắt buộc phải có nguồn gốc JavaScript và URI chuyển hướng được phép.
Trong Cloud Console, hãy tạo một phiên bản dựa trên ảnh chụp màn hình được cung cấp.
Chuyển đến phần TÌM KIẾM → TẠO MỘT TÌNH HUỐNG
Điền Mã ứng dụng khách OAuth và Khoá bí mật đã tạo trước đó.
Chọn TẠO
Khi phiên bản đang được tạo, bạn sẽ được chuyển hướng đến trang Instances (Phiên bản) trong bảng điều khiển. Bạn có thể cần phải làm mới trang để xem trạng thái của phiên bản mới. Bạn cũng có thể xem hoạt động tạo phiên bản của mình bằng cách nhấp vào biểu tượng thông báo trong trình đơn của bảng điều khiển Google Cloud. Trong khi phiên bản của bạn đang được tạo, biểu tượng thông báo trong trình đơn của bảng điều khiển Google Cloud sẽ có một biểu tượng tải xung quanh.
Sau khi tạo phiên bản Looker, một URL phiên bản sẽ được tạo. Ghi lại URL.
6. Cập nhật mã ứng dụng OAuth 2.0
Trong phần sau, bạn cần cập nhật mã ứng dụng khách OAuth đã tạo trước đó URI chuyển hướng được uỷ quyền bằng cách thêm /oauth2callback
vào URL của thực thể.
Sau khi hoàn tất, bạn có thể sử dụng URL của phiên bản để đăng nhập vào giao diện người dùng Looker.
Bên trong Cloud Console, hãy chuyển đến phần API và DỊCH VỤ → TÌNH TRẠNG uy tín
Chọn mã ứng dụng khách OAuth 2.0 rồi cập nhật URL phiên bản của bạn, ví dụ như dưới đây:
7. Xác thực quyền truy cập vào Looker
Trong Cloud Console, hãy chuyển đến Looker rồi chọn URL thực thể để mở giao diện người dùng Looker.
Sau khi ra mắt, bạn sẽ thấy trang đích theo ảnh chụp màn hình dưới đây, trong đó xác nhận quyền truy cập của bạn vào Looker Cloud Core.
8. Kết nối lai
Trong phần sau, bạn sẽ tạo một Bộ định tuyến đám mây cho phép bạn trao đổi động các tuyến giữa Đám mây riêng ảo (VPC) và mạng ngang hàng bằng cách sử dụng Giao thức cổng nối biên (BGP).
Cloud Router có thể thiết lập phiên BGP qua một đường hầm VPN trên đám mây để kết nối các mạng của bạn. Tính năng này tự động tìm hiểu các dải địa chỉ IP mới của mạng con và thông báo chúng đến mạng ngang hàng của bạn.
Trong hướng dẫn này, bạn sẽ triển khai VPN HA giữa analytics-vpc và on-prem-vpc để minh hoạ khả năng kết nối riêng tư với Looker.
Tạo HA VPN GW cho analytics-vpc
Khi mỗi cổng vào được tạo, 2 địa chỉ IPv4 bên ngoài sẽ được tự động phân bổ, mỗi địa chỉ cho một giao diện cổng vào. Ghi lại các địa chỉ IP này để sử dụng sau này trong các bước định cấu hình.
Bên trong Cloud Shell, hãy tạo HA VPN GW
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
Tạo HA VPN GW cho on-prem-vpc
Khi mỗi cổng vào được tạo, 2 địa chỉ IPv4 bên ngoài sẽ được tự động phân bổ, mỗi địa chỉ cho một giao diện cổng vào. Ghi lại các địa chỉ IP này để sử dụng sau này trong các bước định cấu hình.
Bên trong Cloud Shell, hãy tạo HA VPN GW.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Xác thực việc tạo HA VPN GW
Sử dụng bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS.
Tạo Cloud Router cho analytics-vpc
Bên trong Cloud Shell, hãy tạo Cloud Router nằm ở us-central1
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Tạo Cloud Router cho on-prem-vpc
Bên trong Cloud Shell, hãy tạo Cloud Router nằm ở us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Tạo đường hầm VPN cho analytics-vpc
Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng VPN HA.
Tạo đường hầm VPN00
Bên trong Cloud Shell, hãy tạo đường hầm0:
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
Tạo đường hầm VPN 1
Bên trong Cloud Shell, hãy tạo đường hầm 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
Tạo đường hầm VPN cho tại chỗ
Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng VPN HA.
Tạo đường hầm VPN00
Bên trong Cloud Shell, hãy tạo đường hầm0:
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
Tạo đường hầm VPN 1
Bên trong Cloud Shell, hãy tạo đường hầm 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
Xác thực việc tạo đường hầm vpn
Bằng cách sử dụng bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY → VPN → CLOUD VPN TROUNDS.
9. Thiết lập hàng xóm BGP
Tạo phiên BGP
Trong phần này, bạn sẽ định cấu hình giao diện Cloud Router và BGP ngang hàng.
Tạo giao diện BGP và kết nối ngang hàng cho analytics-vpc
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng 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
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng 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
Tạo giao diện BGP và kết nối ngang hàng cho tại chỗ-vpc
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng 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
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng 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
Chuyển đến phần Kết nối kết hợp → VPN để xem thông tin chi tiết về đường hầm VPN.
Xác thực các tuyến đã học được analytics-vpc qua VPN HA
Vì các đường hầm HA VPN và phiên BGP được thiết lập, nên các tuyến từ on-prem-vpc sẽ được học từ analytics-vpc. Sử dụng bảng điều khiển, chuyển đến Mạng VPC → Mạng VPC → analytics-vpc → ROUTES → REGION → us-central1 → VIEW
Quan sát analytics-vpc đã học được các tuyến đường từ cơ sở dữ liệu on-prem-vpc-subnet-us-central1 172.16.10.0/27
Xác thực rằng on-prem-vpc chưa học được các tuyến qua HA VPN
analytics-vpc không có mạng con, do đó, Cloud Router sẽ không quảng cáo bất kỳ mạng con nào cho tại chỗ . Sử dụng bảng điều khiển, chuyển đến Mạng VPC → Mạng VPC → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW
10. Quảng cáo mạng con Looker cho cơ sở hạ tầng riêng
Mạng con Quyền truy cập dịch vụ riêng tư (PSA) của Looker không được bộ định tuyến đám mây analytics-cr-us-central1 quảng cáo tự động vì mạng con được chỉ định cho PSA, chứ không phải cho VPC.
Bạn sẽ cần tạo một quảng cáo định tuyến tuỳ chỉnh từ analytics-cr-central1 cho mạng con PSA 192.168.0.0/22 (psa-range-looker). Quảng cáo này sẽ được quảng cáo cho môi trường tại cơ sở hạ tầng riêng và được khối lượng công việc sử dụng để truy cập vào Looker.
Trong bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1, rồi chọn CHỈNH SỬA.
Trong mục Tuyến đường được quảng cáo, hãy chọn mục Tạo tuyến đường tuỳ chỉnh, cập nhật các trường theo ví dụ bên dưới, rồi chọn XONG,sau đó nhấp vào LƯU.
11. Xác thực rằng tại chỗ-vpc đã học được mạng con Looker
Giờ đây, tại địa điểm thực tế, vpc sẽ có thể truy cập vào mạng con Looker PSA vì mạng này được quảng cáo qua analytics-cr-us-central1 dưới dạng một quảng cáo tuyến đường tuỳ chỉnh.
Sử dụng bảng điều khiển, chuyển đến MẠNG VPC → MẠNG VPC → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW
Quan sát các tuyến Looker được quảng cáo từ analytics-vpc:
12. Xác thực kết nối ngang hàng VPC hiện tại
Kết nối giữa Looker Cloud Core và analytics-vpc thông qua kết nối ngang hàng VPC, cho phép trao đổi các tuyến tuỳ chỉnh học được thông qua BGP. Trong hướng dẫn này, analytics-vpc sẽ cần xuất bản các tuyến mà nền tảng tại chỗ đã học lên Looker. Để bật chức năng này, kết nối ngang hàng VPC yêu cầu cập nhật để xuất các tuyến tuỳ chỉnh.
Xác thực tuyến đã nhập và xuất hiện tại.
Chuyển đến VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com
Ảnh chụp màn hình dưới đây trình bày chi tiết về analytics-vpc nhập trình xem psa-range-looker từ mạng dịch vụ vpc ngang hàng do Google quản lý.
Chọn EXPORTED ROUTES trả về không có tuyến nào được xuất sang mạng VPC ngang hàng vì 1) Mạng con không được định cấu hình trong analytics-vpc 2) Chưa chọn xuất tuyến tuỳ chỉnh
13. Cập nhật kết nối ngang hàng VPC
Chuyển đến VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com → CHỈNH SỬA
Chọn XUẤT BẢN ĐƯỜNG TÙY CHỈNH → LƯU
14. Xác thực kết nối ngang hàng VPC đã cập nhật
Xác thực tuyến đã xuất.
Chuyển đến VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com
Khi chọn EXPORTED ROUTES, các tuyến tại chỗ (mạng con cơ sở dữ liệu 172.16.10.0/27) sẽ được xuất sang Looker lưu trữ mạng VPC ngang hàng bằng analytics-vpc.
15. Tạo cơ sở dữ liệu Postgres bằng Looker
Trong phần sau, bạn sẽ thực hiện SSH vào vm postgres-database bằng Cloud Shell.
Bên trong Cloud Shell, hãy thực hiện một thao tác ssh với thực thể cơ sở dữ liệu postgres**.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Bên trong hệ điều hành, hãy xác định và ghi lại địa chỉ IP (ens4) của thực thể postgres-database.
ip a
Ví dụ:
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
Bên trong hệ điều hành, hãy đăng nhập vào postgresql.
sudo -u postgres psql postgres
Bên trong hệ điều hành, hãy nhập lời nhắc về mật khẩu.
\password postgres
Bên trong hệ điều hành, hãy đặt mật khẩu thành postgres (nhập cùng một mật khẩu hai lần)
postgres
Ví dụ:
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:
Bên trong hệ điều hành, hãy thoát postgres.
\q
Ví dụ:
postgres=# \q
user@postgres-database:~$
Trong phần sau, bạn sẽ chèn địa chỉ IP của phiên bản postgres-database và mạng con Looker Private Google Access (192.168.0.0/22) trong tệp pg_hba.conf theo kết nối cục bộ IPv4 theo ảnh chụp màn hình dưới đây:
sudo nano /etc/postgresql/15/main/pg_hba.conf
Trong phần sau, hãy huỷ nhận xét postgresql.conf để nghe tất cả ‘*' Địa chỉ IP theo ảnh chụp màn hình bên dưới:
sudo nano /etc/postgresql/15/main/postgresql.conf
Trước:
Sau:
Bên trong hệ điều hành, hãy khởi động lại dịch vụ postgresql.
sudo service postgresql restart
Bên trong hệ điều hành, hãy xác thực trạng thái postgresql là đang hoạt động.
sudo service postgresql status
Ví dụ:
Bên trong hệ điều hành, hãy xác thực trạng thái postgresql là đang hoạt động.
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. Tạo cơ sở dữ liệu postgres
Trong phần sau, bạn sẽ tạo một cơ sở dữ liệu postgres có tên là postgres_looker và schema Lookerer_schema dùng để xác thực trình tìm kiếm cho khả năng kết nối tại cơ sở hạ tầng riêng.
Bên trong hệ điều hành, hãy đăng nhập vào postgres.
sudo -u postgres psql postgres
Bên trong hệ điều hành, hãy tạo cơ sở dữ liệu.
create database postgres_looker;
Bên trong hệ điều hành, hãy liệt kê cơ sở dữ liệu.
\l
Bên trong hệ điều hành, hãy tạo giao diện người dùng bằng trình kiểm tra mật khẩu
create user postgres_looker with password 'postgreslooker';
Bên trong hệ điều hành, hãy kết nối với cơ sở dữ liệu.
\c postgres_looker;
Bên trong hệ điều hành, hãy tạo giản đồ tìm kiếm giản đồ rồi thoát đến lời nhắc Cloud Shell.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Ví dụ:
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
Thoát khỏi hệ điều hành để chuyển bạn về đám mây shell.
\q
exit
17. Tạo tường lửa trong on-prem-vpc
Trong phần sau, hãy tạo tường lửa Ingress có tính năng ghi nhật ký, cho phép mạng con Looker giao tiếp với thực thể Postgres-database.
Trên Cloud Shell, hãy tạo tường lửa tại chỗ.
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. Tạo DNS riêng trong analytics-vpc
Mặc dù Looker được triển khai trong VPC do Google quản lý, nhưng quyền truy cập vào DNS riêng của analytics-vpc được hỗ trợ thông qua kết nối ngang hàng thông qua kết nối mạng dịch vụ.
Trong phần sau, bạn sẽ tạo một Vùng DNS riêng trong analytics-vpc bao gồm một bản ghi A của phiên bản postgres-database Tên miền đủ điều kiện (postgres.analytics.com)
và địa chỉ IP.
Trên Cloud Shell, hãy tạo vùng riêng tư 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"
Trên Cloud Shell, hãy xác định Địa chỉ IP của thực thể postgres-database.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
Ví dụ:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
Trên Cloud Shell, hãy tạo bản ghi A và nhớ thêm Địa chỉ IP đã xác định trước đó.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
Ví dụ:
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
Trên Cloud Shell, hãy truy cập vào trang web ngang hàng dns-suffix analytics.com. đối với kết nối mạng dịch vụ, do đó cho phép Looker truy cập vào vùng riêng tư analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Tích hợp Looker với cơ sở dữ liệu Postgres postgres
Trong phần sau, bạn sẽ sử dụng Cloud Console để tạo kết nối Cơ sở dữ liệu với thực thể Postgres-database tại chỗ.
Trong Cloud Console, hãy chuyển đến Looker rồi chọn URL thực thể để mở giao diện người dùng Looker.
Sau khi khởi chạy, bạn sẽ thấy trang đích theo ảnh chụp màn hình bên dưới.
Chuyển đến mục QUẢN TRỊ → DATABASE → CONNECTIONS → Chọn THÊM KẾT NỐI
Điền thông tin kết nối theo ảnh chụp màn hình dưới đây, sau đó chọn KẾT NỐI
Hiện đã kết nối thành công
20. Xác thực khả năng kết nối của Looker
Trong phần sau, bạn sẽ tìm hiểu cách xác thực khả năng kết nối của Looker với cơ sở dữ liệu Postgres trong on-prem-vpc bằng cách sử dụng "kiểm thử" của Looker hành động và TCPDUMP.
Trên Cloud Shell, hãy đăng nhập vào postgres-database nếu phiên đã hết thời gian chờ.
Bên trong Cloud Shell, hãy thực hiện như sau:
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"
Từ hệ điều hành, tạo bộ lọc TCPDUMP với mạng con psa-range-looker 192.168.0.0/22
sudo tcpdump -i any net 192.168.0.0/22 -nn
Chuyển đến mục QUẢN TRỊ → DATABASE → CONNECTIONS → Chọn → Kiểm tra về kết nối dữ liệu
Sau khi chọn Kiểm thử, Looker sẽ kết nối thành công với cơ sở dữ liệu postgres như nêu dưới đây:
Quay lại thiết bị đầu cuối của hệ điều hành rồi xác thực TCPDUMP đã xác định được trình xem phạm vi psc đang kết nối với thực thể cơ sở dữ liệu Postgres tại chỗ.
Thêm một lưu ý rằng mọi IP trong phạm vi PSA sẽ hiển thị từ 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. Đề xuất về bảo mật
Có một số đề xuất bảo mật và phương pháp hay nhất liên quan đến việc bảo mật cơ sở dữ liệu Looker và Postgres. Các cách này bao gồm:
- Thiết lập các quyền đối với tài khoản cơ sở dữ liệu có đặc quyền tối thiểu cho Looker mà vẫn thực hiện được các chức năng cần thiết.
- Dữ liệu được truyền giữa Giao diện người dùng ứng dụng và giao diện người dùng Looker, cũng như từ Looker sang Cơ sở dữ liệu được mã hoá bằng TLS 1.2 trở lên
- Theo mặc định, dữ liệu tĩnh được mã hoá. Khách hàng cũng có thể tận dụng CMEK cho các phiên bản Looker ( https://cloud.google.com/looker/docs/looker-core-cmek) và cho Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek)
- Kiểm soát quyền truy cập của Looker – Quản trị viên Looker có thể kiểm soát những việc mà một nguyên tắc hoặc nhóm người dùng có thể xem và làm trong Looker bằng cách cấp quyền truy cập vào nội dung, quyền truy cập dữ liệu và quyền sử dụng tính năng. Các lựa chọn này cho phép Quản trị viên Looker xác định vai trò cụ thể, bao gồm cả Mô hình và tập hợp quyền, đồng thời tạo chế độ kiểm soát quyền truy cập chi tiết vào dữ liệu.
- Looker hỗ trợ cả Nhật ký kiểm tra và Nhật ký truy cập dữ liệu. Nhật ký này ghi lại việc ai đã làm gì, thời gian và địa điểm nào. Nhật ký kiểm tra được bật theo mặc định, còn nhật ký truy cập dữ liệu cần được bật một cách rõ ràng.
- Hiện tại, VPC-SC hỗ trợ các thực thể Enterprise và Nhúng được định cấu hình chỉ bằng IP riêng
22. Dọn dẹp
Xoá thực thể Looker Cloud Core, chuyển đến:
NGƯỜI XEM → hướng dẫn dành cho người xem → XOÁ
Trên Cloud Shell, hãy xoá các thành phần hướng dẫn.
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. Xin chúc mừng
Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công khả năng kết nối của Looker qua mạng kết hợp để có thể giao tiếp dữ liệu trên cơ sở hạ tầng riêng và môi trường nhiều đám mây.
Bạn cũng có thể kiểm thử thành công khả năng kết nối của Looker Cloud Core với cơ sở dữ liệu postgres bằng cách sử dụng Looker "Test" và TCPDUMP trong thực thể postgres-database.
Cosmopup cho rằng các video hướng dẫn rất tuyệt vời!!
Tài liệu đọc thêm & Video
- Giới thiệu bước phát triển tiếp theo của Looker
- Di chuyển sang GCP? Trước tiên: VPC
- Định tuyến động bằng Bộ định tuyến đám mây