Định cấu hình Private Google Access trong Firestore có khả năng tương thích với MongoDB

Trang này mô tả cách bật và định cấu hình Quyền truy cập riêng tư vào Google trong Cloud Firestore.

Giới thiệu về tính năng Truy cập riêng tư vào Google trong Cloud Firestore

Theo mặc định, khi một máy ảo Compute Engine thiếu địa chỉ IP bên ngoài được chỉ định cho giao diện mạng, máy ảo đó chỉ có thể gửi gói đến các đích đến địa chỉ IP nội bộ khác. Bạn có thể cho phép các máy ảo này kết nối với dịch vụ Cloud Firestore bằng cách bật tính năng Truy cập riêng tư vào Google trên mạng con mà giao diện mạng của máy ảo sử dụng.

Các dịch vụ và giao thức áp dụng

  • Hướng dẫn trong bài viết này chỉ áp dụng cho Cloud Firestore.

  • Miền mặc định và miền VIP mà Cloud Firestore sử dụng cũng như dải IP của các miền này chỉ hỗ trợ giao thức MongoDB trên cổng 443. Tất cả các giao thức khác đều không được hỗ trợ.

Yêu cầu về mạng

Giao diện máy ảo có thể truy cập vào các API và dịch vụ của Google thông qua mạng nội bộ của Google bằng cách sử dụng tính năng Truy cập riêng tư vào Google nếu đáp ứng tất cả các điều kiện sau:

  • Giao diện máy ảo được kết nối với một mạng con đã bật tính năng Truy cập riêng tư vào Google.

  • Giao diện máy ảo không được chỉ định địa chỉ IP ngoài.

  • Địa chỉ IP nguồn của các gói được gửi từ máy ảo khớp với một trong các địa chỉ IP sau.

    • Địa chỉ IPv4 nội bộ chính của giao diện máy ảo
    • Địa chỉ IPv4 nội bộ từ dải IP đại diện

Một máy ảo có địa chỉ IPv4 bên ngoài được gán cho giao diện mạng của máy ảo đó sẽ không cần dùng tính năng Truy cập riêng tư vào Google để kết nối với các API và dịch vụ của Google. Tuy nhiên, mạng VPC phải đáp ứng các yêu cầu về việc truy cập vào các API và dịch vụ của Google.

Quyền IAM

Chủ sở hữu dự án, người chỉnh sửa và các chủ thể IAM có vai trò Quản trị viên mạng có thể tạo hoặc cập nhật mạng con và chỉ định địa chỉ IP.

Để biết thêm thông tin về các vai trò, hãy đọc tài liệu về vai trò IAM.

Ghi nhật ký

Cloud Logging ghi lại tất cả yêu cầu API được thực hiện từ các phiên bản máy ảo trong mạng con đã bật tính năng Truy cập riêng tư vào Google. Mục nhập nhật ký xác định nguồn của yêu cầu API là địa chỉ IP nội bộ của thực thể gọi.

Bạn có thể định cấu hình để báo cáo tổng hợp hằng tháng và báo cáo mức sử dụng hằng ngày được gửi đến một bộ chứa Cloud Storage. Hãy xem trang Xem báo cáo mức sử dụng để biết thông tin chi tiết.

Tóm tắt cấu hình

Bảng sau đây tóm tắt các cách bạn có thể định cấu hình Quyền truy cập riêng tư vào Google trong Cloud Firestore. Để biết thêm thông tin hướng dẫn chi tiết, hãy xem phần Cấu hình mạng.

Lựa chọn về miền Dải IP Cấu hình DNS Cấu hình định tuyến Cấu hình tường lửa

Miền mặc định (firestore.goog)

Các miền mặc định được dùng khi bạn không định cấu hình bản ghi DNS cho restricted.firestore.goog.

136.124.0.0/23 Bạn truy cập vào dịch vụ Cloud Firestore thông qua địa chỉ IP công khai của dịch vụ đó, vì vậy, bạn không cần phải thiết lập cấu hình DNS đặc biệt.

