1. Giới thiệu
VPC Service Controls (VPC-SC) là một chế độ kiểm soát bảo mật ở cấp tổ chức trong Google Cloud, cho phép khách hàng doanh nghiệp giảm thiểu rủi ro đánh cắp dữ liệu. VPC Service Controls cung cấp quyền truy cập vào các dịch vụ đa khách hàng theo nguyên tắc không tin tưởng bất cứ điều gì (zero-trust) bằng cách cho phép khách hàng giới hạn quyền truy cập để chỉ cho phép những địa chỉ IP, bối cảnh của thiết bị khách và thông số thiết bị đã được cấp phép trong khi kết nối đến các dịch vụ đa khách hàng qua Internet và các dịch vụ khác nhằm giảm thiểu các trường hợp mất mát do cố ý và vô ý. Bạn có thể dùng VPC Service Controls để tạo ranh giới bảo vệ tài nguyên và dữ liệu của các dịch vụ mà bạn chỉ định rõ ràng.
Mục tiêu của hướng dẫn này là:
- Tìm hiểu kiến thức cơ bản về VPC Service Controls
- Tạo một phạm vi dịch vụ VPC
- Bảo vệ dự án bằng VPC Service Controls
- Khắc phục sự cố vi phạm quy tắc kiểm soát dịch vụ VPC
2. Thiết lập và yêu cầu
Đối với hướng dẫn này, bạn cần đáp ứng các yêu cầu sau:
- Một tổ chức trên GCP.
- Một thư mục trong Tổ chức.
- 2 dự án GCP trong cùng một Tổ chức được đặt trong thư mục.
- Các quyền bắt buộc ở cấp tổ chức.
- Tài khoản thanh toán cho cả hai dự án.

Thiết lập tài nguyên
- Trong Google Cloud Console, hãy tạo một thư mục trong Tổ chức và hai dự án mới (bạn có thể sử dụng lại các dự án hiện có).
(Nếu chưa có tài khoản Google Workspace/Cloud Identity, bạn phải mua một tài khoản vì bạn cần có một Tổ chức cho hướng dẫn này).
- Xác minh rằng bạn có quyền phù hợp cho hướng dẫn này ở cấp tổ chức.
- Các vai trò IAM cho thư mục
- Quyền và vai trò cho dự án
- Các quyền và vai trò cần thiết để định cấu hình VPC Service Controls
- Các quyền và vai trò cần thiết để quản lý Compute Engine
- Đảm bảo rằng cả hai dự án đều có trong thư mục vì chúng ta cần tạo một chính sách có phạm vi ở cấp thư mục. Tìm hiểu về cách di chuyển dự án vào một thư mục.

Chi phí
Bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên đám mây. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi 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í trị giá 300 USD.
Tài nguyên duy nhất sẽ phát sinh chi phí là phiên bản máy ảo. Bạn có thể xem chi phí ước tính trong máy tính định giá.
3. Tạo một hàng rào ảo
Trong phòng thí nghiệm này, chúng ta sẽ thực hiện các bước sau:
- Trong Google Console, hãy chọn Tổ chức của bạn và Truy cập vào VPC Service Controls. Vui lòng đảm bảo bạn đang ở cấp tổ chức.

- Nhấp vào "Manage Policies" (Quản lý chính sách) để tạo một chính sách truy cập mới có phạm vi áp dụng cho thư mục "Codelab".

- Tạo một ranh giới mới ở chế độ thực thi. Trong hướng dẫn này, hãy đặt tên là "SuperProtection".
- Khi bạn tạo ranh giới, hãy chọn dự án cần thực thi là ProjectZ.
- Chọn loại chu vi là "Thông thường".
- Trong hộp thoại Chỉ định các dịch vụ cần hạn chế, hãy chọn dịch vụ cần hạn chế là "Compute Engine".
Thiết lập chu vi sẽ có dạng như sau:

4. Xác minh rằng bạn đã thực thi ranh giới
- Truy cập vào ProjectX và xác minh xem bạn có thể truy cập vào API Compute Engine bằng cách truy cập vào trang chủ của Thực thể máy ảo hay không. Bạn có thể làm như vậy vì projectX không được bảo vệ bằng ranh giới VPC SC đã tạo.
- Truy cập vào ProjectZ và xác minh xem bạn có thể truy cập vào Compute Engine hay không. Bạn có thể thấy rằng yêu cầu đã bị VPC Service Controls cấm vì chu vi dịch vụ SuperProtection bảo vệ ProjectZ và Compute Engine API.

