排解預設服務帳戶問題


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

本文說明如何復原已刪除的 Compute Engine 預設服務帳戶。

復原 Compute Engine 預設服務帳戶

刪除服務帳戶後,身分與存取權管理 (IAM) 會在 30 天後永久移除該服務帳戶。如果您不小心刪除了 Compute Engine 預設服務帳戶,該帳戶永久移除後就 Google Cloud 無法復原,VM 也無法再存取專案中的資源。在這種情況下,如要為 VM 指派 Compute Engine 預設服務帳戶,請建立服務帳戶並設為預設服務帳戶。

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

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

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

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

  1. 前往 Google Cloud 控制台的「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. 如果 VM 正在執行,請按一下「停止」停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」> 「停止」

    4. 按一下 [編輯]

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

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