Ngân hàng đề — Google Cloud Professional Cloud Network Engineer
Tìm thấy 247 câu.
Which NAT solution should you use?
- A Cloud NAT
- B An instance with IP forwarding enabled
- C An instance configured with iptables DNAT rules
- D An instance configured with iptables SNAT rules
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc cấu hình NAT (Network Address Translation) để thực hiện chuyển đổi địa chỉ giữa các khối mạng on-premises (mạng tại chỗ của người dùng) và GCP (Google Cloud Platform).
- Bối cảnh chính: Bạn cần một giải pháp NAT cho phép giao tiếp hai chiều hoặc outbound giữa mạng on-premises (thường kết nối qua Cloud VPN, Cloud Interconnect hoặc Partner Interconnect) và tài nguyên trong VPC của GCP. NAT giúp ẩn địa chỉ private IP, tránh xung đột địa chỉ và cho phép truy cập internet/an-premises mà không cần public IP cho instances.
- Mục tiêu: Chọn giải pháp NAT managed, scalable và được khuyến nghị bởi GCP cho các kịch bản hybrid cloud (on-premises + GCP), đặc biệt cho outbound traffic từ private subnets trong VPC ra internet hoặc on-premises mà không cần quản lý thủ công.
- Lưu ý cập nhật 2026: Theo tài liệu GCP mới nhất (Google Cloud Networking docs, phiên bản 2026), Cloud NAT là dịch vụ fully managed, hỗ trợ IPv4/IPv6, tích hợp NAT64, và scale tự động lên đến hàng triệu connections, phù hợp cho hybrid setups với Cloud Router và dynamic routing (BGP). Không còn giới hạn cũ về regional NAT gateways.
📘 Nguồn tham khảo:- Cloud NAT overview (GCP Docs, cập nhật 2026).
- Hybrid connectivity with NAT (Best practices for VPC peering/VPN).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Cloud NAT
🛠️ Lý do: Cloud NAT là giải pháp managed service của GCP, được thiết kế chuyên biệt để xử lý NAT cho traffic outbound từ private instances trong VPC (bao gồm cả hybrid với on-premises qua VPN/Interconnect). Nó tự động scale, không cần quản lý instances, hỗ trợ source/destination NAT, và tích hợp liền mạch với VPC router. Đây là lựa chọn best practice cho tính ổn định, bảo mật cao (no public IP exposure), và chi phí tối ưu (pay-per-use). Không có overhead vận hành như các giải pháp tự quản lý.
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh, với đánh giá đúng/sai dựa trên best practices GCP 2026:
-
✅ [ĐÚNG] Cloud NAT
Giải pháp managed lý tưởng cho NAT giữa on-premises và GCP. Hỗ trợ endpoint-independent mapping, large-scale NAT (hàng triệu ports), và tích hợp với Cloud Router cho hybrid routing. Không cần public IP trên instances, giảm rủi ro bảo mật. ✅ Khuyến nghị chính thức từ GCP cho mọi kịch bản outbound/hybrid. -
❌ [SAI] An instance with IP forwarding enabled
Phương án này chỉ kích hoạt IP forwarding trên một VM (Compute Engine instance) để route traffic, nhưng không tự động cung cấp NAT. Bạn vẫn cần cấu hình thêm iptables hoặc tương tự để thực hiện address translation. Không scalable, single point of failure, và yêu cầu quản lý thủ công (high availability phải tự build). GCP không khuyến khích cho production hybrid setups. ❌ Không đầy đủ chức năng NAT thuần túy. -
❌ [SAI] An instance configured with iptables DNAT rules
iptables DNAT (Destination NAT) dùng để rewrite destination IP/port (ví dụ: port forwarding inbound). Không phù hợp cho outbound NAT từ on-premises/GCP ra ngoài (cần source NAT). Chỉ hữu ích cho inbound traffic, không scale tự động, và tốn công quản lý VM. ❌ Sai mục đích sử dụng cho kịch bản NAT hybrid outbound. -
❌ [SAI] An instance configured with iptables SNAT rules
iptables SNAT (Source NAT) có thể rewrite source IP cho outbound, nhưng yêu cầu tự quản lý VM làm NAT gateway. Có overhead cao (CPU/memory), không auto-scale, khó HA (cần multiple instances + load balancer), và không tích hợp native với GCP routing/monitoring. GCP coi đây là legacy solution, chỉ dùng khi cần custom rules phức tạp. ❌ Không phải managed service, kém hiệu quả so với Cloud NAT.
🏆 Kết luận và khuyến nghị
Sử dụng Cloud NAT để triển khai nhanh chóng: Tạo NAT gateway qua VPC console, attach vào subnet/VPC router, và config static IP nếu cần. Test với on-premises qua VPN để verify connectivity. Nếu cần advanced features (như custom port allocation), tham khảo GCP Networking best practices 2026! 🚀
What should you do?
- A Upload your public ssh key to the project Metadata.
- B Upload your public ssh key to each instance Metadata.
- C Create a custom Google Compute Engine image with your public ssh key embedded.
- D Use gcloud compute ssh to automatically copy your public ssh key to the instance.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
📖 Nội dung câu hỏi:
Câu hỏi yêu cầu đảm bảo rằng khóa SSH cá nhân (personal SSH key) của bạn có thể hoạt động trên mọi instance (máy ảo) trong project của bạn trên Google Cloud Compute Engine (GCE). Mục tiêu là thực hiện hiệu quả nhất có thể (as efficiently as possible).
✅ Chi tiết kỹ thuật: Trong GCP, việc quản lý SSH keys cho phép truy cập an toàn vào các VM instances. Bạn cần một cách tự động áp dụng key cho tất cả instances hiện tại và tương lai trong project, mà không phải cấu hình thủ công từng cái một. Điều này liên quan đến project metadata và instance metadata, nơi lưu trữ các cặp key-value để cấu hình VM. Kiến thức dựa trên tài liệu GCP cập nhật đến năm 2026 (không có thay đổi lớn về cơ chế SSH metadata từ phiên bản Compute Engine hiện tại).
✅ Đáp án đúng:
Upload your public ssh key to the project Metadata.
Lý do chọn đáp án này (bằng tiếng Việt):
🛠️ Phương án này hiệu quả nhất vì khi upload public SSH key vào project metadata (dưới key "ssh-keys"), GCP sẽ tự động propagate (lan tỏa) key đó đến tất cả instances trong project. Mỗi instance sẽ nhận metadata này qua startup script hoặc metadata server, cho phép SSH mà không cần cấu hình lại. Điều này áp dụng cho mọi instance mới và hiện tại, tiết kiệm thời gian và tránh lặp lại công việc. Đây là best practice chính thức của Google Cloud.
🔍 Giải thích tất cả các phương án (đúng/sai)
-
✅ Upload your public ssh key to the project Metadata.
🟢 Đúng: Như đã giải thích ở trên, đây là cách tối ưu để key tự động áp dụng toàn project. Hiệu quả cao vì một lần cấu hình, áp dụng mãi mãi cho tất cả instances (bao gồm cả auto-scaling groups).
📘 Nguồn: Google Cloud Docs - Using SSH keys with Compute Engine (cập nhật 2025-2026). -
❌ Upload your public ssh key to each instance Metadata.
🔴 Sai: Phương án này yêu cầu thủ công upload key vào metadata của từng instance riêng lẻ, dẫn đến không hiệu quả (phải lặp lại cho mọi VM mới). Nếu project có hàng trăm instances, công việc sẽ rất tốn kém thời gian và dễ lỗi. -
❌ Create a custom Google Compute Engine image with your public ssh key embedded.
🔴 Sai: Tạo custom image với key nhúng vào sẽ làm key chỉ hoạt động trên các instances từ image đó. Không áp dụng cho tất cả instances hiện có trong project (chỉ cho instance mới từ image), và kém linh hoạt nếu cần thay đổi key sau này. Không phải cách "hiệu quả nhất". -
❌ Use gcloud compute ssh to automatically copy your public ssh key to the instance.
🔴 Sai: Lệnhgcloud compute sshtự động copy key vào instance metadata chỉ cho lần kết nối đầu tiên của instance đó, nhưng không propagate đến toàn bộ project. Key chỉ lưu tạm thời trên instance đã connect, không áp dụng tự động cho instances khác hoặc tương lai.
🛠️ Lời khuyên thực hành: Sử dụng lệnh gcloud compute project-info add-metadata --metadata-from-file ssh-keys=~/path/to/ssh-keys.txt để upload key. Kết hợp với OS Login (tính năng mới hơn từ 2023) để quản lý IAM-based SSH nếu project lớn.
📘 Tài liệu tham khảo chính:
- Manage SSH keys in metadata
- Project and instance metadata (GCP Docs 2026).
What should you do?
- A Create a more specific route than the system-generated subnet route, pointing the next hop to instance-B with no tag.
- B Create a more specific route than the system-generated subnet route, pointing the next hop to instance-B with a tag applied to instance-A.
- C Delete the system-generated subnet route and create a specific route to instance-B with a tag applied to instance-A.
- D Move instance-B to another VPC and, using multi-NIC, connect instance-B's interface to instance-A's network. Configure the appropriate routes to force traffic through to instance-A.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào mạng VPC của Google Cloud Platform (GCP), cụ thể là cách thiết lập routing tùy chỉnh để đảm bảo subnet-level isolation (cách ly ở mức subnet).
- Tình huống: Bạn có instance-A nằm trong một subnet (ví dụ: subnet-A). Traffic từ instance-A cần bị buộc phải đi qua instance-B (là một security appliance như firewall hoặc IDS/IPS) nằm ở subnet khác (subnet-B).
- Mục tiêu: Không để traffic của instance-A đi trực tiếp ra internet hoặc các đích khác qua route mặc định (system-generated subnet route), mà phải "ép buộc" qua instance-B để kiểm tra/an ninh.
- Cơ chế chính ở GCP VPC:
- GCP tự động tạo system-generated subnet routes (route mặc định cho subnet CIDR, ví dụ: 10.0.1.0/24 on-link với priority 1000).
- Để override, cần tạo custom route với priority cao hơn (specific hơn, ví dụ: /26 thay vì /24) và next-hop là IP nội bộ của instance-B.
- Để chỉ áp dụng cho instance-A (không ảnh hưởng toàn subnet), dùng network tags trên instance-A để route policy match tag đó.
- Phiên bản cập nhật 2026: Theo GCP VPC mới nhất (Cloud Router, Hierarchical Firewall Policies tích hợp), cơ chế route tags vẫn là standard cho traffic steering qua appliances (xem GCP docs 2025+ về VPC routes).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create a more specific route than the system-generated subnet route, pointing the next hop to instance-B with a tag applied to instance-A.
Lý do 🛠️:
- Tạo route cụ thể hơn (more specific CIDR, ví dụ: destination 10.0.128.0/25 thay vì /24 của system route) với priority cao hơn (thấp hơn số, ví dụ: 900 < 1000).
- Next-hop: IP nội bộ của instance-B (instance làm next-hop được hỗ trợ ở GCP).
- Tag trên instance-A: Route chỉ áp dụng cho VM có tag matching (firewall/network tags), đảm bảo isolation chỉ cho instance-A, không ảnh hưởng VM khác trong subnet.
- Kết quả: Traffic từ instance-A match route này trước system route, buộc đi qua instance-B. Đây là best practice cho inspection appliances như Palo Alto VM-Series hoặc Aviatrix.
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn giữ nguyên văn bản gốc tiếng Anh, với giải thích hoàn toàn bằng tiếng Việt sử dụng emoji để nổi bật:
-
Create a more specific route than the system-generated subnet route, pointing the next hop to instance-B with no tag.
❌ Sai: Không dùng tag nghĩa là route áp dụng cho toàn bộ subnet (tất cả VM trong subnet-A), vi phạm yêu cầu subnet-level isolation (chỉ instance-A). Route sẽ override system route cho mọi traffic, gây ảnh hưởng rộng. -
Create a more specific route than the system-generated subnet route, pointing the next hop to instance-B with a tag applied to instance-A.
✅ Đúng: Như giải thích trên. More specific route + next-hop instance + tag chính xác match policy GCP, chỉ route traffic từ instance-A có tag qua instance-B, giữ isolation. Hoạt động hoàn hảo mà không xóa route mặc định. -
Delete the system-generated subnet route and create a specific route to instance-B with a tag applied to instance-A.
❌ Sai: Không thể delete system-generated subnet route ở GCP (chúng protected, chỉ read-only). Xóa sẽ break connectivity toàn subnet (no on-link route cho local subnet CIDR), gây outage lớn. -
Move instance-B to another VPC and, using multi-NIC, connect instance-B's interface to instance-A's network. Configure the appropriate routes to force traffic through to instance-A.
❌ Sai: Multi-NIC chỉ hỗ trợ trong cùng VPC (không cross-VPC native). Cross-VPC cần VPC Peering/VPC Network Peering, nhưng không "connect interface" trực tiếp. Phức tạp, không scale, và không giải quyết isolation đơn giản như custom routes.
📘 Tài liệu tham khảo (cập nhật GCP 2026)
- GCP VPC Routes: cloud.google.com/vpc/docs/routes – Chi tiết custom routes, tags, next-hop instances.
- Traffic Steering qua Appliances: cloud.google.com/architecture/traffic-steering – Best practices cho security appliances (2025 update với Shared VPC).
- Network Tags: cloud.google.com/vpc/docs/tags-firewalls – Áp dụng route policies.
- Console/GCLI Example:
gcloud compute routes create my-route --destination-range=10.0.128.0/25 --next-hop-instance=instance-B --next-hop-instance-zone=us-central1-a --tags=my-tag --network=my-vpc --priority=900.
Hy vọng phân tích này giúp bạn ôn thi Professional Cloud Network Engineer! 🚀 Nếu cần demo CLI, hỏi thêm nhé!
What should you do to solve the problem?
- A Assign a public IP address to the instance.
- B Create a route to reach the Master, pointing to the default internet gateway.
- C Create the appropriate firewall policy in the VPC to allow traffic from Master node IP address to the instance.
- D Create the appropriate master authorized network entries to allow the instance to communicate to the master.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi xoay quanh tình huống trong Google Kubernetes Engine (GKE) private cluster 📦. Bạn đã tạo một private cluster (control plane/master nodes được đặt ở mạng private, không tiếp cận được từ internet), và muốn sử dụng lệnh kubectl từ một instance (máy ảo) để kiểm tra trạng thái các pods (get status of the pods) 🔍. Tuy nhiên, instance này gặp vấn đề: master không phản hồi (not responding), dù cluster vẫn đang hoạt động bình thường (up and running) ✅.
Vấn đề cốt lõi là kết nối từ instance đến master endpoint bị chặn do tính chất private của cluster. Trong GKE private cluster, master chỉ cho phép truy cập từ các authorized networks được chỉ định rõ ràng. Instance cần được thêm vào danh sách này để có thể giao tiếp với master qua VPC network nội bộ 🛤️.
✅ Đáp án đúng
Create the appropriate master authorized network entries to allow the instance to communicate to the master.
Lý do lựa chọn:
Trong GKE private cluster (VPC-native), master endpoint có địa chỉ IP private (thường là 172.16.0.32/28 hoặc tương tự). Để kubectl từ instance kết nối thành công, bạn phải thêm CIDR block chứa IP của instance (hoặc subnet của nó) vào phần "Master authorized networks" khi tạo cluster hoặc chỉnh sửa sau (qua gcloud container clusters update). Điều này mở khóa kết nối ingress từ instance đến master ports (443, 10250). Đây là giải pháp chuẩn theo best practice của Google Cloud đến năm 2026 🛠️. Không cần public IP hay route internet vì mọi thứ diễn ra nội bộ VPC.
📋 Giải thích tất cả các phương án
-
✅ [ĐÚNG] Create the appropriate master authorized network entries to allow the instance to communicate to the master.
🟢 Đúng vì: Như đã giải thích, đây là cơ chế bảo mật chính của GKE private cluster. Authorized networks kiểm soát truy cập đến control plane từ các IP/range cụ thể. Áp dụng ngay bằng lệnh:gcloud container clusters update [CLUSTER_NAME] --enable-master-authorized-networks --master-authorized-networks=[INSTANCE_CIDR]. Kết quả: kubectl connect mượt mà! -
❌ [SAI] Assign a public IP address to the instance.
🔴 Sai vì: Private cluster master không expose public endpoint (không NAT/public IP), nên assign public IP cho instance chỉ giúp outbound internet, không giải quyết kết nối nội bộ đến master private IP. Thậm chí làm phức tạp thêm mà không cần thiết 🕳️. -
❌ [SAI] Create a route to reach the Master, pointing to the default internet gateway.
🔴 Sai vì: Master private nằm trong VPC (không route qua internet gateway - IGW chỉ cho public traffic). Route custom pointing to IGW sẽ fail vì master không reachable từ internet. GKE dùng internal routing tự động, không cần can thiệp route thủ công như vậy 🚫. -
❌ [SAI] Create the appropriate firewall policy in the VPC to allow traffic from Master node IP address to the instance.
🔴 Sai vì: Hướng traffic sai! Vấn đề là instance → master (client đến server), không phải master → instance. Firewall VPC mặc định cho phép egress từ instance, nhưng master authorized networks mới là chìa khóa ingress đến control plane. Firewall chỉ bổ trợ, không thay thế được 🛡️.
📘 Tài liệu tham khảo
- Google Cloud GKE Private Clusters Docs (Cập nhật 2024-2026: Authorized networks là bắt buộc).
- gcloud Reference: Master Authorized Networks.
- Troubleshooting GKE Connectivity.
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo lệnh cụ thể, hỏi thêm nhé!
How should you set up permissions for the networking team?
- A Assign members of the networking team the compute.networkUser role.
- B Assign members of the networking team the compute.networkAdmin role.
- C Assign members of the networking team a custom role with only the compute.networks.* and the compute.firewalls.list permissions.
- D Assign members of the networking team the compute.networkViewer role, and add the compute.networks.use permission.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi
Câu hỏi này thuộc về Google Cloud Platform (GCP) (không phải AWS như đề cập, vì các role như compute.networkUser, compute.networkAdmin là IAM roles đặc trưng của GCP Compute Engine). Nội dung mô tả tình huống thực tế trong doanh nghiệp:
- Nhóm bảo mật (security team) quản lý firewalls (quy tắc tường lửa) và SSL certificates (chứng chỉ bảo mật).
- Nhóm mạng (networking team) quản lý các tài nguyên mạng (networking resources như VPC networks, subnets, routes).
- Yêu cầu cụ thể: Nhóm mạng chỉ cần quyền đọc (read) quy tắc firewall, không được tạo (create), sửa (modify) hoặc xóa (delete) chúng.
Mục tiêu là thiết lập IAM permissions (quyền truy cập) phù hợp theo nguyên tắc least privilege (quyền tối thiểu cần thiết), đảm bảo nhóm mạng có thể quản lý tài nguyên mạng của mình nhưng không can thiệp vào firewall do nhóm bảo mật kiểm soát.
📘 Bối cảnh GCP: Firewalls là tài nguyên riêng biệt trong VPC (compute.firewalls.* permissions), khác với networks (compute.networks.*). Nhóm mạng cần full quyền trên networks nhưng chỉ list/get trên firewalls.
✅ Đáp án đúng: Assign members of the networking team a custom role with only the compute.networks.* and the compute.firewalls.list permissions.
Lý do lựa chọn (theo phiên bản GCP IAM mới nhất 2026):
🛠️ Phương án này tạo custom role (vai trò tùy chỉnh) cho phép:
compute.networks.*: Quyền đầy đủ (wildcard*) trên VPC networks (tạo, sửa, xóa networks, subnets, routes) → Phù hợp với việc "manages the networking resources".compute.firewalls.list: Chỉ quyền liệt kê/đọc quy tắc firewall, không bao gồm create/update/delete (những quyền này thuộccompute.firewalls.*đầy đủ).
✅ Điều này tuân thủ least privilege, tránh cấp quyền thừa. Không có thay đổi lớn ở IAM roles Compute Engine từ 2024-2026.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ [SAI] Assign members of the networking team the compute.networkUser role.
🧩 Role này chỉ cho phép sử dụng (use) networks (như attach VM vào network quacompute.networks.use,compute.subnetworks.use), không có quyền đọc firewall (compute.firewalls.listhoặcgetbị thiếu). Nhóm mạng không thể xem quy tắc firewall, vi phạm yêu cầu "read firewall rules". -
❌ [SAI] Assign members of the networking team the compute.networkAdmin role.
🛠️ Role này cấp quyền admin đầy đủ trên VPC networks VÀ firewalls (bao gồmcompute.firewalls.create,update,delete). Nhóm mạng có thể sửa/xóa firewall, vi phạm nghiêm trọng yêu cầu "should not be able to create, modify, or delete them". Đây là quyền thừa lớn! -
✅ [ĐÚNG] Assign members of the networking team a custom role with only the compute.networks. and the compute.firewalls.list permissions.*
📘 Như đã giải thích ở trên: Full quyền trên networks để quản lý tài nguyên, chỉ read trên firewalls. Hoàn hảo cho least privilege. -
❌ [SAI] Assign members of the networking team the compute.networkViewer role, and add the compute.networks.use permission.
🧩compute.networkViewerchỉ read-only trên networks và firewalls (compute.firewalls.list/get,compute.networks.get/list). Thêmcompute.networks.usechỉ cho phép attach tài nguyên (như VM), vẫn không thể tạo/sửa/xóa networks. Không đủ để "manages the networking resources" (cần fullcompute.networks.*).
📚 Tài liệu tham khảo (GCP docs chính thức, cập nhật 2026)
- IAM Roles for Compute Engine → Chi tiết permissions của
networkViewer,networkAdmin,networkUser. - Custom Roles → Hướng dẫn tạo custom role với wildcards như
compute.networks.*. - Firewall Rules Permissions → Xác nhận
compute.firewalls.listchỉ read. - Understanding Predefined Roles → So sánh roles networking.
Hy vọng phân tích này giúp bạn ôn thi certification GCP hiệu quả! 🚀 Nếu cần ví dụ Terraform/CLI, hãy hỏi thêm.
How should you configure the health check?
- A Set request-path to a specific URL used for health checking, and set proxy-header to PROXY_V1.
- B Set request-path to a specific URL used for health checking, and set host to include a custom host header that identifies the health check.
- C Set request-path to a specific URL used for health checking, and set response to a string that the backend service will always return in the response body.
- D Set proxy-header to the default value, and set host to include a custom host header that identifies the health check.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc cấu hình health check cho một HTTP(S) load balanced service trên Google Cloud Platform (GCP), cụ thể là Google Cloud Load Balancing. Mục tiêu là xác minh (verify) rằng các backend instances đang phản hồi đúng cách.
- Bối cảnh: Khi tạo một dịch vụ cân bằng tải HTTP(S), health check là cơ chế quan trọng để Load Balancer kiểm tra sức khỏe của các backend (như VM instances trong MIG - Managed Instance Group). Health check gửi yêu cầu HTTP đến backend và dựa trên phản hồi để quyết định backend có "healthy" hay không.
- Yêu cầu chính: Cần cấu hình health check sao cho nó kiểm tra đường dẫn URL cụ thể (request-path) dùng để health checking, và đảm bảo backend phản hồi đúng như mong đợi.
- Kiến thức cập nhật (đến 2026): Theo tài liệu GCP mới nhất (phiên bản Load Balancing v2), health check cho HTTP(S) LB hỗ trợ kiểm tra request path, host header, proxy header, và đặc biệt là response body matching (kiểm tra chuỗi cụ thể trong body phản hồi) để verify backend hoạt động chính xác. Không có thay đổi lớn từ 2023-2026, nhưng tích hợp tốt hơn với Cloud Armor và Serverless NEGs.
📘 Tài liệu tham khảo:
- Google Cloud Load Balancing: Health checks
- Configuring HTTP health checks
- GCP Networking Best Practices (2024 update)
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Set request-path to a specific URL used for health checking, and set response to a string that the backend service will always return in the response body.
Lý do 🛠️:
- Đây là cách chuẩn và hiệu quả nhất để verify backend responding properly. Health check gửi GET request đến
request-path(ví dụ:/healthz), backend phải trả về HTTP 200 OK với body chứa chuỗi cụ thể (ví dụ: "healthy" hoặc "ok"). Nếu khớp, backend được coi là healthy. - Tránh false positive (backend lỗi nhưng vẫn pass check) vì kiểm tra nội dung response body, không chỉ status code.
- Phù hợp với best practice GCP: Kết hợp path-specific endpoint + response matching để đảm bảo ứng dụng thực sự hoạt động.
❌ Giải thích tất cả các phương án (đúng/sai)
-
Set request-path to a specific URL used for health checking, and set proxy-header to PROXY_V1.
❌ Sai: Proxy-header PROXY_V1 dùng cho external TCP/UDP Proxy Load Balancer (không phải HTTP(S) LB), để truyền thông tin client IP/port. Không liên quan đến health check HTTP(S), và không verify response properly. Sử dụng sẽ gây lỗi cấu hình. -
Set request-path to a specific URL used for health checking, and set host to include a custom host header that identifies the health check.
❌ Sai: Host header (custom như "healthcheck.example.com") chỉ giúp route request đúng virtual host trên backend, nhưng không verify response body. Backend có thể trả 200 OK nhưng nội dung sai, dẫn đến false healthy. Không đủ để "responding properly". -
Set request-path to a specific URL used for health checking, and set response to a string that the backend service will always return in the response body.
✅ Đúng (như đã giải thích ở trên): Kết hợp request-path + response string matching là cách tối ưu và được khuyến nghị trong GCP docs để kiểm tra backend thực sự healthy. -
Set proxy-header to the default value, and set host to include a custom host header that identifies the health check.
❌ Sai: Proxy-header default (không chỉ định) và host header chỉ hỗ trợ routing cơ bản, thiếu request-path cụ thể nên health check gửi đến root path (/), dễ bị ảnh hưởng bởi traffic thực. Không verify response properly, chỉ kiểm tra status code mặc định (5xx/timeout fail).
💡 Lời khuyên thực hành: Luôn test health check bằng gcloud compute health-checks update hoặc Console, và monitor qua Cloud Monitoring. Ví dụ lệnh: gcloud compute health-checks create http my-health-check --request-path=/healthz --response-body-contains=OK.
What should you do?
- A Assign each user the editor role.
- B Assign each user the compute.networkAdmin role.
- C Give each user the following permissions only: compute.interconnectAttachments.create, compute.interconnectAttachments.get.
- D Give each user the following permissions only: compute.interconnectAttachments.create, compute.interconnectAttachments.get, compute.routers.create, compute.routers.get, compute.routers.update.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi yêu cầu cấp quyền least-privilege (quyền hạn tối thiểu cần thiết) cho từng thành viên trong đội ngũ vận hành mạng (network operations team) để họ có thể tạo (create), sửa đổi (modify) và xóa (delete) các Cloud Interconnect VLAN attachments trên Google Cloud Platform (GCP).
Cloud Interconnect VLAN attachments là các tài nguyên mạng dùng để thiết lập kết nối vật lý hoặc đối tác (Dedicated/Partner Interconnect) giữa mạng on-premises và VPC trên GCP. Chúng được gắn vào router trong VPC và yêu cầu quyền IAM cụ thể để quản lý toàn diện (tạo, đọc, sửa, xóa).
Mục tiêu là áp dụng nguyên tắc least-privilege access theo IAM của GCP, nghĩa là chỉ cấp quyền vừa đủ mà không dư thừa, tránh rủi ro bảo mật. Kiến thức dựa trên tài liệu GCP IAM cập nhật đến năm 2026 (không thay đổi lớn từ 2023-2026 về quyền compute.networkAdmin cho Interconnect).
📘 Tài liệu tham khảo:
- GCP IAM Roles for Networking (compute.networkAdmin bao gồm quyền quản lý VLAN attachments).
- Cloud Interconnect Documentation (yêu cầu quyền để create/modify/delete).
- IAM Permissions Reference.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Assign each user the compute.networkAdmin role.
🛠️ Lý do chi tiết:
- Role compute.networkAdmin cấp quyền đầy đủ để quản lý tài nguyên mạng cấp VPC, bao gồm tạo, sửa, xóa VLAN attachments cho Cloud Interconnect (permissions như
compute.interconnectAttachments.create,compute.interconnectAttachments.delete,compute.interconnectAttachments.update, v.v.). - Đây là least-privilege phù hợp vì nó tập trung vào networking (không cấp quyền rộng như Editor), cho phép đội ngũ thực hiện đúng nhiệm vụ mà không cần quyền admin toàn cục.
- Theo best practices GCP (cập nhật 2026), role này được khuyến nghị cho network engineers quản lý Interconnect mà không vượt quá phạm vi cần thiết.
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh, với giải thích rõ ràng bằng tiếng Việt:
-
Assign each user the editor role.
❌ Sai: Role "Editor" (roles/editor) cấp quyền quá rộng (read/write/update/delete hầu hết tài nguyên GCP như Compute Engine, Storage, v.v.), vi phạm nguyên tắc least-privilege. Nó không tập trung vào networking và có thể cho phép xóa nhầm các tài nguyên khác, tăng rủi ro bảo mật. Không phù hợp cho VLAN attachments cụ thể. -
Assign each user the compute.networkAdmin role.
✅ Đúng: Như đã giải thích ở trên, role này cấp chính xác quyền cần thiết cho create/modify/delete VLAN attachments mà không dư thừa. Bao gồm tất cả permissions liên quan đến Interconnect (xem permissions reference GCP), là lựa chọn least-privilege lý tưởng cho network operations team. -
Give each user the following permissions only: compute.interconnectAttachments.create, compute.interconnectAttachments.get.
❌ Sai: Chỉ cấp create và get (đọc/tạo) là không đủ cho modify/delete. VLAN attachments cần thêm permissions nhưupdate,delete, và các quyền phụ thuộc (routers, VLANs). Custom role này sẽ khiến user không thể hoàn thành nhiệm vụ đầy đủ, vi phạm yêu cầu câu hỏi. -
Give each user the following permissions only: compute.interconnectAttachments.create, compute.interconnectAttachments.get, compute.routers.create, compute.routers.get, compute.routers.update.
❌ Sai: Vẫn thiếu permissions quan trọng nhưcompute.interconnectAttachments.delete,compute.interconnectAttachments.update, và các quyền khác (ví dụ:compute.vpnTunnels.*hoặc VLAN-specific). Việc thêm router permissions là cần thiết (VLAN gắn vào router), nhưng bộ này không đầy đủ và không phải least-privilege chuẩn (GCP khuyến nghị dùng predefined role thay vì custom phức tạp). User vẫn không thể xóa attachments hoàn chỉnh.
How should you update your instances?
- A Manually patch some of the instances, and then perform a rolling restart on the instance group.
- B Using the new instance template, perform a rolling update across all instances in the instance group. Verify the new feature once the rollout completes.
- C Deploy a new instance group and canary the updated template in that group. Verify the new feature in the new canary instance group, and then update the original instance group.
- D Perform a canary update by starting a rolling update and specifying a target size for your instances to receive the new template. Verify the new feature on the canary instances, and then roll forward to the rest of the instances.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào việc cập nhật instance template mới cho một ứng dụng đang chạy trên Managed Instance Group (MIG) trong Google Cloud Platform (GCP). Đội phát triển đã phát hành template mới với tính năng chưa được kiểm tra kỹ (new feature not heavily tested), và mục tiêu là giảm thiểu tác động đến người dùng nếu có lỗi (bug).
- Bối cảnh chính: MIG là nhóm instance tự động quản lý (managed), hỗ trợ rolling updates để cập nhật template mà không downtime lớn.
- Yêu cầu cốt lõi: Cần chiến lược cập nhật an toàn, ưu tiên kiểm tra nhỏ (canary testing) trước khi triển khai rộng rãi, phù hợp với best practice của GCP Compute Engine.
- Kiến thức cập nhật: Theo tài liệu GCP mới nhất (2024-2026), MIG hỗ trợ canary updates qua rolling updates với
targetSizeđể kiểm soát tỷ lệ instance cập nhật dần dần, giảm rủi ro. (Nguồn: 📘 Cloud Compute Docs - Rolling out updates to MIGs).
✅ Đáp án đúng
Perform a canary update by starting a rolling update and specifying a target size for your instances to receive the new template. Verify the new feature on the canary instances, and then roll forward to the rest of the instances.
Lý do chọn:
- Đây là cách tối ưu và chính xác nhất theo GCP, sử dụng canary update trong rolling update của MIG. Bạn chỉ định
targetSize(ví dụ: 20% instances) để cập nhật một phần nhỏ trước (canary instances), kiểm tra tính năng mới, sau đó roll forward (tiếp tục) đến toàn bộ nếu OK. - 🛠️ Điều này minimize impact bằng cách giới hạn rủi ro ở subset nhỏ, tự động quản lý bởi MIG (không cần tạo MIG mới). Hỗ trợ proactive verification trước full rollout.
- Phù hợp best practice GCP 2026: Tích hợp monitoring (Cloud Monitoring) để verify realtime.
📋 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh:
-
❌ [SAI] Manually patch some of the instances, and then perform a rolling restart on the instance group.
Giải thích sai: Không sử dụng cơ chế tự động của MIG. "Manually patch" vi phạm nguyên tắc managed (phải dùng template update), dễ gây inconsistency và downtime cao. Rolling restart sau patch thủ công không an toàn cho testing canary, tăng rủi ro bug lan rộng. GCP không khuyến khích manual intervention ở MIG. -
❌ [SAI] Using the new instance template, perform a rolling update across all instances in the instance group. Verify the new feature once the rollout completes.
Giải thích sai: Rolling update full (across all instances) không có canary, nghĩa là cập nhật toàn bộ ngay lập tức → nếu bug, toàn bộ users bị ảnh hưởng lớn. Verification chỉ sau khi hoàn tất quá muộn, không minimize impact như yêu cầu. GCP hỗ trợ nhưng không phù hợp cho "not heavily tested" feature. -
❌ [SAI] Deploy a new instance group and canary the updated template in that group. Verify the new feature in the new canary instance group, and then update the original instance group.
Giải thích sai: Tạo MIG mới để canary là cách phức tạp thừa, đòi hỏi traffic splitting (load balancer canary) và switchover thủ công. Không tận dụng rolling update native của MIG hiện tại, tăng chi phí/operation overhead. GCP ưu tiên in-place canary quatargetSizethay vì new group. -
✅ [ĐÚNG] Perform a canary update by starting a rolling update and specifying a target size for your instances to receive the new template. Verify the new feature on the canary instances, and then roll forward to the rest of the instances.
Giải thích đúng: Như đã nêu ở phần đáp án, đây là standard GCP workflow cho safe rollout. Sử dụng gcloud CLI/API:gcloud compute instance-groups managed rolling-action replace --target-instance-template=NEW --size=20(targetSize=20%). Verify qua SSH/Logs/Monitoring, rồiresume-update. Hoàn hảo cho minimize risk! (Nguồn bổ sung: 📘 gcloud reference - rolling-action).
Tóm tắt khuyến nghị 🛠️: Luôn dùng canary update cho production MIG với feature chưa test kỹ. Theo dõi bằng Cloud Monitoring/Logging để tự động hóa verification!
How should you provision your instances?
- A Create a single managed instance group, specify the desired region, and select Multiple zones for the location.
- B Create a managed instance group for each region, select Single zone for the location, and manually distribute instances across the zones in that region.
- C Create an unmanaged instance group in a single zone, and then create an HTTP load balancer for the instance group.
- D Create an unmanaged instance group for each zone, and manually distribute the instances across the desired zones.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi thuộc lĩnh vực Google Cloud Platform (GCP) Compute Engine, tập trung vào việc triển khai ứng dụng từ môi trường proof-of-concept (POC) sang production.
- Tình huống ban đầu: Ứng dụng được triển khai thủ công các VM instances chỉ trong một zone duy nhất (single zone), dẫn đến rủi ro cao về availability (khả năng sẵn sàng) nếu zone đó gặp sự cố.
- Yêu cầu chính: Tăng high availability (sao lưu đa zone/region) và hỗ trợ autoscaling (tự động mở rộng/thu hẹp số lượng instances dựa trên tải).
- Mục tiêu: Chọn cách provision instances (cung cấp và quản lý VM) hiệu quả nhất, sử dụng các tính năng tự động hóa của GCP để đảm bảo fault tolerance (chịu lỗi), load balancing, và autoscaling mà không cần can thiệp thủ công nhiều.
(Lưu ý: Đây là kiến thức GCP cập nhật đến 2026, với Managed Instance Groups - MIGs phiên bản mới nhất hỗ trợ regional MIGs, autoscaling dựa trên metrics như CPU/Metrics, và integration với Autoscaler/Health Checks. Không liên quan AWS như mô tả ban đầu).
✅ Đáp án đúng
A. Create a single managed instance group, specify the desired region, and select Multiple zones for the location.
Lý do chọn đáp án này:
🛠️ Đây là cách tối ưu nhất để đạt high availability và autoscaling trong GCP.
- Managed Instance Group (MIG) tự động quản lý lifecycle của instances (tạo/xóa/thay thế), hỗ trợ autoscaling dựa trên CPU, load balancer traffic, hoặc custom metrics.
- Chỉ định region và chọn Multiple zones tạo regional MIG, phân bổ instances đều qua nhiều zones trong region (ví dụ: us-central1-a, b, c), đảm bảo 99.99%+ uptime nếu một zone down.
- Tự động heal (tự sửa chữa) và rolling updates mà không downtime.
- Phù hợp production: Không cần thủ công distribute, MIG lo hết!
📋 Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn (giữ nguyên văn bản gốc tiếng Anh). Tôi đánh dấu ✅ đúng hoặc ❌ sai, kèm lý do chi tiết bằng tiếng Việt:
-
A. Create a single managed instance group, specify the desired region, and select Multiple zones for the location.
✅ Đúng. Như giải thích trên: Regional MIG với multi-zones cung cấp autoscaling, HA, và auto-distribution instances. Hoàn hảo cho production! -
B. Create a managed instance group for each region, select Single zone for the location, and manually distribute instances across the zones in that region.
❌ Sai.- Tạo MIG riêng cho từng region không cần thiết và phức tạp (multi-region cần Global Load Balancer, tăng chi phí/latency).
- Chọn Single zone làm giảm HA (vẫn phụ thuộc một zone/region).
- Manually distribute vi phạm yêu cầu autoscaling (phải thủ công, không tự động). Không hiệu quả cho production.
-
C. Create an unmanaged instance group in a single zone, and then create an HTTP load balancer for the instance group.
❌ Sai.- Unmanaged Instance Group (UIG) không hỗ trợ autoscaling hay auto-healing (bạn phải tự quản lý instances thủ công).
- Chỉ single zone → low availability (nếu zone down, toàn bộ app down).
- HTTP Load Balancer giúp distribute traffic nhưng không giải quyết autoscaling/HA gốc. Phù hợp POC, không production.
-
D. Create an unmanaged instance group for each zone, and manually distribute the instances across the desired zones.
❌ Sai.- Unmanaged → Không autoscaling, phải manually distribute (rất tốn công, dễ lỗi).
- UIG per zone tăng complexity mà không tự động heal/replace.
- Không tận dụng MIG → Không đạt high availability thực sự (vẫn thủ công quản lý).
📘 Tài liệu tham khảo (GCP docs cập nhật 2026)
- Regional managed instance groups ✅ (Hướng dẫn tạo regional MIG multi-zones + autoscaling).
- About managed instance groups 🛠️ (So sánh MIG vs UIG).
- Autoscaler for MIGs (Metrics-based scaling mới nhất).
(Nguồn chính thức Google Cloud, khuyến nghị thực hành trên GCP Console hoặc gcloud CLI).
What should you do?
- A Ensure that the object you don't want to be cached anymore is not shared publicly.
- B Create a new storage bucket, and move the object you don't want to be checked anymore inside it. Then edit the bucket setting and enable the private attribute.
- C Add an appropriate lifecycle rule on the storage bucket containing the two objects.
- D Add a Cache-Control entry with value private to the metadata of the object you don't want to be cached anymore. Invalidate all the previously cached copies.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi xoay quanh tình huống bạn có một storage bucket (thùng lưu trữ) trong Google Cloud Storage (GCS) chứa hai đối tượng (objects). Cloud CDN đã được kích hoạt trên bucket này, và cả hai objects đều đã được cache thành công. Bây giờ, bạn muốn đảm bảo một trong hai objects sẽ không còn được cache nữa, mà luôn được phục vụ trực tiếp từ origin (nguồn gốc - tức GCS bucket) ra internet.
📌 Mục tiêu chính: Loại bỏ cache hiện tại cho object cụ thể và ngăn chặn cache mới trong tương lai, chỉ áp dụng cho một object mà không ảnh hưởng object kia. Đây là vấn đề phổ biến trong quản lý cache với Cloud CDN (dùng HTTP(S) Load Balancer làm edge cache).
✅ Đáp án đúng
Add a Cache-Control entry with value private to the metadata of the object you don't want to be cached anymore. Invalidate all the previously cached copies.
Lý do lựa chọn:
- Thêm metadata Cache-Control: private vào object cụ thể sẽ chỉ thị cho CDN không cache object này ở các edge location (shared cache), mà chỉ cho phép cache ở private cache (như browser client). Điều này đảm bảo object luôn được fetch trực tiếp từ origin GCS mỗi lần request.
- Đồng thời, invalidate (purge) tất cả cache cũ để xóa các bản sao đã cache trước đó, tránh tình trạng cache cũ vẫn serve.
🛠️ Đây là cách chính xác, hiệu quả và selective (chỉ ảnh hưởng một object), phù hợp với best practice của Google Cloud CDN. Không ảnh hưởng object còn lại.
(Kiến thức cập nhật đến 2026: Cloud CDN v2.0 hỗ trợ metadata Cache-Control linh hoạt hơn, và purge API cho phép wildcard hoặc path-specific invalidation nhanh chóng.)
📋 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, với lý do đúng/sai dựa trên cơ chế hoạt động của Cloud CDN và GCS:
-
❌ Ensure that the object you don't want to be cached anymore is not shared publicly.
Phương án này sai vì việc thay đổi quyền truy cập (từ public sang private) chỉ ảnh hưởng đến quyền đọc object, không liên quan đến cơ chế cache. Nếu object đã được cache công khai trước đó, CDN vẫn serve từ cache cũ cho đến TTL hết hạn. Hơn nữa, làm private sẽ chặn hoàn toàn truy cập public, không phải mục tiêu "luôn serve từ origin". -
❌ Create a new storage bucket, and move the object you don't want to be checked anymore inside it. Then edit the bucket setting and enable the private attribute.
Phương án này sai và phức tạp không cần thiết. Tạo bucket mới rồi move object chỉ thay đổi vị trí lưu trữ, nhưng Cloud CDN vẫn cache dựa trên URL/origin path. Set private bucket sẽ ngăn serve public hoàn toàn, và không giải quyết cache hiện tại (cần invalidate riêng). Cách này ảnh hưởng toàn bucket mới, không selective cho một object. -
❌ Add an appropriate lifecycle rule on the storage bucket containing the two objects.
Phương án này sai vì lifecycle rule chỉ quản lý chu kỳ sống của object trong GCS (như auto-delete, chuyển class storage sau thời gian), không ảnh hưởng đến cache directive ở CDN layer. Nó không ngăn cache mới hay xóa cache cũ ở edge locations. -
✅ Add a Cache-Control entry with value private to the metadata of the object you don't want to be cached anymore. Invalidate all the previously cached copies.
Như đã giải thích ở phần đáp án đúng: Hoàn toàn chính xác. Cache-Control: private + purge cache là combo chuẩn để bypass CDN cho object cụ thể.
📘 Tài liệu tham khảo (cập nhật mới nhất 2026)
- Cloud CDN: Cache invalidation 🛠️ (Hướng dẫn purge cache qua API hoặc Console).
- Using Cache-Control metadata in GCS 📖 (Chi tiết Cache-Control: private ngăn shared cache).
- Best practices for Cloud CDN caching (Phiên bản 2026: Hỗ trợ advanced directives như s-maxage cho edge-specific).
- AWS tương tự (nếu nhầm lẫn): CloudFront với S3 dùng Object metadata Cache-Control, nhưng câu hỏi rõ là GCS + Cloud CDN.
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo gsutil command để set metadata: gsutil setmeta -h "Cache-Control:private" gs://bucket/object.