排解預設服務帳戶問題


為了存取 Google Cloud 資源,Compute Engine 虛擬機器 (VM) 執行個體會使用服務帳戶。如果您不小心刪除 Compute Engine 預設服務帳戶,在 VM 上執行的應用程式可能無法呼叫Google Cloud API。

本文說明如何在刪除 Compute Engine 預設服務帳戶後,復原該帳戶。

復原 Compute Engine 預設服務帳戶

刪除服務帳戶後,Identity and Access Management (IAM) 會在 30 天後永久移除服務帳戶。如果您不小心刪除了 Compute Engine 預設服務帳戶, Google Cloud 無法復原服務帳戶,因為該帳戶已永久移除,VM 也無法再存取專案中的資源。在這種情況下,如果您想為 VM 指派 Compute Engine 預設服務帳戶,請建立服務帳戶並將其設為預設服務帳戶。

如要取得執行這項工作所需的權限,請要求管理員為您授予專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

如要復原已刪除的 Compute Engine 預設服務帳戶,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Logs Explorer」(記錄檔探索工具) 頁面。

    前往「Logs Explorer」

    請使用以下查詢,驗證 Compute Engine 預設服務帳戶的刪除時間:

    resource.type="service_account"
    protoPayload.methodName="google.iam.admin.v1.DeleteServiceAccount"
    "PROJECT_NUMBER-compute@developer.gserviceaccount.com"
    

    PROJECT_NUMBER 替換為專案編號。

    如果預設服務帳戶是在 30 天前刪除

    請使用 undelete 指令來復原服務帳戶。詳情請參閱「取消刪除服務帳戶」。

    如果預設服務帳戶已刪除超過 30 天

    1. 建立服務帳戶,或選取現有服務帳戶,將其設為新的 Compute Engine 預設服務帳戶。
  2. 如果您希望 VM 使用新建立的預設服務帳戶,請按照下列步驟操作

    1. 前往「VM instances」(VM 執行個體) 頁面。

      前往 VM 執行個體

    2. 按一下要使用服務帳戶的 VM 執行個體名稱。

    3. 如果執行個體未處於停止狀態,請按一下「停止」。等待執行個體完全停止。

    4. 接著,按一下「編輯」

    5. 向下捲動到「Service Account」(服務帳戶) 區段。

    6. 從下拉式清單中選取要指派給執行個體的服務帳戶。