Looker NEG SMTP truy cập Internet theo giao thức HTTPS hướng Nam của Looker PSC

1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ tạo một kết nối phía nam đến dịch vụ SMTP của Lookers bằng cách sử dụng bộ cân bằng tải proxy tcp nội bộ và nhóm điểm cuối mạng Internet (NEG) với FQDN notifications-pa.googleapis.com được gọi từ Looker PSC dưới dạng một Người dùng dịch vụ.

Private Service Connect là một chức năng của mạng Google Cloud, cho phép người tiêu dùng truy cập vào các dịch vụ được quản lý một cách riêng tư từ bên trong mạng VPC của mình. Tương tự, dịch vụ này cho phép nhà sản xuất dịch vụ được quản lý lưu trữ các dịch vụ này trong mạng VPC riêng của họ và cung cấp kết nối riêng tư cho người dùng. Ví dụ: khi dùng Private Service Connect để truy cập vào Looker, bạn là người sử dụng dịch vụ và Google là nhà sản xuất dịch vụ, như được đánh dấu trong Hình 1.

Hình 1.

145ea4672c3a3b14.png.

Quyền truy cập từ dưới lên (còn gọi là PSC đảo ngược) cho phép Người dùng tạo một Dịch vụ đã xuất bản dưới dạng Nhà sản xuất để cho phép Looker truy cập vào các điểm cuối tại chỗ, trong VPC, vào các dịch vụ được quản lý và Internet. Các kết nối hướng Nam có thể được triển khai ở bất kỳ khu vực nào, bất kể Looker PSC được triển khai ở đâu, như được nêu bật trong Hình 2.

Hình 2.

259493afd914f68b.png

Kiến thức bạn sẽ học được

  • Yêu cầu về mạng
  • Tạo dịch vụ nhà sản xuất Private Service Connect
  • Tạo điểm cuối Private Service Connect trong Looker
  • Thiết lập kết nối với dịch vụ SMTP của Looker

Bạn cần có

def88091b42bfe4d.png

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

Bạn cần thiết lập một mạng Producer, Looker-psc-demo, để triển khai trình cân bằng tải proxy tcp nội bộ và Internet NEG được xuất bản dưới dạng dịch vụ qua Private Service Connect (PSC). Sau khi phát hành, bạn sẽ thực hiện các thao tác sau để xác thực quyền truy cập vào dịch vụ Nhà sản xuất:

  • Tạo Điểm cuối PSC trong Looker được liên kết với Tệp đính kèm dịch vụ nhà sản xuất
  • Sử dụng Looker Console để tạo chế độ cài đặt email SMTP

3. Yêu cầu về mạng

Dưới đây là thông tin chi tiết về các yêu cầu về mạng cho mạng Nhà sản xuất, trong đó người dùng trong lớp học lập trình này là thực thể Looker PSC.

Thành phần

Mô tả

VPC (looker-psc-demo)

VPC chế độ tuỳ chỉnh

Mạng con PSC NAT

Các gói từ mạng VPC của người dùng được dịch bằng NAT nguồn (SNAT) để địa chỉ IP nguồn ban đầu của chúng được chuyển đổi thành địa chỉ IP nguồn từ mạng con NAT trong mạng VPC của nhà sản xuất.

Mạng con quy tắc chuyển tiếp PSC

Dùng để phân bổ địa chỉ IP cho Trình cân bằng tải proxy TCP nội bộ theo khu vực

Mạng con PSC NEG

Dùng để phân bổ địa chỉ IP cho Nhóm thiết bị đầu cuối mạng

Mạng con chỉ dành cho proxy

Mỗi proxy của trình cân bằng tải được chỉ định một địa chỉ IP nội bộ. Các gói được gửi từ proxy đến máy ảo hoặc điểm cuối phụ trợ có địa chỉ IP nguồn từ mạng con chỉ có proxy.

NEG Internet

Tài nguyên dùng để xác định phần phụ trợ bên ngoài cho trình cân bằng tải. Chỉ có thể truy cập vào điểm cuối qua Cloud VPN hoặc Cloud Interconnect.

Dịch vụ phụ trợ

Dịch vụ phụ trợ đóng vai trò là cầu nối giữa trình cân bằng tải và các tài nguyên phụ trợ. Trong hướng dẫn này, dịch vụ phụ trợ được liên kết với NEG Internet.

Cloud Router

Cloud NAT dựa vào Bộ định tuyến đám mây để có các chức năng mặt phẳng điều khiển chứ không dùng để quản lý phiên BGP.

Cloud NAT

Mạng Internet khu vực NEG sử dụng Cloud NAT để thu thập dữ liệu đầu ra từ Internet.

4. Cấu trúc liên kết của lớp học lập trình

a4eb7693cbdbdfd4.png

5. Thiết lập và yêu cầu