5. Khắc phục vấn đề khiến yêu cầu bị từ chối
Trước tiên, chúng ta phải xác định chính xác vấn đề ở đây để xác định cách khắc phục.
- Nhật ký VPC Service Controls bao gồm thông tin chi tiết về các yêu cầu đối với tài nguyên được bảo vệ và lý do VPC Service Controls từ chối yêu cầu. Hãy tìm Mã nhận dạng duy nhất của VPC Service Controls trong nhật ký kiểm tra ProjectZ bằng cách sử dụng truy vấn sau trong Trình khám phá nhật ký:
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
Thao tác này sẽ cho thấy tất cả nhật ký kiểm tra của VPC Service Controls. Chúng tôi sẽ tìm nhật ký lỗi gần đây nhất.
- Nhấp vào tiêu đề VPC Service Controls (Các biện pháp kiểm soát dịch vụ VPC), rồi chọn "Khắc phục sự cố từ chối". Thao tác này sẽ mở Trình khắc phục sự cố VPC Service Controls.
API này sẽ cho chúng ta thấy lý do vi phạm trong một giao diện người dùng thân thiện, đồng thời cho biết đây có phải là lỗi vi phạm đầu vào hay đầu ra hay không, cùng với những thông tin hữu ích khác.
Trong bài tập này, chúng ta sẽ tìm kiếm những thông tin sau:
"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
{
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
}
],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"
Chúng ta có 2 lựa chọn để khắc phục lỗi từ chối này trong ProjectZ.
- Tạo một cấp truy cập để cho phép truy cập vào dự án bên trong chu vi bằng cách cấp quyền truy cập vào IP hệ thống của tôi.
- Tạo một quy tắc đầu vào để cho phép một ứng dụng API truy cập vào các tài nguyên trong một ranh giới dịch vụ từ bên ngoài ranh giới dịch vụ.
Trong hướng dẫn này, chúng ta sẽ khắc phục sự cố bằng cách tạo một Cấp truy cập.
- Chuyển đến Access Context Manager ở phạm vi Thư mục (Lớp học lập trình) rồi tạo một cấp truy cập mới.
- Sử dụng "Chế độ cơ bản" và chúng tôi sẽ cho phép truy cập khi đáp ứng được mạng con IP và Vị trí địa lý.

- Chuyển đến VPC Service Controls ở phạm vi Tổ chức. Chọn chính sách truy cập cho Lớp học lập trình này và chỉnh sửa ranh giới mà chúng ta đã tạo trước đó.
- Thêm cấp truy cập được tạo ở phạm vi thư mục rồi lưu.

6. Kết quả kiểm thử.
Xác nhận rằng chúng tôi có quyền truy cập vào Compute Engine và có thể tạo một phiên bản máy ảo. Giờ đây, khi đã tạo Cấp truy cập, hãy thử truy cập vào Compute Engine trong ProjectZ và tạo một phiên bản VM.
- Chuyển đến Compute Engine rồi nhấp vào Tạo phiên bản

- Giữ nguyên mọi thứ theo mặc định và thử tạo một phiên bản máy ảo chi phí thấp.
Sau khoảng một phút, bạn sẽ thấy phiên bản máy ảo được tạo và có thể xác minh rằng bạn có toàn quyền truy cập vào Compute Engine được bảo vệ bên trong chu vi.

7. Dọn dẹp
Mặc dù bạn không phải trả phí riêng khi sử dụng VPC Service Controls nếu không dùng dịch vụ, nhưng bạn nên dọn dẹp chế độ thiết lập đã dùng trong phòng thí nghiệm này. Bạn cũng có thể xoá phiên bản máy ảo và/hoặc dự án trên đám mây để tránh phát sinh phí. Khi bạn xoá dự án trên đám mây, hệ thống sẽ ngừng tính phí cho tất cả tài nguyên được dùng trong dự án đó.
- Để xoá phiên bản VM, hãy chọn hộp đánh dấu ở bên trái tên phiên bản VM, rồi nhấp vào Xoá.

- Để xoá hàng rào ảo, hãy hoàn tất các bước sau:
- Trong bảng điều khiển Cloud, hãy nhấp vào Bảo mật, rồi nhấp vào VPC Service Controls ở phạm vi Tổ chức.
- Trong trang VPC Service Controls, trong hàng của bảng tương ứng với ranh giới mà bạn muốn xoá, hãy nhấp vào "Biểu tượng xoá"
- Để xoá Cấp truy cập, hãy hoàn tất các bước sau:
- trong bảng điều khiển Cloud, hãy mở trang Access Context Manager (Trình quản lý bối cảnh truy cập) ở phạm vi Thư mục.
- Trong lưới, ở hàng chứa cấp độ truy cập mà bạn muốn xoá, hãy nhấp vào "Biểu tượng xoá", rồi nhấp vào Xoá.
- Để tắt Dự án, hãy hoàn tất các bước sau:
- Trong bảng điều khiển Cloud, hãy chuyển đến trang IAM & Admin Settings (Chế độ cài đặt IAM và quản trị) của dự án mà bạn muốn xoá.
- Trên trang IAM & Admin Settings (IAM và chế độ cài đặt quản trị), hãy nhấp vào Shutdown (Tắt).
- Nhập mã dự án rồi nhấp vào Tắt dù sao đi nữa.
8. Xin chúc mừng!
Trong lớp học lập trình này, bạn đã tạo, thực thi và khắc phục sự cố cho một ranh giới VPC Service Controls.
Tìm hiểu thêm
- Xem tài liệu về VPC Service Controls.
- Xem tài liệu về Access Context Manager.
- Hãy xem tài liệu về trình khắc phục sự cố VPC-SC.
Giấy phép
Tác phẩm này được cấp phép theo giấy phép Ghi công theo Creative Commons 2.0 Chung.