Kết nối Looker Cloud qua mạng kết hợp

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ư cho các phiên bản đáp ứng các tiêu chí sau:

Sản phẩm bạn sẽ tạo ra

Trong hướng dẫn này, bạn sẽ xây dựng một mạng Looker riêng tư toàn diện trong một VPC độc lập có khả năng kết nối kết hợp với nhiều đám mây và trên máy.

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. 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

  1. Tạo một đám mây riêng ảo (VPC) độc lập trong us-central1
  2. Phân bổ một mạng con IP cho Quyền truy cập vào dịch vụ riêng tư
  3. Triển khai phiên bản Looker trong VPC độc lập
  4. Tạo mạng tại chỗ và mạng kết hợp
  5. Thông báo và xác thực dải IP của Looker qua BGP
  6. Tích hợp và xác thực hoạt động giao tiếp dữ liệu giữa Looker và Postgresql

Figure1

8436cc4802b670db.png

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 vpc tại chỗ và mạng kết hợp được 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 trên 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ợ triển khai cấu hình gcloud trong Cloud Shell.

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 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ì phiên bản 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 Trình định tuyến trên đám mây.

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ể cơ sở dữ liệu postgres sẽ được 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, 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 dịch vụ riêng tư là một kết nối riêng tư giữa mạng VPC của bạn và một mạng do Google hoặc 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à cung cấp dịch vụ sử dụng. Điều 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à cung cấp 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 (API kết nối dịch vụ) cho dự án của bạn trong Google Cloud Console. 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ơ cấu 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 một nhà cung cấp 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ư tuyến đường và quy tắc tường lửa, cho từng nhà sản xuất 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 phiên bản Looker (cốt lõi của Google Cloud)

Trước khi bắt đầu

Bật Looker API cho dự án của bạn trong Google Cloud Console. Khi bật API, bạn có thể cần làm mới trang của 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.

103601bca0b6ebe8.png

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 THỰC HIỆN

Điền Mã ứng dụng khách OAuth và Mã xác thực đã tạo trước đó.

b780ed751824176c.png

3fe880e26a81a756.png

91acffd74c68a067.pngS

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 thực thể 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.

5ac8a1b8b438dce6.png

6. Cập nhật mã ứng dụng OAuth 2.0

Trong phần sau, bạn cần cập nhật URI chuyển hướng được uỷ quyền của mã ứng dụng khách OAuth đã tạo trước đó bằng cách thêm /oauth2callback vào URL thực thể.

Sau khi hoàn tất, bạn có thể sử dụng URL 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 bài viết API &SERVICES → CREDENTIALS (API và dịch vụ)

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:

793c5b82ec34fb1f.png

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.

9d132a67c532279e.png

Sau khi khởi chạy, bạn sẽ thấy trang đích như trong ảnh chụp màn hình bên dưới xác nhận quyền truy cập của bạn vào Looker Cloud Core.

b77055fd674f8a69.png

8. Kết nối kết hợp

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).

Bộ định tuyến trên đám mây có thể thiết lập một phiên BGP qua đường hầm Cloud VPN để 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ạng con mới và thông báo các dải địa chỉ đó cho mạng ngang hàng.

Trong hướng dẫn này, bạn sẽ triển khai VPN HA giữa analytics-vpcon-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 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 GW VPN HA

Sử dụng bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS.

a3973b2bbb832bae.png

Tạo Trình định tuyến trên đám mây 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 cơ sở hạ tầng máy tính

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 hai đườ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 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

Tạo đường hầm VPN1

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 on-prem-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 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

Tạo đường hầm VPN1

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.

61c09b3d3102149d.png.

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 máy 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à liên kết ngang cho on-prem-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 máy 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 KẾT NỐI HỖN HỢP → VPN để xem thông tin chi tiết về đường hầm VPN.

ddd4a8f851d44fd6.png

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

57c7898390db4bcb.pngS

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ỗ . Trên bảng điều khiển, hãy chuyển đến Mạng VPC → Mạng VPC → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW

5b007e46a7c7026.pngS

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 cần tạo một thông báo tuyến tuỳ chỉnh từ analytics-cr-central1 cho mạng con PSA 192.168.0.0/22 (psa-range-looker). Thông báo này sẽ được quảng cáo đến môi trường tại chỗ và được cá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.

87f95ee3d1cd8521.pngS

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:

a987a76fd57ddedd.png

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 các tuyến đã nhập và xuất hiện tại.

Chuyển đến phần VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com

f6d9395712934cd8.png

Ả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ý.

86a0e8c3534c6986.pngS

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

a52de427fa73fb22.png

13. Cập nhật kết nối ngang hàng VPC

Chuyển đến phần VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com → CHỈNH SỬA

Chọn EXPORT CUSTOM ROUTES (XUẤT TUYẾN ĐƯỜNG TUỲ CHỈNH) → SAVE (LƯU)

a2309e4c3a7cee80.png

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.

47e953268d78a469.png

15. Tạo cơ sở dữ liệu postgres-database của 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 lệnh ssh đến 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ể cơ sở dữ liệu postgres.

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: 

Trong hệ điều hành, hãy thoát khỏi 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:

178364a8ee9b6233.png

sudo nano /etc/postgresql/15/main/pg_hba.conf

Trong phần sau, hãy bỏ ghi chú postgresql.conf để nghe tất cả địa chỉ IP &quot;*&quot; theo ảnh chụp màn hình bên dưới:

sudo nano /etc/postgresql/15/main/postgresql.conf

Trước:

aad52092c0a9408.png

Sau:

7e80b916d29e097c.png.

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 một 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 một VPC do Google quản lý, nhưng quyền truy cập vào DNS riêng tư của analytics-vpc được hỗ trợ thông qua việc kết nối ngang hàng vớ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.

Trong Cloud Shell, hãy tạo vùng riêng 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

Từ Cloud Shell, hậu tố DNS ngang hàng analytics.com. đến mạng lưới dịch vụ, nhờ đó 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 một kết nối Cơ sở dữ liệu với thực thể cơ sở dữ liệu postgres 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.

9d132a67c532279e.png.

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.

b77055fd674f8a69.png

Chuyển đến QUẢN TRỊ → CƠ SỞ DỮ LIỆU → KẾT NỐI → 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

c8cca15252c2020d.png

Hiện đã kết nối thành công

3e51b7e2cc62fb45.pngS

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 thao tác "test" (kiểm thử) của Looker 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 phần Kết nối dữ liệu QUẢN TRỊ → CƠ SỞ DỮ LIỆU → KẾT NỐI → Chọn → Kiểm thử

Sau khi bạn chọn Test (Kiểm thử), Looker sẽ kết nối thành công với cơ sở dữ liệu postgres như được chỉ ra bên dưới:

ef25b837b6a41fe.png

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 thực thể 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, giúp ghi lại ai đã làm gì, khi nào và ở đâu. 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á phiên bản Looker Cloud Core, Chuyển đến:

LOOKER → looker-tutorial → DELETE

e5a2e3af9e7ffd40.png

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 Looker qua mạng kết hợp, cho phép giao tiếp dữ liệu trên các môi trường trên máy và 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 công cụ "Test" của Looker Connect và TCPDUMP trong thực thể cơ sở dữ liệu postgres.

Cosmopup cho rằng các hướng dẫn này rất tuyệt vời!!

e6d3675ca7c6911f.jpeg

Tài liệu đọc thêm và video

Tài liệu tham khảo