Description:
To support principle of least privileges and prevent potential privilege escalation it is recommended that instances are not assigned to default service account 'Compute Engine default service account' with Scope 'Allow full access to all Cloud APIs'.
Rationale:
Along with ability to optionally create, manage and use user managed custom service accounts, Google Compute Engine provides default service account 'Compute Engine default service account' for an instances to access necessary cloud services.
'Project Editor' role is assigned to 'Compute Engine default service account' hence, This service account has almost all capabilities over all cloud services except billing.
However, when 'Compute Engine default service account' assigned to an instance it can operate in 3 scopes.
Allow default access: Allows only minimum access required to run an Instance (Least Privileges)
Allow full access to all Cloud APIs: Allow full access to all the cloud APIs/Services (Too much access)
Set access for each API: Allows Instance administrator to choose only those APIs that are needed to perform specific business functionality expected by instance
When an instance is configured with 'Compute Engine default service account' with Scope 'Allow full access to all Cloud APIs', based on IAM roles assigned to the user(s) accessing Instance, it may allow user to perform cloud operations/API calls that user is not supposed to perform leading to successful privilege escalation.
In order to change service account or scope for an instance, it needs to be stopped.
From Google Cloud Console
Go to the 'VM instances' page by visiting: https://console.cloud.google.com/compute/instances.
Click on the impacted VM instance.
If the instance is not stopped, click the 'Stop' button. Wait for the instance to be stopped.
Next, click the 'Edit' button.
Scroll down to the 'Service Account' section.
Select a different service account or ensure that 'Allow full access to all Cloud APIs' is not selected.
Click the 'Save' button to save your changes and then click 'START'.
From Google Cloud CLI
gcloud compute instances stop
gcloud compute instances set-service-account --service-account= --scopes [SCOPE1, SCOPE2...]
gcloud compute instances start