Kiểm tra để đảm bảo mạng VPC của bạn có thể định tuyến lưu lượng truy cập đến các dải địa chỉ IP mà dịch vụ Cloud Firestore sử dụng.

  • Cấu hình cơ bản: Xác nhận rằng bạn có các tuyến mặc định với hop tiếp theo default-internet-gateway và dải đích 0.0.0.0/0. Tạo các tuyến đường đó nếu chúng bị thiếu.
  • Cấu hình tuỳ chỉnh: Tạo tuyến đường đến dải địa chỉ IP 136.124.0.0/23.

Kiểm tra để đảm bảo quy tắc tường lửa của bạn cho phép lưu lượng truy cập đi đến dải địa chỉ IP 136.124.0.0/23.

Quy tắc tường lửa cho phép lưu lượng truy cập đi mặc định sẽ cho phép lưu lượng truy cập này, nếu không có quy tắc nào có mức độ ưu tiên cao hơn chặn lưu lượng truy cập này.

restricted.firestore.goog

Sử dụng restricted.firestore.goog để truy cập vào dịch vụ Cloud Firestore bằng cách chỉ sử dụng một nhóm địa chỉ IP có thể định tuyến từ trong Google Cloud. Có thể dùng trong các trường hợp sử dụng VPC Service Controls.

199.36.153.2/31 Định cấu hình bản ghi DNS để gửi yêu cầu đến dải địa chỉ IP 199.36.153.2/31. Kiểm tra để đảm bảo mạng VPC của bạn có tuyến đến dải địa chỉ IP 199.36.153.2/31. Kiểm tra để đảm bảo quy tắc tường lửa của bạn cho phép lưu lượng truy cập đi đến dải địa chỉ IP của 199.36.153.2/31.

Cấu hình mạng

Phần này mô tả cách định cấu hình mạng để truy cập vào Cloud Firestore bằng tính năng Truy cập riêng tư vào Google.

Cấu hình DNS

Không giống như các API khác của Google, API Cloud Firestore sử dụng các tên miền và địa chỉ IP khác nhau cho tính năng Truy cập riêng tư vào Google:

  • restricted.firestore.goog cho phép truy cập API vào API Cloud Firestore.

    • Địa chỉ IP: 199.36.153.2 và 199.36.153.3.

    • Vì Cloud Firestore tuân thủ VPC Service Controls, nên bạn có thể sử dụng miền này trong các trường hợp của VPC Service Controls.

Cách tạo Vùng DNS và bản ghi cho Cloud Firestore:

  1. Tạo một vùng DNS riêng tư cho firestore.goog.

    Hãy cân nhắc việc tạo một vùng riêng tư trên Cloud DNS cho mục đích này.

  2. Trong vùng firestore.goog, hãy tạo các bản ghi sau:

    1. Một bản ghi A cho restricted.firestore.goog trỏ đến các địa chỉ IP sau: 199.36.153.2 và 199.36.153.3.

    2. Bản ghi CNAME cho *.firestore.goog trỏ đến restricted.firestore.goog.

    Để tạo các bản ghi này trong Cloud DNS, hãy xem bài viết thêm bản ghi.

Cấu hình định tuyến

Mạng VPC của bạn phải có các tuyến thích hợp có hop tiếp theo là cổng Internet mặc định. Google Cloud không hỗ trợ việc định tuyến lưu lượng truy cập đến các API và dịch vụ của Google thông qua các thực thể máy ảo khác hoặc bước nhảy tiếp theo tuỳ chỉnh. Mặc dù được gọi là cổng Internet mặc định, nhưng các gói được gửi từ máy ảo trong mạng VPC đến các API và dịch vụ của Google vẫn nằm trong mạng của Google.

  • Nếu bạn chọn miền mặc định, các phiên bản máy ảo của bạn sẽ kết nối với dịch vụ Cloud Firestore bằng dải địa chỉ IP công khai sau: 136.124.0.0/23 . Các địa chỉ IP này có thể định tuyến công khai, nhưng đường dẫn từ một máy ảo trong mạng VPC đến các địa chỉ đó vẫn nằm trong mạng của Google.

  • Google không công bố các tuyến đường trên Internet đến bất kỳ địa chỉ IP nào mà miền restricted.firestore.goog sử dụng. Do đó, chỉ các máy ảo trong mạng VPC hoặc hệ thống tại chỗ được kết nối với mạng VPC mới có thể truy cập vào miền này.

