Ngân hàng đề — Google Cloud Associate Cloud Engineer
Tìm thấy 449 câu.
- A Create an instance template with the container image, and deploy a Managed Instance Group with Autoscaling.
- B Upload Docker images to Artifact Registry, and deploy the application on Google Kubernetes Engine using Standard mode.
- C Upload Docker images to the Cloud Storage, and deploy the application on Google Kubernetes Engine using Standard mode.
- D Upload Docker images to Artifact Registry, and deploy the application on Cloud Run.
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 triển khai ứng dụng Docker images trên Google Cloud Platform (GCP) một cách serverless (không cần quản lý hạ tầng), đồng thời đảm bảo tự động scale khi ứng dụng phổ biến hơn. Đội ngũ phát triển muốn tránh quản lý VM, cluster hay bất kỳ infra nào. Đây là kịch bản điển hình cho các ứng dụng containerized cần fully managed và autoscaling dựa trên traffic (CPU, requests,...).
Yêu cầu chính:
- Sử dụng Docker images đã sẵn.
- Không quản lý infra (no ops).
- Auto-scale linh hoạt ✅.
Bối cảnh kiến thức GCP mới nhất (cập nhật đến 2026): Cloud Run là dịch vụ serverless containers hàng đầu, hỗ trợ scale từ 0 đến hàng nghìn instances tự động, tích hợp Artifact Registry làm image registry chuẩn. Không cần lo cluster hay VM.
📘 Tài liệu tham khảo:
- Cloud Run Documentation (Google Cloud, phiên bản 2024-2026).
- Artifact Registry Overview.
- Associate Cloud Engineer Exam Guide (chủ đề Deploy & Manage Containers).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Upload Docker images to Artifact Registry, and deploy the application on Cloud Run.
Lý do chi tiết 🛠️:
- Artifact Registry là registry chính thức, an toàn của GCP để lưu trữ và quản lý Docker images (thay thế Container Registry cũ), hỗ trợ vulnerability scanning và IAM tích hợp.
- Cloud Run là dịch vụ serverless hoàn hảo: Deploy trực tiếp từ image, không quản lý infra (no servers, no clusters), auto-scale từ 0-1000+ instances dựa trên concurrency/requests. Hỗ trợ HTTP/gRPC, tích hợp IAM, VPC, và scale-to-zero tiết kiệm chi phí.
- Đáp ứng 100% yêu cầu: Không ops, scale tự động khi popular. Đây là best practice cho app web/microservices containerized trên GCP.
📋 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 một cách chi tiết, 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 bằng tiếng Việt rõ ràng:
-
Create an instance template with the container image, and deploy a Managed Instance Group with Autoscaling.
❌ Sai. Phương án này sử dụng Compute Engine với Managed Instance Group (MIG) và autoscaling dựa trên metrics (CPU/Memory). Tuy có auto-scale, nhưng vẫn phải quản lý infra VM (patching, networking, instance template), vi phạm yêu cầu "không quản lý infra". Không serverless, tốn kém hơn cho container đơn giản. -
Upload Docker images to Artifact Registry, and deploy the application on Google Kubernetes Engine using Standard mode.
❌ Sai. Artifact Registry đúng chỗ lưu image, nhưng GKE Standard mode yêu cầu quản lý cluster Kubernetes (node pools, upgrades, scaling cluster thủ công). Không fully managed infra, đội ngũ vẫn phải ops Kubernetes. (Lưu ý: Autopilot mode tốt hơn nhưng vẫn không serverless như Cloud Run). -
Upload Docker images to the Cloud Storage, and deploy the application on Google Kubernetes Engine using Standard mode.
❌ Sai kép. Cloud Storage chỉ lưu object storage (files/static assets), không phải image registry chuẩn cho Docker (không hỗ trợ OCI format, tagging, scanning). GKE Standard lại yêu cầu quản lý cluster như trên. Sai hoàn toàn về lưu trữ và infra management. -
Upload Docker images to Artifact Registry, and deploy the application on Cloud Run.
✅ Đúng. Như đã giải thích ở phần đáp án: Artifact Registry + Cloud Run = serverless hoàn hảo, auto-scale thông minh (concurrency-based), không ops, deploy nhanh bằnggcloud run deploy. Best fit cho yêu cầu! 🚀
- A Store the application data on a zonal persistent disk. Create a snapshot schedule for the disk. If an outage occurs, create a new disk from the most recent snapshot and attach it to a new VM in another zone.
- B Store the application data on a zonal persistent disk. If an outage occurs, create an instance in another zone with this disk attached.
- C Store the application data on a regional persistent disk. Create a snapshot schedule for the disk. If an outage occurs, create a new disk from the most recent snapshot and attach it to a new VM in another zone.
- D Store the application data on a regional persistent disk. If an outage occurs, create an instance in another zone with this disk attached.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc chủ đề High Availability (HA) trong Google Cloud Platform (GCP), cụ thể là chiến lược di chuyển ứng dụng quan trọng từ data center on-premise sang GCP. Mục tiêu là đảm bảo dữ liệu ứng dụng luôn sẵn sàng ngay lập tức (immediately available) nếu xảy ra sự cố zonal failure (một zone bị lỗi).
- Bối cảnh: Ứng dụng business-critical cần HA, nghĩa là không được downtime dài. Zonal failure là sự cố chỉ ảnh hưởng đến một zone trong region (ví dụ: us-central1-a fail, nhưng us-central1-b vẫn ok).
- Yêu cầu chính: Dữ liệu phải immediately available ở zone khác mà không cần thời gian recovery dài (như snapshot/restore).
- Khái niệm cốt lõi (dựa trên GCP docs cập nhật 2024-2026):
- Zonal Persistent Disk: Lưu trữ ở một zone duy nhất, không replicate tự động → Không HA cross-zone.
- Regional Persistent Disk (pd-ssd hoặc pd-balanced): Replicate synchronous qua hai zone trong cùng region → Tự động HA, có thể attach ngay vào VM ở zone khác mà không mất dữ liệu.
📘 Nguồn tham khảo:
- Google Cloud Persistent Disk (cập nhật 2025: Hỗ trợ multi-zone replication tự động).
- GCP HA Best Practices (khuyến nghị Regional PD cho workload critical).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Store the application data on a regional persistent disk. If an outage occurs, create an instance in another zone with this disk attached.
Lý do 🛠️:
- Regional Persistent Disk được replicate tự động và synchronous qua hai zone trong region, đảm bảo zero data loss và immediately available khi zonal failure xảy ra.
- Có thể attach trực tiếp vào VM mới ở zone khác mà không cần snapshot hay recreate disk → Thời gian recovery chỉ vài giây/phút, phù hợp HA strategy.
- Đây là giải pháp native GCP cho ứng dụng critical, tránh RTO (Recovery Time Objective) cao.
❌ 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. Mỗi phương án được đánh giá đúng/sai với lý do chi tiết:
-
[SAI] Store the application data on a zonal persistent disk. Create a snapshot schedule for the disk. If an outage occurs, create a new disk from the most recent snapshot and attach it to a new VM in another zone.
❌ Lý do sai: Zonal Persistent Disk chỉ tồn tại ở một zone duy nhất, nếu zone fail thì disk unavailable hoàn toàn. Snapshot schedule chỉ là backup asynchronous (có RPO - Recovery Point Objective vài phút/giờ), việc recreate disk từ snapshot mất thời gian dài (15-30 phút) → Không "immediately available", vi phạm yêu cầu HA. -
[SAI] Store the application data on a zonal persistent disk. If an outage occurs, create an instance in another zone with this disk attached.
❌ Lý do sai: Zonal Persistent Disk không thể attach cross-zone (chỉ trong cùng zone). Nếu zone fail, disk "chết" luôn → Không thể tạo instance ở zone khác và attach, dẫn đến downtime lớn. Đây là lỗi cơ bản về zonal resource. -
[SAI] Store the application data on a regional persistent disk. Create a snapshot schedule for the disk. If an outage occurs, create a new disk from the most recent snapshot and attach it to a new VM in another zone.
❌ Lý do sai: Regional Persistent Disk đã HA sẵn (replicate tự động), không cần snapshot để recover immediately. Việc dùng snapshot là thừa thãi và chậm (tạo disk mới mất thời gian), làm phức tạp hóa → Không tận dụng tối ưu tính năng native của Regional PD.
Tóm tắt khuyến nghị 🚀: Sử dụng Regional Persistent Disk kết hợp Managed Instance Groups (MIG) cho VM để tự động failover toàn diện!
- A Grant the basic role roles/viewer and the predefined role roles/compute.admin to the DevOps group.
- B Create an IAM policy and grant all compute.instanceAdmin.* permissions to the policy. Attach the policy to the DevOps group.
- C Create a custom role at the folder level and grant all compute.instanceAdmin.* permissions to the role. Grant the custom role to the DevOps group.
- D Grant the basic role roles/editor to the DevOps group.
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 quản lý quyền truy cập IAM (Identity and Access Management) trong Google Cloud Platform (GCP), cụ thể là dự án phát triển (development project). Nhóm DevOps cần quyền kiểm soát đầy đủ (full control) đối với các tài nguyên Compute Engine (như VM instances, disks, images, v.v.), nhưng không được phép tạo hoặc cập nhật bất kỳ tài nguyên nào khác trong dự án (ví dụ: Cloud Storage, BigQuery, VPC networks ngoài Compute, v.v.).
Yêu cầu phải tuân thủ khuyến nghị chính thức của Google về việc thiết lập quyền:
- Google khuyến nghị sử dụng basic roles (Viewer, Editor, Owner) kết hợp với predefined roles (vai trò được định nghĩa sẵn) thay vì custom roles, trừ khi thực sự cần thiết.
- Điều này giúp giảm thiểu quyền thừa (principle of least privilege), dễ quản lý và tuân thủ best practices.
📘 Nguồn tham khảo: - Google Cloud IAM Best Practices (cập nhật 2024-2026).
- Compute Engine IAM Roles (phiên bản mới nhất 2026, roles/compute.admin vẫn là predefined role chuẩn cho full Compute control).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Grant the basic role roles/viewer and the predefined role roles/compute.admin to the DevOps group.
Lý do:
- 🛠️ roles/compute.admin (predefined role): Cung cấp full control cho tất cả tài nguyên Compute Engine (instances, disks, snapshots, images, v.v.), bao gồm create, update, delete, mà không ảnh hưởng đến tài nguyên khác như Storage hay BigQuery.
- roles/viewer (basic role): Cho phép read-only trên toàn dự án, giúp DevOps xem metadata, logs, và trạng thái project mà không edit được tài nguyên khác.
- Kết hợp này tuân thủ khuyến nghị của Google: Sử dụng basic role + predefined role để đạt least privilege, tránh quyền thừa. Không cần custom role, giảm rủi ro.
✅ Đây là giải pháp chính xác theo exam Associate Cloud Engineer (cập nhật 2026).
📋 Giải thích tất cả các phương án (đúng/sai)
-
Grant the basic role roles/viewer and the predefined role roles/compute.admin to the DevOps group.
✅ Đúng: Như giải thích trên, kết hợp viewer (read project-wide) + compute.admin (full Compute control) đảm bảo full quyền Compute mà không chạm đến tài nguyên khác. Tuân thủ best practices GCP (least privilege + predefined roles). -
Create an IAM policy and grant all compute.instanceAdmin. permissions to the policy. Attach the policy to the DevOps group.*
❌ Sai: compute.instanceAdmin.* chỉ cho quyền admin trên instances (VM), thiếu quyền cho disks, images, firewalls, v.v. (cần full compute.*). Tạo IAM policy riêng lẻ không phải khuyến nghị Google (nên dùng predefined roles). Dẫn đến quyền không đầy đủ. -
Create a custom role at the folder level and grant all compute.instanceAdmin. permissions to the role. Grant the custom role to the DevOps group.*
❌ Sai: Tương tự option trước, compute.instanceAdmin.* không đầy đủ cho full Compute control (chỉ instances). Custom role ở folder level thừa phạm vi (chỉ cần project level), và Google không khuyến nghị custom roles trừ khi predefined không đủ – vi phạm best practices. -
Grant the basic role roles/editor to the DevOps group.
❌ Sai: roles/editor cho quyền edit rộng rãi toàn dự án (create/update Storage, BigQuery, VPC, v.v.), vi phạm yêu cầu "không tạo/update tài nguyên khác". Quá quyền thừa, không tuân thủ least privilege.
🛠️ Lời khuyên thực hành: Trong console GCP, gán roles qua IAM & Admin > IAM, chọn group và add roles. Test bằng gcloud projects get-iam-policy để verify!
- A Use your existing CI/CD pipeline. Use the generated Docker images and deploy them to Cloud Run. Update the configurations and the required endpoints.
- B Use your existing continuous integration and delivery (CI/CD) pipeline. Use the generated Docker images and deploy them to Cloud Function. Use the same configuration as on-premises.
- C Use the existing codebase and deploy each service as a separate Cloud Function. Update the configurations and the required endpoints.
- D Use your existing codebase and deploy each service as a separate Cloud Run. Use the same configurations as on-premises.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một ứng dụng thương mại điện tử (ecommerce) đang chạy on-premises với kiến trúc microservices phức tạp được viết bằng Python, mỗi microservice chạy trong Docker containers. Các cấu hình (configurations) được inject qua environment variables. Nhiệm vụ là deploy ứng dụng hiện tại lên giải pháp serverless trên Google Cloud mà không cần thay đổi lớn codebase hoặc Docker images.
🔑 Yêu cầu chính:
- Giữ nguyên Docker images và CI/CD pipeline hiện có.
- Chuyển sang serverless (không quản lý server, scale tự động).
- Cập nhật configs/endpoints nếu cần vì môi trường cloud thay đổi (ví dụ: internal networking, endpoints giữa services).
Serverless options phù hợp trên Google Cloud (cập nhật đến 2025-2026): Cloud Run là lựa chọn lý tưởng cho containers (hỗ trợ Docker trực tiếp, fully managed, Knative-based). Cloud Functions dành cho functions nhỏ, stateless, không hỗ trợ full containers phức tạp.
📘 Nguồn tham khảo:
- Cloud Run Documentation (hỗ trợ deploy Docker images serverless).
- Cloud Functions vs Cloud Run (so sánh services).
✅ Đáp án đúng
Đáp án đúng: Use your existing CI/CD pipeline. Use the generated Docker images and deploy them to Cloud Run. Update the configurations and the required endpoints.
Lý do chọn 🛠️:
- Cloud Run hoàn hảo cho microservices trong Docker containers vì hỗ trợ deploy trực tiếp Docker images mà không cần rebuild code.
- Giữ nguyên CI/CD pipeline và Docker images từ on-premises → Tiết kiệm thời gian migrate.
- Update configurations/endpoints là cần thiết vì serverless yêu cầu điều chỉnh env vars (ví dụ: service discovery qua Cloud Run URLs, VPC peering nếu cần internal comms). Đây là best practice để services giao tiếp (traffic management via Cloud Load Balancing nếu scale lớn).
- Phù hợp serverless: Auto-scale, pay-per-use, zero-downtime deploys.
📋 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). Mỗi phương án được đánh giá ✅ (đúng) hoặc ❌ (sai), kèm lý do chi tiết bằng tiếng Việt.
-
Use your existing CI/CD pipeline. Use the generated Docker images and deploy them to Cloud Run. Update the configurations and the required endpoints.
✅ Đúng 🏆: Như giải thích trên. Cloud Run hỗ trợ Docker images native (build từ Dockerfile), tích hợp CI/CD (Cloud Build), và env vars injection. Update endpoints đảm bảo microservices kết nối (ví dụ: dùng Cloud Run fully qualified domain names - FQDN). -
Use your existing continuous integration and delivery (CI/CD) pipeline. Use the generated Docker images and deploy them to Cloud Function. Use the same configuration as on-premises.
❌ Sai 🚫: Cloud Functions KHÔNG hỗ trợ deploy Docker images trực tiếp (dù Gen2 hỗ trợ custom runtime, vẫn chỉ cho functions code-based như Python handlers, không full containers phức tạp). Phải refactor code thành event-driven functions → Không giữ nguyên Docker. "Same config" cũng sai vì Cloud Functions stateless, timeout ngắn (max 60s Gen2), không phù hợp microservices dài hơi. -
Use the existing codebase and deploy each service as a separate Cloud Function. Update the configurations and the required endpoints.
❌ Sai 🔧: Cloud Functions dành cho single-purpose functions (stateless, event-triggered như HTTP/PubSub), KHÔNG phù hợp microservices phức tạp với stateful logic, long-running processes. Phải refactor toàn bộ codebase Python thành function handlers → Vi phạm yêu cầu "deploy current application" mà không thay đổi lớn. Dù update configs, vẫn fail về architecture mismatch. -
Use your existing codebase and deploy each service as a separate Cloud Run. Use the same configurations as on-premises.
❌ Sai ⚠️: Cloud Run đúng cho containers/codebase, nhưng "same configurations" sai vì on-premises env vars (local networking, ports) không work trực tiếp trên serverless (cần update endpoints cho inter-service calls, ví dụ: dùng Serverless VPC Access hoặc Internal Load Balancer). Microservices cần discovery mới → Dẫn đến broken comms, không scale đúng.
💡 Lời khuyên thực tế: Sau deploy Cloud Run, dùng Cloud Build tích hợp CI/CD, Artifact Registry lưu images, và Traffic Splitting cho blue-green deploys. Test với gcloud run deploy để verify!
- A Assign the pods of the image rendering microservice a higher pod priority than the other microservices.
- B Create a node pool with compute-optimized machine type nodes for the image rendering microservice. Use the node pool with general-purpose machine type nodes for the other microservices.
- C Use the node pool with general-purpose machine type nodes for the image rendering microservice. Create a node pool with compute-optimized machine type nodes for the other microservices.
- D Configure the required amount of CPU and memory in the resource requests specification of the image rendering microservice deployment. Keep the resource requests for the other microservices at the default.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc về Google Kubernetes Engine (GKE) trên Google Cloud Platform (GCP), tập trung vào việc tối ưu hóa tài nguyên cho các workload microservices trong một cluster Kubernetes.
- Bối cảnh: Bạn đang chạy nhiều microservices trên một cluster GKE.
- Một microservice chuyên rendering images (xử lý hình ảnh) cần lượng CPU lớn so với memory (tức là workload compute-intensive, ưu tiên CPU cao).
- Các microservices khác được tối ưu cho n2-standard machine types (loại máy general-purpose, cân bằng CPU và memory).
- Yêu cầu: Tối ưu cluster để tất cả workloads sử dụng tài nguyên hiệu quả nhất (resource efficiency), tránh lãng phí CPU/memory trên các node không phù hợp.
- Vấn đề chính: Phân bổ node pools phù hợp với đặc tính workload để tránh tình trạng over-provisioning (dùng máy mạnh hơn cần thiết) hoặc under-provisioning (không đủ tài nguyên).
Mục tiêu là sử dụng node pools riêng biệt với machine types phù hợp, tận dụng tính năng multiple node pools của GKE (hỗ trợ từ phiên bản GKE 1.12+, cập nhật đến 2026 với GKE Standard/Autopilot).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create a node pool with compute-optimized machine type nodes for the image rendering microservice. Use the node pool with general-purpose machine type nodes for the other microservices.
Lý do:
- Microservice rendering images cần CPU cao (compute-optimized như C3, C2 machine types: tỷ lệ vCPU/RAM cao, lên đến 112 vCPU/node).
- Các microservice khác phù hợp n2-standard (general-purpose: cân bằng, như 2-128 vCPU với RAM tương ứng).
- Tạo node pool riêng (sử dụng node selectors, taints/tolerations hoặc node affinity) để schedule pods đúng node, tối ưu chi phí và performance.
- Điều này tuân thủ best practices GKE: Workload-specific node pools giúp autoscaling hiệu quả, giảm lãng phí (theo Google Cloud Well-Architected Framework 2024-2026).
📋 Giải thích tất cả các phương án (đúng/sai)
-
Assign the pods of the image rendering microservice a higher pod priority than the other microservices.
❌ Sai: Pod Priority (PriorityClass) chỉ ưu tiên scheduling/eviction pods khi cluster thiếu tài nguyên, không thay đổi loại hardware (machine type). Không giải quyết vấn đề CPU cao cho rendering workload, dẫn đến pods vẫn chạy trên node general-purpose không hiệu quả. -
Create a node pool with compute-optimized machine type nodes for the image rendering microservice. Use the node pool with general-purpose machine type nodes for the other microservices.
✅ Đúng: Như giải thích ở trên. Phân bổ chính xác: compute-optimized (C3/C2: CPU cao, ít RAM) cho rendering; general-purpose (N2-standard) cho các workload khác. Sử dụng node affinity để pods chỉ chạy trên pool phù hợp, tối ưu resource utilization lên đến 30-50% (theo benchmarks GCP). -
Use the node pool with general-purpose machine type nodes for the image rendering microservice. Create a node pool with compute-optimized machine type nodes for the other microservices.
❌ Sai: Đảo ngược hoàn toàn! Rendering cần CPU cao nhưng general-purpose (N2) có tỷ lệ CPU/RAM cân bằng → lãng phí (overpay cho RAM không dùng). Các microservice khác optimized cho N2 nhưng chạy trên compute-optimized → under-utilize CPU, tăng chi phí không cần thiết. -
Configure the required amount of CPU and memory in the resource requests specification of the image rendering microservice deployment. Keep the resource requests for the other microservices at the default.
❌ Sai: Resource requests/limits chỉ đảm bảo quota cho pods (Kubernetes scheduler phân bổ), nhưng không thay đổi hardware underlying (machine type của node). Rendering vẫn chạy trên node general-purpose → thiếu CPU thực tế, gây throttling/performance kém. Không tối ưu cluster-wide.
🛠️ Lưu ý thực hiện và best practices (GKE phiên bản mới nhất 2026)
- Sử dụng
gcloud container node-pools createđể tạo node pool với--machine-type=c3-highcpu-16(cho rendering) và--machine-type=n2-standard-4(cho others). - Áp dụng Pod Node Selector/Affinity hoặc Taints/Tolerations để isolate workloads.
- Kết hợp Cluster Autoscaler và Horizontal Pod Autoscaler (HPA) cho scaling tự động.
- Theo dõi bằng GKE Metrics (CPU utilization >80% trên compute-optimized).
📘 Tài liệu tham khảo (cập nhật 2026)
- Google Cloud Docs: Machine families (N2, C3) ✅
- GKE Multiple Node Pools 🛠️
- Optimizing GKE Workloads (Well-Architected) 📊
- Kubernetes Resource Management (tích hợp GKE).
Hy vọng phân tích này giúp bạn ôn thi Associate Cloud Engineer hiệu quả! 🚀
- A Create a GKE Autopilot cluster. Enroll the cluster in the rapid release channel.
- B Create a GKE Autopilot cluster. Enroll the cluster in the stable release channel.
- C Create a zonal GKE standard cluster. Enroll the cluster in the stable release channel.
- D Create a regional GKE standard cluster. Enroll the cluster in the rapid release channel.
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 triển khai một ứng dụng mới trên Kubernetes cho môi trường production (sản xuất), nơi ứng dụng là business critical (quan trọng kinh doanh) và cần tối ưu hóa độ tin cậy (reliability). Nhiệm vụ là cung cấp một Kubernetes cluster theo thực hành được Google khuyến nghị (Google-recommended practices).
- Bối cảnh chính: Sử dụng Google Kubernetes Engine (GKE) trên Google Cloud Platform (GCP).
- Yêu cầu cốt lõi: Cluster phải đáng tin cậy cao, giảm thiểu downtime, tự động hóa quản lý, và tuân thủ best practices từ Google cho production workloads.
- Các yếu tố liên quan:
- GKE Autopilot vs GKE Standard: Autopilot tự động quản lý nodes, scaling, và patching, giảm lỗi con người – lý tưởng cho reliability.
- Release channels: Stable (ổn định nhất, ít update, phù hợp production), Regular/Rapid (nhiều update mới, rủi ro cao hơn).
- Kiến thức cập nhật (đến 2026): Theo tài liệu GKE mới nhất (GKE version 1.29+), Google khuyến nghị Autopilot + Stable channel cho production critical để đảm bảo HA (High Availability), auto-healing, và ít disruption nhất. (Nguồn: Google Cloud GKE Best Practices, GKE Release Channels).
✅ Đáp án đúng
Create a GKE Autopilot cluster. Enroll the cluster in the stable release channel.
Lý do lựa chọn 📘:
- GKE Autopilot là mode được Google ưu tiên cho production vì nó tự động hóa hoàn toàn việc provision nodes, scaling, và security patching – giảm thiểu lỗi vận hành và tăng reliability lên đến 99.99% SLA.
- Stable release channel cung cấp Kubernetes versions ổn định nhất, với update kiểm soát chặt chẽ (chỉ 3-4 lần/năm), tránh breaking changes đột ngột. Đây chính là Google-recommended cho workloads business critical, giúp duy trì uptime cao và dễ dự đoán.
🛠️ 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. Mỗi phương án được đánh giá ✅ (đúng) hoặc ❌ (sai), kèm lý do cụ thể dựa trên best practices GKE.
-
❌ [SAI] Create a GKE Autopilot cluster. Enroll the cluster in the rapid release channel.
Phương án này sai vì rapid release channel cập nhật Kubernetes quá nhanh (hàng tháng), có thể gây instability và downtime không mong muốn trong production critical. Autopilot tốt, nhưng rapid channel không phù hợp reliability – Google khuyên dùng stable/regular cho prod. -
✅ [ĐÚNG] Create a GKE Autopilot cluster. Enroll the cluster in the stable release channel.
Như đã giải thích ở trên: Kết hợp hoàn hảo Autopilot (tự động hóa cao) + stable channel (ổn định lâu dài), tuân thủ 100% Google best practices cho reliability. -
❌ [SAI] Create a zonal GKE standard cluster. Enroll the cluster in the stable release channel.
Sai vì zonal GKE Standard chỉ có HA trong một zone duy nhất (single-zone), dễ bị ảnh hưởng bởi zonal outage. Standard yêu cầu tự quản lý nodes (không auto như Autopilot), tăng workload ops. Stable channel tốt nhưng không bù đắp được hạn chế này cho business critical. -
❌ [SAI] Create a regional GKE standard cluster. Enroll the cluster in the rapid release channel.
Sai kép: Regional Standard có HA tốt (multi-zone), nhưng rapid channel vẫn rủi ro cao với update thường xuyên. Hơn nữa, Standard không tự động hóa bằng Autopilot, vi phạm nguyên tắc "optimized for reliability" – Google ưu tiên Autopilot cho prod mới.
Tài liệu tham khảo chính 🔗:
- GKE Autopilot Overview (Khuyến nghị cho production).
- GKE Release Channels (Stable cho reliability).
- GKE Production Checklist (Cập nhật 2025-2026).
Hy vọng phân tích này giúp bạn ôn thi Associate Cloud Engineer hiệu quả! 🚀
- A Export Cloud Monitoring metrics to BigQuery and use a Looker Studio dashboard to monitor your web application’s latency.
- B Create an alert policy to send a notification when the HTTP response latency exceeds the specified threshold.
- C Implement an App Engine service which invokes the Cloud Monitoring API and sends a notification in case of anomalies.
- D Use the Cloud Monitoring dashboard to observe latency and take the necessary actions when the response latency exceeds the specified threshold.
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 giám sát và thông báo tự động cho một ứng dụng web chạy trên Compute Engine (dịch vụ máy ảo của Google Cloud). Yêu cầu cụ thể là:
- Phát hiện tình trạng high latency (độ trễ cao) mà người dùng gặp phải, kéo dài ít nhất 5 phút.
- Thông báo tự động cho team support mà không tốn chi phí phát triển (no development cost).
- Sử dụng giải pháp được Google khuyến nghị (Google-recommended solution).
🛠️ Bối cảnh kỹ thuật: Trên Compute Engine, bạn có thể thu thập metric như HTTP response latency qua Cloud Monitoring (dịch vụ giám sát toàn diện của Google Cloud). Giải pháp cần tự động hóa alerting dựa trên threshold (ngưỡng), không yêu cầu code custom hay công cụ thủ công.
📘 Kiến thức cập nhật (tính đến 2026): Theo tài liệu Google Cloud mới nhất, Cloud Monitoring hỗ trợ Uptime Checks và Alerting Policies để theo dõi latency HTTP một cách native, với điều kiện thời gian (ví dụ: 5 phút liên tục). Không có thay đổi lớn từ phiên bản 2023-2026, vẫn ưu tiên alerting không code.
Nguồn tham khảo:
✅ Đáp án đúng và lý do lựa chọn
Create an alert policy to send a notification when the HTTP response latency exceeds the specified threshold.
Lý do:
- Đây là giải pháp chuẩn Google-recommended, sử dụng Cloud Monitoring Alerting Policies để thiết lập quy tắc tự động: Theo dõi metric HTTP response latency (từ Compute Engine hoặc Load Balancer), đặt threshold (ví dụ: > 500ms), và điều kiện thời gian (ít nhất 5 phút liên tục qua alignment period).
- Tự động gửi notification qua email, SMS, Slack, PagerDuty,... mà không cần code (no-code setup qua Console/UI).
- Hoàn hảo khớp yêu cầu: Real-time, zero dev cost, và hỗ trợ đầy đủ cho web app trên Compute Engine.
🛡️ Ưu điểm nổi bật: Có thể cấu hình M:N aggregation (nhiều metric, nhiều điều kiện) để tránh false positive.
🔍 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 một cách chi tiết, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá dựa trên tiêu chí: tự động thông báo, no dev cost, và Google-recommended.
-
❌ [SAI] Export Cloud Monitoring metrics to BigQuery and use a Looker Studio dashboard to monitor your web application’s latency.
Giải thích sai: Phương án này chỉ xuất metric sang BigQuery để phân tích dữ liệu lịch sử và hiển thị dashboard trên Looker Studio (trước là Data Studio). Nó không tự động gửi notification khi latency cao 5 phút – team phải thủ công kiểm tra dashboard. Ngoài ra, setup export và dashboard có thể cần config phức tạp (dù low-code), không phải giải pháp alerting real-time được Google ưu tiên cho alerting. Không khớp "no development cost" hoàn toàn vì cần thiết kế query/dashboard. -
✅ [ĐÚNG] Create an alert policy to send a notification when the HTTP response latency exceeds the specified threshold.
Giải thích đúng: Như đã phân tích ở trên, đây là cách native, zero-code nhất. Bạn chỉ cần vào Cloud Monitoring > Alerting > Create Policy, chọn metric http_server/response_latencies (từ Compute Engine/HTTP Load Balancer), đặt threshold + duration 5 phút, và chọn notifier (email/SMS). Hoàn toàn tự động, scalable, và được Google docs khuyến nghị đầu tiên cho trường hợp này. -
❌ [SAI] Implement an App Engine service which invokes the Cloud Monitoring API and sends a notification in case of anomalies.
Giải thích sai: Phương án yêu cầu triển khai service trên App Engine để gọi Cloud Monitoring API và xử lý anomaly – đây là custom development (viết code Python/Node.js,...), tốn development cost và thời gian maintain. Không phải giải pháp "no development cost", dù có thể work. Google không recommend vì đã có alerting built-in sẵn. -
❌ [SAI] Use the Cloud Monitoring dashboard to observe latency and take the necessary actions when the response latency exceeds the specified threshold.
Giải thích sai: Dashboard chỉ dùng để observe/visualize metric thủ công – team support phải chủ động theo dõi và "take actions" (như gửi email tay). Không có tự động notification, không đáp ứng "notified automatically". Đây là bước cơ bản nhưng không đủ cho yêu cầu alerting 24/7.
🧠 Tóm tắt khuyến nghị: Luôn ưu tiên Alerting Policies cho mọi trường hợp monitoring cần notify trên Google Cloud. Nếu cần nâng cao, kết hợp với Notification Channels hoặc Incident Response trong Cloud Monitoring!
- A Create a container for the set of binaries. Use Cloud Scheduler to start a Cloud Run job for the container.
- B Create a container for the set of binaries. Deploy the container to Google Kubernetes Engine (GKE) and use the Kubernetes scheduler to start the application.
- C Upload the code to Cloud Functions. Use Cloud Scheduler to start the application.
- D Lift and shift to a VM on Compute Engine. Use an instance schedule to start and stop the instance.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi mô tả một ứng dụng phân tích dữ liệu on-premises sử dụng các binaries (tập hợp các file thực thi) để xử lý các file dữ liệu trong bộ nhớ (in memory). Quy trình chạy khoảng 45 phút mỗi đêm lúc nửa đêm, với kích thước file dữ liệu dao động từ 1 GB đến 16 GB. Mục tiêu là di chuyển ứng dụng lên Google Cloud với nỗ lực tối thiểu (minimal effort) và chi phí thấp nhất (minimal cost).
🛠️ Yêu cầu chính cần xem xét:
- Minimal effort: Ưu tiên giải pháp không cần thay đổi code lớn, không containerize phức tạp, dễ lift-and-shift (chuyển nguyên xi).
- Minimal cost: Tận dụng tính năng tự động tắt/mở máy để chỉ chạy khi cần (nightly batch job), tránh chi phí idle.
- Yêu cầu tài nguyên: Xử lý in memory 16 GB → cần VM/instance có RAM lớn (ít nhất 16-32 GB), chạy 45 phút → không cần serverless phức tạp.
- Lịch chạy: Định kỳ nửa đêm → cần scheduler đơn giản.
📘 Kiến thức cập nhật (Google Cloud 2026): Dựa trên Compute Engine instance schedules (ra mắt 2022, hỗ trợ stop/start tự động), Cloud Run Jobs (hỗ trợ batch lên đến 24h nhưng memory max ~32GB/container), GKE cron jobs, Cloud Functions (max 60 phút execution, memory 8GB). Tài liệu chính: Google Cloud Compute Engine Scheduling, Cloud Run Jobs docs.
✅ Đáp án đúng
Lift and shift to a VM on Compute Engine. Use an instance schedule to start and stop the instance.
Lý do chọn đáp án đúng 🏆:
- Lift-and-shift là cách minimal effort nhất – chỉ cần upload binaries và data files lên VM (qua gsutil hoặc scp), cài đặt script chạy tự động (startup script), không cần containerize hay refactor code.
- Instance schedule (trong Compute Engine) cho phép tự động start VM lúc nửa đêm và stop sau 45 phút, tiết kiệm chi phí (chỉ tính phí khi chạy, scale to zero thực sự).
- Phù hợp RAM lớn (16GB+): VM e2-standard-16 hoặc n2-standard-32 dễ config, chi phí thấp cho batch job ngắn.
- Cost-effective: VM preemptible hoặc spot có thể dùng để giảm 60-90% chi phí.
❌ Giải thích tất cả các phương án
-
[SAI] Create a container for the set of binaries. Use Cloud Scheduler to start a Cloud Run job for the container.
❌ Sai vì: Yêu cầu containerize binaries (Dockerfile, build image) → effort cao hơn lift-and-shift. Cloud Run Jobs phù hợp batch nhưng memory max/container ~32GB (2026), tuy nhiên với data 16GB in memory cần nhiều CPU/RAM, và cold start có thể chậm cho large files. Cloud Scheduler + Run Jobs hoạt động nhưng không minimal effort (phải refactor so với VM thuần). Chi phí cao hơn nếu concurrency thấp. -
[SAI] Create a container for the set of binaries. Deploy the container to Google Kubernetes Engine (GKE) and use the Kubernetes scheduler to start the application.
❌ Sai vì: GKE quá phức tạp cho job đơn giản – cần cluster, containerize, config CronJob/Kubernetes scheduler → effort rất cao, chi phí cluster idle (dù Autopilot giảm nhưng vẫn > VM). Không phù hợp minimal effort/cost cho nightly 45 phút; GKE dành cho workloads liên tục hoặc scale lớn. -
[SAI] Upload the code to Cloud Functions. Use Cloud Scheduler to start the application.
❌ Sai vì: Cloud Functions là serverless function ngắn hạn, timeout max 60 phút (nhưng thực tế cho in-memory 16GB không khả thi: memory max 8GB gen2, execution time lý tưởng <15 phút). Không hỗ trợ binaries lớn/data files in memory – phải refactor thành function code (Python/Node.js), upload files riêng → effort cao, dễ OOM/error. Không minimal cho batch analytics nặng. -
[ĐÚNG] Lift and shift to a VM on Compute Engine. Use an instance schedule to start and stop the instance.
✅ Đúng như đã giải thích ở trên – minimal effort & cost lý tưởng cho legacy binaries, RAM cao, scheduler native.
🧮 Tóm tắt so sánh nhanh: | Tiêu chí | VM Compute Engine | Các option khác | |----------|-------------------|-----------------| | Effort | Thấp nhất ✅ | Cao (container/refactor) | | Cost | Thấp (schedule stop) ✅ | Cao hơn (idle/overhead) | | Phù hợp RAM/Data | Hoàn hảo | Giới hạn |
Nguồn tham khảo chính 📚:
- Compute Engine Instance Schedules (official docs 2026).
- Migrate to Google Cloud: Lift-and-Shift.
- Associate Cloud Engineer Exam Guide (Google Cloud Skills Boost, updated 2025).
Hy vọng phân tích giúp bạn ôn thi hiệu quả! 🚀 Nếu cần thêm ví dụ config VM, hỏi nhé!
•prod-cluster is a standard cluster.
•dev-cluster is an auto-pilot cluster.
When you run the kubectl get nodes command, you only see the nodes from prod-cluster. Which commands should you run to check the node status for dev-cluster?
-
A
gcloud container clusters get-credentials dev-cluster
kubectl get nodes
-
B
gcloud container clusters update -generate-password dev-cluster kubectl get nodes
-
C
kubectl config set-context dev-cluster
kubectl cluster-info
-
D
kubectl config set-credentials dev-cluster
kubectl cluster-info
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc chủ đề Google Kubernetes Engine (GKE) trên Google Cloud Platform (GCP), tập trung vào việc quản lý context của kubectl khi làm việc với nhiều cluster.
-
Tình huống: Bạn đã tạo hai cluster GKE bằng lệnh
gcloud container clusters create:prod-cluster: Đây là standard cluster (cluster truyền thống, nơi bạn có quyền kiểm soát trực tiếp các node).dev-cluster: Đây là autopilot cluster (cluster tự động quản lý, Google tự động scale và quản lý node, nhưng bạn vẫn có thể query thông tin node quakubectl).
-
Vấn đề: Khi chạy
kubectl get nodes, bạn chỉ thấy node từprod-clustervìkubectlđang sử dụng current context mặc định (thường là context của cluster cuối cùng bạn truy cập hoặc config gần nhất). Để xem node củadev-cluster, cần chuyển context sang cluster đó. -
Mục tiêu: Tìm lệnh đúng để cập nhật kubeconfig và kiểm tra node status cho
dev-cluster. Lưu ý: Trong GKE Autopilot (cập nhật đến 2026), node vẫn hiển thị quakubectl get nodesdù được managed bởi Google, nhưng bạn không chỉnh sửa chúng trực tiếp. 🛠️
Kiến thức dựa trên tài liệu GKE mới nhất (2026): gcloud container clusters get-credentials là cách chuẩn để set context hiện tại.
📘 Nguồn tham khảo:
- GKE Documentation: gcloud container clusters get-credentials
- Kubernetes Config Management
- GKE Autopilot Overview
✅ Đáp án đúng và lý do chọn
Đáp án đúng:gcloud container clusters get-credentials dev-clusterkubectl get nodes
Lý do:
Lệnh gcloud container clusters get-credentials dev-cluster sẽ tải credentials và cập nhật file kubeconfig (thường là ~/.kube/config), đồng thời set context của dev-cluster thành current context (mặc định). Sau đó, kubectl get nodes sẽ hiển thị node status chính xác của dev-cluster. Đây là quy trình chuẩn theo best practice của Google Cloud, áp dụng cho cả standard và autopilot cluster. Không cần thêm bước nào khác! 🚀
📋 Giải thích tất cả các phương án (đúng/sai)
-
✅ Phương án ĐÚNG (
gcloud container clusters get-credentials dev-clusterkubectl get nodes):
Như đã giải thích ở trên, lệnh này hoàn hảo vì nó tự động merge credentials vào kubeconfig và chuyển context sangdev-cluster. Kết quả:kubectl get nodessẽ liệt kê node của autopilot cluster ngay lập tức. Siêu hiệu quả! 💯 -
❌ Phương án SAI (
gcloud container clusters update -generate-password dev-clusterkubectl get nodes):
Lệnhgcloud container clusters update -generate-passwordchỉ tạo/tạo lại password cho basic authentication của cluster (dùng cho user admin), không liên quan gì đến việc cập nhật context kubeconfig hay chuyển cluster. Chạy lệnh này sẽ không thay đổi current context, nênkubectl get nodesvẫn chỉ show node từprod-cluster. Hoàn toàn vô dụng ở đây! 🚫 -
❌ Phương án SAI (
kubectl config set-context dev-clusterkubectl cluster-info):kubectl config set-context dev-clustergiả sử contextdev-clusterđã tồn tại trong kubeconfig, nhưng nếu chưa get-credentials, context này chưa được tạo hoặc credentials chưa đúng. Hơn nữa,kubectl cluster-infochỉ hiển thị thông tin tổng quát về cluster (như master endpoint), không phải node status. Không giải quyết được vấn đề! 🔧 -
❌ Phương án SAI (
kubectl config set-credentials dev-clusterkubectl cluster-info):kubectl config set-credentials dev-clusterdùng để thêm/sửa credentials thủ công cho một user cụ thể, nhưng không tạo context mới hay chuyển cluster. Context vẫn ởprod-cluster. Tương tự,kubectl cluster-infokhông hiển thị node. Sai hoàn toàn về mục đích! ❌
Kết luận: Hãy luôn dùng gcloud container clusters get-credentials để quản lý multi-cluster mượt mà. Nếu bạn gặp lỗi auth, kiểm tra IAM roles như roles/container.clusterViewer. Chúc ôn thi Associate Cloud Engineer thành công! 🌟
•All service accounts that require a key should be created in a centralized project called pj-sa.
•Service account keys should only be valid for one day.
You need a Google-recommended solution that minimizes cost. What should you do?
- A Implement a Cloud Run job to rotate all service account keys periodically in pj-sa. Enforce an org policy to deny service account key creation with an exception to pj-sa.
- B Implement a Kubernetes CronJob to rotate all service account keys periodically. Disable attachment of service accounts to resources in all projects with an exception to pj-sa.
- C Enforce an org policy constraint allowing the lifetime of service account keys to be 24 hours. Enforce an org policy constraint denying service account key creation with an exception on pj-sa.
- D Enforce a DENY org policy constraint over the lifetime of service account keys for 24 hours. Disable attachment of service accounts to resources in all projects with an exception to pj-sa.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc chủ đề quản lý Service Account (SA) trong Google Cloud Platform (GCP), tập trung vào việc thực thi quy trình sử dụng service account keys ngắn hạn (short-lived credentials) để tăng cường bảo mật.
- Tình huống: Các lập trình viên đang sử dụng nhiều service account keys trong quá trình phát triển, dẫn đến rủi ro bảo mật (keys dài hạn dễ bị lộ). Bạn cần giải pháp tạm thời nhanh chóng trong khi chờ cải thiện dài hạn.
- Yêu cầu cụ thể:
- Tất cả service accounts cần key phải được tạo tập trung ở project pj-sa.
- Service account keys chỉ hợp lệ trong 1 ngày (24 giờ).
- Tiêu chí giải pháp: Phải là Google-recommended (theo best practices của GCP), giảm thiểu chi phí (minimize cost), không dùng các giải pháp tốn kém như chạy job định kỳ.
Mục tiêu là enforce policy để ngăn tạo key ở nơi khác và giới hạn thời hạn key, thay vì tự động rotate thủ công (tốn tài nguyên). Kiến thức dựa trên GCP Organization Policy phiên bản mới nhất (cập nhật đến 2026), với các constraint như iam.allowedServiceAccountKeyDurationHours và iam.disableServiceAccountKeyCreation (theo tài liệu chính thức GCP IAM best practices).
📘 Tài liệu tham khảo:
- GCP IAM Best Practices for Service Accounts
- Organization Policy Constraints
- Restrict Service Account Key Duration
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng là phương án thứ 3:
Enforce an org policy constraint allowing the lifetime of service account keys to be 24 hours. Enforce an org policy constraint denying service account key creation with an exception on pj-sa.
Lý do 🛠️:
- Đây là giải pháp Google-recommended sử dụng Organization Policy (Org Policy) để enforce toàn tổ chức:
- Constraint
iam.allowedServiceAccountKeyDurationHoursđặt max lifetime = 24 giờ (cho phép keys chỉ tồn tại 1 ngày, tự động hết hạn). - Constraint
iam.disableServiceAccountKeyCreationdeny tạo key ở mọi nơi, trừ exception cho project pj-sa (đảm bảo SA tập trung).
- Constraint
- Minimize cost: Không cần chạy job/service nào (zero runtime cost), chỉ cấu hình policy một lần tại Organization/Folder level.
- Hoàn hảo khớp yêu cầu: Short-lived keys + centralized project, không cần rotate thủ công.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ Phương án 1 (SAI):
Implement a Cloud Run job to rotate all service account keys periodically in pj-sa. Enforce an org policy to deny service account key creation with an exception to pj-sa.
Phân tích sai ❌: Việc dùng Cloud Run job để rotate keys định kỳ tốn chi phí (compute time, invocations), không phải cách Google recommend cho short-lived creds (GCP ưu tiên policy thay vì automation thủ công). Rotate không enforce chính xác "1 ngày valid" (có thể keys vẫn dài hạn nếu không sync), và chỉ rotate ở pj-sa mà không giới hạn lifetime. -
❌ Phương án 2 (SAI):
Implement a Kubernetes CronJob to rotate all service account keys periodically. Disable attachment of service accounts to resources in all projects with an exception to pj-sa.
Phân tích sai ❌: Kubernetes CronJob yêu cầu GKE cluster (chi phí cao liên tục), không minimize cost. "Disable attachment" (constraints/iam.allowedServiceAccountAttachment) chỉ ngăn gắn SA vào resources (như VM/Cloud Run), không liên quan đến key creation/lifetime. Không enforce short-lived keys đúng yêu cầu. -
✅ Phương án 3 (ĐÚNG):
Enforce an org policy constraint allowing the lifetime of service account keys to be 24 hours. Enforce an org policy constraint denying service account key creation with an exception on pj-sa.
Phân tích đúng ✅: Như đã giải thích ở phần đáp án đúng. Sử dụng đúng 2 constraints GCP:iam.allowedServiceAccountKeyDurationHours=24(giới hạn lifetime) +iam.disableServiceAccountKeyCreationvới exception pj-sa. Giải pháp native, zero-cost, scalable toàn org. -
❌ Phương án 4 (SAI):
Enforce a DENY org policy constraint over the lifetime of service account keys for 24 hours. Disable attachment of service accounts to resources in all projects with an exception to pj-sa.
Phân tích sai ❌: Không tồn tại Org Policy "DENY lifetime" (GCP chỉ cóALLOWED durationquaiam.allowedServiceAccountKeyDurationHours, không phải DENY). "Disable attachment" sai ngữ cảnh (như phương án 2), không enforce key creation ở pj-sa hay short-lived chính xác. Không khớp best practices.
🛡️ Lời khuyên thực tế: Áp dụng ngay Org Policy qua Console/CLI (gcloud org-policies set-policy), test ở folder con trước khi rollout org-wide. Kết hợp Workload Identity Federation cho long-term để loại bỏ keys hoàn toàn!