Thiết lập môi trường theo tốc độ của riêng bạn

  1. Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png.

  • Tên dự án là tên hiển thị cho người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật ứng dụng.
  • Mã dự án là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham khảo Mã dự án của mình (thường được xác định là PROJECT_ID). Nếu không thích mã đã tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Ngoài ra, bạn có thể thử cách riêng của mình để xem có thể sử dụng hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ được giữ nguyên trong suốt thời gian diễn ra dự án.
  • Đối với thông tin của bạn, có giá trị thứ ba, Project Number (Số dự án), mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ phải bật tính năng thanh toán trong Cloud Console để sử dụng API/tài nguyên trên đám mây. Việc tham gia lớp học lập trình này sẽ không tốn kém nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí sau khi hoàn tất hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Trong Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ trên cùng bên phải:

55efc1aaa7a4d3ad.pngS

Quá trình cấp phép và kết nối với môi trường chỉ mất vài phút. Sau khi hoàn tất, bạn sẽ thấy như sau:

7ffe5cbb04455448.png

Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả các công việc trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt gì cả.

6. Trước khi bắt đầu

Bật API

Bên trong Cloud Shell, hãy đảm bảo bạn đã thiết lập mã dự án:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Bật tất cả các dịch vụ cần thiết:

gcloud services enable compute.googleapis.com

7. Tạo mạng VPC cho nhà sản xuất

Mạng VPC

Trong Cloud Shell, hãy thực hiện như sau:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Tạo mạng con

Mạng con PSC sẽ được liên kết với Tệp đính kèm dịch vụ PSC nhằm mục đích Dịch địa chỉ mạng.

Bên trong Cloud Shell, hãy tạo Mạng con PSC NAT:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Bên trong Cloud Shell, hãy tạo mạng con cho quy tắc chuyển tiếp của nhà sản xuất:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Bên trong Cloud Shell, hãy tạo mạng con chỉ dành cho proxy theo khu vực của nhà sản xuất:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

Tạo cổng NAT công khai

Cổng NAT được bộ cân bằng tải proxy tcp nội bộ theo khu vực sử dụng cho lưu lượng truy cập Internet với tuỳ chọn cấu hình –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, do đó, cùng một NATGW sẽ không hỗ trợ lưu lượng truy cập Internet của GCE/GKE. Triển khai NAT GW bổ sung với –endpoint-types=ENDPOINT_TYPE_VM cho lưu lượng truy cập Internet của GCE/GKE.

Bên trong Cloud Shell, hãy tạo Cloud Router:

gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region

Bên trong Cloud Shell, hãy tạo cổng Cloud NAT cho phép truy cập Internet cho trình cân bằng tải proxy tcp:

gcloud compute routers nats create looker-psc-demo-natgw \
  --router=looker-psc-demo-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

Đặt trước địa chỉ IP của trình cân bằng tải

Bên trong Cloud Shell, hãy đặt trước một địa chỉ IP nội bộ cho trình cân bằng tải:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Trong Cloud Shell, hãy xem Địa chỉ IP được đặt trước.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Kết quả điểm dữ liệu:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Thiết lập NEG Internet

Tạo một NEG Internet và đặt –network-endpoint-type thành internet-fqdn-port (tên máy chủ và cổng mà bạn có thể truy cập vào phần phụ trợ bên ngoài).

Bên trong Cloud Shell, hãy tạo một NEG Internet dùng cho github.com

gcloud compute network-endpoint-groups create smtp-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

Bên trong Cloud Shell, hãy cập nhật NEG Internet smtp-internet-neg bằng FQDN notifications-pa.googleapis.com và cổng 443

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
    --region=$region

Tạo Chính sách tường lửa mạng và Quy tắc tường lửa

Trong Cloud Shell, hãy thực hiện như sau:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

Quy tắc tường lửa sau đây cho phép lưu lượng truy cập từ dải Mạng con NAT PSC đến tất cả các thực thể trong mạng.

Trong Cloud Shell, hãy thực hiện như sau:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. Tạo dịch vụ cho nhà sản xuất

Tạo thành phần Trình cân bằng tải

Bên trong Cloud Shell, hãy thực hiện như sau:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --region=$region

Trong Cloud Shell, hãy tạo một proxy TCP mục tiêu để định tuyến các yêu cầu đến dịch vụ phụ trợ:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

Trong cú pháp sau, hãy tạo quy tắc chuyển tiếp (trình cân bằng tải proxy tcp nội bộ).

Trong Cloud Shell, hãy thực hiện các thao tác sau:

gcloud compute forwarding-rules create producer-smtp-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

Tạo tệp đính kèm dịch vụ

Bên trong Cloud Shell, hãy tạo Tệp đính kèm dịch vụ, smtp-svc-Attach:

gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Tiếp theo, hãy lấy và ghi lại Tệp đính kèm dịch vụ được liệt kê trong URI selfLink bắt đầu bằng các dự án để định cấu hình điểm cuối PSC trong Looker.

selfie/

Bên trong Cloud Shell, hãy thực hiện như sau:

gcloud compute service-attachments describe smtp-svc-attachment --region=$region

Ví dụ:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '23100082169578472'
  low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr

Trong Cloud Console, hãy chuyển đến:

Dịch vụ mạng → Private Service Connect → Dịch vụ đã phát hành

b847b5ee22e3582e.png

b9a7d46c8dea4476.png

9. Thiết lập kết nối thiết bị đầu cuối PSC trong Looker

