Community Q&A
ACE — frequently asked questions
Community-vetted answers to 54 common questions about this exam, each traced back to a specific practice question.
Questions from real practice questions
Each Q&A comes from a specific question — follow the link for the full analysisConfigure Autohealing for Managed Instance Groups
Why can't I use a Network Load Balancer health check for autohealing?
Network Load Balancer health checks only determine if an instance receives traffic. They do not trigger the deletion and recreation of the VM instance itself.
Does enabling autoscaling automatically heal broken VMs?
No. Autoscaling adjusts the number of instances based on load metrics. Autohealing is a separate setting within the MIG that monitors health and replaces unhealthy instances.
Google Cloud Storage for Disaster Recovery
Why isn't Coldline Storage suitable for disaster recovery?
Coldline is optimized for cost and infrequent access, lacking the high availability and rapid retrieval capabilities needed when restoring operations after a disaster.
What is the difference between backup and disaster recovery storage?
Backup storage focuses on long-term retention and cost, while disaster recovery storage prioritizes immediate availability and accessibility to resume operations quickly.
Cloud Storage Lifecycle Management Age Conditions
Does moving an object to Coldline reset its creation date?
No. Standard lifecycle management transitions do not update the object's timeCreated metadata. The age continues to count from the original creation.
Why is gsutil rewrite not suitable for this policy?
gsutil rewrite is a manual command for immediate execution. It cannot automate recurring rules like deleting objects after one year based on their age.
Connecting to SQL Server on Compute Engine via RDP
Why doesn't the GCP Console RDP button allow direct login?
The button triggers a download of an RDP config file or redirects to instructions for using a local client; it does not host an interactive RDP session in the browser.
Is port 22 used for RDP connections to Windows?
No, port 22 is for SSH (Linux). RDP uses port 3389, which must be open in the firewall rules.
Managing Multiple GCP Accounts with gcloud Configurations
Why can't I just use gcloud auth login for each account?
While you can authenticate to different accounts, gcloud configurations allow you to save specific project, region, and zone defaults per account, making it easier to run commands without re-specifying flags.
What is the difference between gcloud config set and gcloud config configurations create?
'config set' modifies the currently active configuration's properties. 'configurations create' creates an entirely new named configuration profile that can be activated later.
Granting External Auditors Access to BigQuery Audit Logs
Why grant audit log access to a group instead of individual auditor accounts?
A group lets you add or remove all auditors centrally in one place when an audit engagement starts or ends, instead of editing IAM bindings for each user account separately.
Why use predefined roles instead of custom roles for external auditors?
Google's auditing job-function guidance says predefined roles like logging.viewer and bigQuery.dataViewer are already vetted for the auditor use case, so you avoid the maintenance burden of defining and updating custom permissions.
How to Enable Cloud Pub/Sub API for App Engine
Why can't the service account auto-enable the Cloud Pub/Sub API on first access?
Google Cloud has no automatic enablement for disabled APIs; a first call to a disabled API simply fails until an admin enables it for the project.
Why is granting Cloud Pub/Sub Admin to enable the API a bad answer?
It forces the app to hold serviceusage.services.enable plus a broad admin role at runtime, violating least privilege when a one-time Console enable step suffices.
Consolidating Multi-Project Monitoring in One Stackdriver Dashboard
Why is adding projects as a Group criterion (option D) wrong?
Groups filter resources inside an existing workspace using labels and metadata criteria; they cannot attach new projects to a Stackdriver account, so other projects' metrics would still go uncollected.
Does Shared VPC help consolidate Stackdriver dashboards across projects?
No. Shared VPC links project networks for traffic, not monitoring data; dashboards consolidate only when the projects are linked as monitored projects in one workspace.
Single Instance Managed Instance Group Configuration on GCP
Why does autoscaling Off fail to recreate a deleted instance in a MIG?
With autoscaling off, the MIG's target size is fixed but not actively enforced. A community member tested this in the GCP console and confirmed that deleting an instance did NOT trigger recreation when autoscaling was disabled.
How does autohealing differ from autoscaling for a single-instance MIG?
Autohealing detects unhealthy instances via health checks and replaces them, while autoscaling enforces the minimum and maximum instance counts. The question doesn't mention autohealing, so autoscaling is the intended mechanism for guaranteed availability.
Authenticating On-Premises Apps to GCP AutoML APIs
Why isn't option A correct if it also mentions using service account credentials?
Option A describes the desired end state but never establishes how those credentials are obtained off-cloud. Without generating a key pair first, the on-premises application has nothing to authenticate with, making B the actionable answer.
Doesn't Cloud Interconnect or Dedicated Interconnect let my data center reach GCP APIs securely?
Interconnect provides network connectivity and private routing, not identity. Authentication to AutoML still requires the service account to present a key-derived access token, so option C answers the wrong problem.
Installing the Datastore Emulator from the Ubuntu Package Repository
Why doesn't 'gcloud components install cloud-datastore-emulator' work on my Ubuntu laptop?
Because the Cloud SDK installed from the Google Cloud Ubuntu apt repository has its Component Manager disabled. gcloud returns an error telling you to install optional components through the package manager instead.
What package do I install with apt-get to test Cloud Datastore locally?
Use sudo apt-get install google-cloud-sdk-datastore-emulator. It adds the Datastore emulator component, which you then start with the gcloud beta emulators datastore start command for local testing.
Why Is a Managed Instance Group Failing to Create New Instances?
Why can't I just update the existing instance template to set disks.autoDelete to true?
Compute Engine instance templates are immutable; you must create a new template and update the MIG to use it. Setting autoDelete requires a replacement template.
Why delete persistent disks with the same name as the instance names?
A leftover disk with a matching name can block MIG instance creation; deleting it clears the name collision so the new template can create instances.
How to enforce 24-hour service account keys in a centralized project?
Why can't I use a DENY org policy for service account key expiry?
The iam.serviceAccountKeyExpiryHours constraint does not accept DENY values, so option D is invalid at the policy level. Use the supported expiry-hours constraint instead.
Does a Cloud Run rotation job enforce a 24-hour key lifetime?
No; rotation creates replacement keys on a schedule but does not cap each key's lifetime, and it adds runtime cost, so option A misses the enforcement requirement.
How to Standardize SSH Access Across Google Cloud Projects?
Why doesn't enabling OS Login with two-factor authentication for the domain satisfy the requirement?
2FA protects Google identities, but it does not itself require OS Login on Compute Engine or enforce a consistent policy across projects. It complements, rather than replaces, organization-policy enforcement.
Why are metadata SSH keys a poor fit for a company-wide SSH standard?
Project or instance metadata keys must be distributed and rotated manually, and they are not tied to IAM identities the way OS Login sessions are, weakening centralized audit control.
How Do You Control Compute Instances for a Service-Mesh Frontend?
Why doesn't GKE Autopilot satisfy the fixed compute-instance requirement?
Autopilot provisions and scales nodes automatically, so you cannot pin a specific number of Compute Engine instances. HPA and VPA only adjust Pods or resource requests, not the node count.
Can Cloud Run minimum and maximum instances control Compute Engine nodes?
No. Cloud Run instance settings bound the number of serving instances, but Cloud Run abstracts the underlying infrastructure, so you do not control Compute Engine node counts.
How Do You Resolve an Internal Domain for VPC and On-Premises Clients?
Why doesn't the private zone alone let on-premises hosts resolve internal.altostrat.com?
A private zone is only visible to the VPC networks it is authorized for. On-premises resolvers need the inbound server policy forwarding path over Cloud VPN to reach Cloud DNS.
Why is a Cloud DNS public zone wrong for internal.altostrat.com?
A public zone publishes the record to global resolvers, so the name becomes resolvable from the public internet — exactly what the requirement forbids.
How Do You Audit Service Account Keys Older Than 90 Days?
Why not use gcloud iam service-accounts list for this audit?
It lists service accounts within a project, not their keys, and its createTime refers to the service account rather than any key. It also is not an organization-wide Cloud Asset Inventory search.
What asset type identifies service account keys in Cloud Asset Inventory?
Use iam.googleapis.com/ServiceAccountKey, not apikeys.googleapis.com/Key, which represents API keys. The ServiceAccountKey asset type exposes key metadata such as createTime for age filtering.
Terraform Backend Configuration for Concurrent Access and Security
Why can't I store Terraform state in a Git repository?
Git is not designed for high-concurrency writes or locking. Storing state there can lead to corruption and may inadvertently commit sensitive plaintext secrets into version history.
Does Cloud Storage alone handle locking?
Cloud Storage provides durable object storage. For robust locking, it is often paired with Cloud Datastore/Firestore or uses backend-specific locking implementations provided by the Terraform provider.
Centralized Management with Separate Invoicing in Google Cloud
Can I use a single billing account with detailed exports for separate invoices?
No, detailed billing exports provide data but do not generate separate legal invoices from Google. Separate Billing Accounts are required for distinct invoicing.
Why not create a separate Organization for each startup?
The scenario explicitly requires all resources to be centrally managed under a 'single Google Cloud organization', making multiple Orgs non-compliant with the prompt.
Using Gemini to Explain Cryptic Cloud Logs
Why is Cloud Profiler not used for log explanation?
Cloud Profiler measures resource utilization and latency, not text-based error semantics or logic errors.
Is searching forums ever better than Gemini?
Only if the error is extremely new or niche; otherwise, Gemini provides instant, tailored analysis from known patterns.
Restricted Log Views for Cross-Project Log Access in Cloud Logging
Why is sharing a Logs Explorer query not a valid access-control method?
A shared query only filters what a user chooses to run; anyone with broader logging.viewer access can simply change or clear the query and read logs the team should not see.
Why is logging.viewAccessor used instead of logging.viewer here?
logging.viewAccessor grants read access only to logs exposed by the specific log view, while logging.viewer grants read access to all logs in the project or scope, which violates least privilege.
Least Privilege IAM Policy Modification for Service Accounts
Why is roles/iam.serviceAccountAdmin better than Editor?
Editor grants full control over all resources in the project. roles/iam.serviceAccountAdmin is scoped only to service account management, adhering to least privilege.
Does roles/run.invoker allow modifying IAM?
No, it only allows invoking (running) the Cloud Run service. It does not include permissions to change IAM policies for any resource.
Custom IAM Role for Start, Stop, Reset VM Permissions
Why is compute.instanceAdmin.v1 with a delete-exclusion condition not least privilege?
That predefined role still grants many other instance-administration permissions, such as updating configuration and attaching disks. Only a custom role limits access to exactly the three required lifecycle actions.
Can the operations team start, stop, or reset VMs with roles/compute.viewer?
No. compute.viewer is read-only; instance lifecycle actions require compute.instances.start, stop, and reset permissions, which a viewer role does not include.
Who Created These Manually Provisioned Projects?
Why is the creator label option wrong for these manually created projects?
Google Cloud does not attach a creator label automatically, and these projects predate the automated provisioning process that would have applied labeling conventions.
How does the IAM Owner role reveal the project creator?
When a project is created in the console, the creating user is granted the Owner role by default, so the Owner entries on the IAM page point back to the creator.
Lifecycle Rule to Archive Objects After 90 Days
Why is Object Versioning with daysSinceNoncurrentTime wrong for this archival scenario?
daysSinceNoncurrentTime applies only to noncurrent (overwritten) versions. Archival records that are never overwritten stay as current versions, so the rule would never move them to Archive storage.
Why not use a Cloud Run function to change storage classes after 90 days?
Cloud Storage lifecycle rules already do this automatically and for free. Custom code adds runtime costs, scheduling, IAM permissions, and failure points with no benefit over the built-in SetStorageClass action.
Is Archive storage truly the lowest-cost class for indefinite retention?
Among Cloud Storage classes suitable for rarely accessed, long-term retained data (Nearline, Coldline, Archive), Archive has the lowest storage cost per month, making it the right target for regulatory archives that are rarely retrieved.
Estimating BigQuery on-demand query cost with a dry run
What does a BigQuery dry run actually return?
A dry run via bq --dry_run or the API dryRun parameter returns the estimated number of bytes the query would process (bytes read) without executing it, so you can estimate on-demand cost beforehand.
Why can't I use SELECT COUNT(*) to estimate query cost?
On-demand pricing charges for bytes processed, not rows scanned. A COUNT(*) returns a row total, which cannot be converted to dollars because row sizes vary.
How do I convert dry-run bytes into a dollar cost?
Take the bytes-read estimate from the dry run, convert it to TiB, and multiply by the current on-demand rate using the Google Cloud Pricing Calculator.