Nếu mạng VPC của bạn chứa một tuyến mặc định có hop tiếp theo là cổng Internet mặc định, thì bạn có thể sử dụng tuyến đó để truy cập vào dịch vụ Cloud Firestore mà không cần tạo tuyến tuỳ chỉnh. Hãy xem phần định tuyến bằng tuyến mặc định để biết thông tin chi tiết.

Nếu đã thay thế một tuyến mặc định (đích đến 0.0.0.0/0 hoặc ::0/0) bằng một tuyến tuỳ chỉnh có hop tiếp theo không phải là cổng Internet mặc định, thì bạn có thể đáp ứng các yêu cầu về định tuyến cho dịch vụ Cloud Firestore bằng cách sử dụng tính năng định tuyến tuỳ chỉnh.

Định tuyến bằng tuyến đường mặc định

Mỗi mạng VPC đều chứa một tuyến IPv4 mặc định (0.0.0.0/0) khi được tạo.

Tuyến mặc định cung cấp đường dẫn đến địa chỉ IP cho các đích đến sau:

  • Miền mặc định (firestore.goog): 136.124.0.0/23
  • restricted.firestore.goog: 199.36.153.2/31

Để biết hướng dẫn về Google Cloud Console và Google Cloud CLI về cách kiểm tra cấu hình của tuyến mặc định trong một mạng nhất định, hãy xem bài viết Định cấu hình Quyền truy cập riêng tư vào Google.

Định tuyến bằng tuyến đường tuỳ chỉnh

Thay vì tuyến mặc định, bạn có thể sử dụng các tuyến tĩnh tuỳ chỉnh, mỗi tuyến có một đích đến cụ thể hơn và mỗi tuyến sử dụng hop tiếp theo của cổng Internet mặc định. Địa chỉ IP đích cho các tuyến phụ thuộc vào miền mà bạn chọn:

  • Miền mặc định (firestore.goog): 136.124.0.0/23
  • restricted.firestore.goog: 199.36.153.2/31

Để xem hướng dẫn về Google Cloud Console và Google Cloud CLI về cách kiểm tra cấu hình của các tuyến tuỳ chỉnh trong một mạng nhất định, hãy xem bài viết Định cấu hình Quyền truy cập riêng tư vào Google.

Cấu hình tường lửa

Cấu hình tường lửa của mạng VPC phải cho phép máy ảo truy cập vào các địa chỉ IP mà dịch vụ Cloud Firestore sử dụng. Quy tắc allow egress ngầm định đáp ứng yêu cầu này.

Trong một số cấu hình tường lửa, bạn cần tạo các quy tắc cho phép lưu lượng truy cập ra ngoài cụ thể. Ví dụ: Giả sử bạn đã tạo một quy tắc từ chối lưu lượng truy cập ra ngoài để chặn lưu lượng truy cập đến tất cả các đích đến (0.0.0.0 cho IPv4). Trong trường hợp đó, bạn phải tạo một quy tắc tường lửa cho phép lưu lượng truy cập ra ngoài có mức độ ưu tiên cao hơn quy tắc từ chối lưu lượng truy cập ra ngoài cho mỗi dải địa chỉ IP mà miền bạn chọn sử dụng:

  • Miền mặc định (firestore.goog: 136.124.0.0/23
  • restricted.firestore.goog: 199.36.153.2/31

Để tạo quy tắc tường lửa, hãy xem phần Tạo quy tắc tường lửa. Bạn có thể giới hạn các máy ảo mà quy tắc tường lửa áp dụng khi xác định mục tiêu của mỗi quy tắc cho phép lưu lượng truy cập ra ngoài.

Cấu hình Private Google Access

Bạn có thể bật Quyền truy cập riêng tư vào Google sau khi đáp ứng các yêu cầu về mạng trong mạng VPC của mình. Để biết hướng dẫn về Google Cloud Console và Google Cloud CLI, hãy làm theo các bước nêu trong phần Bật Quyền truy cập riêng tư vào Google.

Bước tiếp theo