Trong phần sau, bạn sẽ liên kết Tệp đính kèm dịch vụ của nhà sản xuất với PSC Looker Core thông qua việc sử dụng cờ –psc-service-attachment trong Cloud Shell cho một miền.

Bên trong Cloud Shell, hãy tạo mối liên kết psc bằng cách cập nhật các tham số sau cho phù hợp với môi trường của bạn:

  • INSTANCE_NAME: Tên của phiên bản Looker (Lõi Google Cloud) của bạn.
  • DOMAIN_1: notifications-pa.googleapis.com
  • SERVICE_ATTACHMENT_1: URI được ghi lại khi mô tả Tệp đính kèm dịch vụ, smtp-svc-attachment
  • REGION: Khu vực nơi lưu trữ phiên bản Looker (Lõi Google Cloud).

Bên trong Cloud Shell, hãy thực hiện như sau:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Ví dụ:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region

Bên trong Cloud Shell, hãy xác thực API connectionStatus là " mà được chấp nhận", hãy cập nhật thông tin này bằng Looker PSC INSTANCE_NAME của bạn

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Ví dụ:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Ví dụ:

{
...........................
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "notifications-pa.googleapis.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-10-04T22:02:31.445761128Z"
}

Xác thực điểm cuối PSC trong Cloud Console

Trên Cloud Console, bạn có thể xác thực kết nối PSC

Trong Cloud Console, hãy chuyển đến:

Looker → Phiên bản Looker → Chi tiết

2d4684d722d31e4b.png

a7593db722f86642.png

10. Kiểm tra kết nối SMTP

Trong các bước sau, bạn sẽ sử dụng Looker Console để xác thực khả năng kết nối SMTP bằng cách tạo một báo cáo và kiểm thử SMTP.

Email kiểm thử

Looker gửi email bằng thông báo của máy chủ SMTP mặc định-pa.googleapis.com. Bạn không cần thực hiện thêm bước nào khác trong trường hợp này. Nếu bạn muốn sử dụng một máy chủ SMTP khác cho thông báo, vui lòng tham khảo phần cấu hình SMTP tuỳ chỉnh.

Mở Looker Console rồi chuyển đến:

Quản trị viên → Nền tảng → SMTP → Chọn Gửi email thử nghiệm

aacb31e399cec9b7.png

Dưới đây là email thử nghiệm nhận được từ Looker:

ff75669fb6993d58.png

Email báo cáo đã tạo

Chuyển đến mục sau:

Khám phá → Hoạt động hệ thống → Mức sử dụng API → Loại truy vấn API → Chạy

788f6d6d08f5f055.png

Kết quả điểm dữ liệu:

cebecdf5f2e968d1.png

Để gửi kết quả đến email của bạn, hãy chọn biểu tượng bánh răng

c6ddb0b234b58ed4.png

Chọn Gửi để mở một cửa sổ mới.

15b45c5c1bc1b09b.png.

Chèn địa chỉ email của bạn rồi chọn gửi

86970bb94247ed62.png

Dưới đây là email thử nghiệm nhận được từ Looker:

c925c8917f8078b3.png

11. Cấu hình SMTP tuỳ chỉnh

Trong hướng dẫn này, máy chủ SMTP của Looker được dùng để gửi thông báo qua email thông qua FQDN notifications-pa.googleapis.com và Cloud NAT thực hiện việc truy cập Internet. Để sử dụng máy chủ SMTP của riêng bạn, hãy tạo một tệp đính kèm dịch vụ mới với những sửa đổi sau:

Cập nhật NEG Internet bằng FQDN của máy chủ SMTP:

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
    --region=$region

Chỉ định miền SMTP khi cập nhật Thực thể PSC của Looker:

  • INSTANCE_NAME: Tên của phiên bản Looker (Google Cloud core).
  • DOMAIN_1: <FQDN của máy chủ SMTP>
  • SERVICE_ARROW_1: URI được chụp khi mô tả Tệp đính kèm dịch vụ, smtp-svc-Attach
  • REGION (KHU VỰC): Khu vực lưu trữ thực thể Looker (Google Cloud core) của bạn.
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Để sử dụng một dịch vụ email khác, hãy chọn Sử dụng chế độ cài đặt thư tuỳ chỉnh.

a3fe7a0b66c80402.png

12. Dọn dẹp

Xoá các thành phần của lớp học từ một thiết bị đầu cuối Cloud Shell

gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-smtp-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q

gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q

gcloud compute addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud compute networks delete looker-psc-demo -q

13. 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 với Dịch vụ SMTP của Looker bằng Looker Console do Private Service Connect cung cấp.

Bạn đã tạo cơ sở hạ tầng nhà sản xuất, tìm hiểu cách tạo NEG Internet, Dịch vụ nhà sản xuất và điểm cuối PSC Looker cho phép kết nối với Dịch vụ nhà sản xuất.

Cosmopup cho rằng các lớp học lập trình rất tuyệt vời!!

c911c127bffdee57.jpeg

Tiếp theo là gì?

Hãy xem một số lớp học lập trình này...

Tài liệu đọc thêm & Video

Tài liệu tham khảo