存取權控管

您可以在 GCP 專案層級使用角色設定存取權控管。將角色指派給 GCP 專案成員或服務帳戶,以決定 Google Cloud Platform 專案及其資源的存取權層級。

您可以使用原始角色來處理需求較不複雜的小型專案。如要執行更精細的存取權控管,請使用含有 App Engine 預先定義角色的身分與存取權管理 (IAM) 角色。如要進一步瞭解身分與存取權管理,請參閱身分與存取權管理說明文件

如需瞭解指派角色的方式,請參閱授予專案存取權

如需深入瞭解授予預先定義 IAM 角色的權限 (包含方法呼叫層級的詳細資訊),請參閱 Admin API 文件中的角色一節。

原始角色

在 App Engine 應用程式中,GCP 專案成員的角色也能控制可使用指令列工具執行的動作 (指令列工具的用途為部署及管理應用程式)。

角色 GCP 主控台權限 工具權限
Owner 建立 App Engine 應用程式的必要角色。具備所有檢視者和編輯者權限,並能夠查看部署的原始碼、邀請使用者、變更使用者角色,以及刪除應用程式。 建立 App Engine 應用程式的必要角色。部署應用程式程式碼以及更新所有設定。
Editor 查看應用程式資訊以及編輯應用程式設定。 部署應用程式程式碼、更新索引/佇列/Cron。
Viewer 查看應用程式資訊。 要求記錄。

預先定義的 App Engine 角色

App Engine 的預先定義角色可提供您更精細的存取權控制選項。下表列出每個角色,以及角色的目標使用者。使用比較資料表即可查看所有角色的權限。

角色 權限 目標使用者
App Engine 管理員 所有應用程式配置和設定的讀取/寫入/修改權限。
  • 應用程式擁有者/管理員
  • 值班工程師
  • 系統管理員
App Engine 服務管理員
  • 所有應用程式配置和設定的唯讀權限。
  • 服務層級和版本層級設定的寫入權限,包括流量配置。
  • 無法部署應用程式的版本,詳情請參閱下方的授權區隔
  • 核發工程師
  • 開發運作人員
  • 值班工程師
  • 系統管理員
App Engine 部署者
  • 所有應用程式配置和設定的唯讀權限。
  • 僅能部署及建立新版本的寫入權限。
  • 刪除不再提供流量的舊版本。
  • 無法修改現有版本,也不能變更流量設定。

有關必要角色的詳細資訊,請參閱下方部署一節的說明。

  • 部署帳戶
  • 核發工程師
App Engine 檢視者 所有應用程式配置和設定的唯讀權限。
  • 需要查看應用程式設定但不需修改應用程式的使用者。
  • 檢查 App Engine 配置是否符合政策規定的稽核工作。
App Engine 程式碼檢視者 所有應用程式配置、設定和已部署原始碼的唯讀權限。
  • 需要查看應用程式設定和原始碼但不需修改應用程式的使用者。
  • 需要診斷實際工作環境問題的開發運作使用者。

預先定義的角色比較表

下列表格針對每個預先定義的 App Engine 角色列出完整的權限比較資料。

權限 App Engine 管理員 App Engine 服務管理員 App Engine 部署者 App Engine 檢視者 App Engine 程式碼檢視者
列出所有服務、版本和執行個體
查看所有應用程式、服務、版本和執行個體的設定
查看資源使用量、負載資訊和錯誤資訊等執行階段指標
查看應用程式的原始碼
部署新版應用程式
拆分或遷移流量
啟用或停止版本
刪除版本
刪除整個服務
在彈性環境中使用 SSH 連線到 VM 執行個體
關閉執行個體
停用及重新啟用 App Engine 應用程式
更新分派規則
更新 DoS 設定
更新預設的 Cookie 到期時間
更新參照網址
更新 Email API 已授權的寄件者

如要深入瞭解每個角色授予的特定身分與存取權管理權限,請參閱 Admin API 的角色一節。

使用預先定義角色進行部署作業

如果使用者帳戶僅負責部署新版的應用程式,建議指派「App Engine 部署者」角色給該帳戶。您也可以選擇使用「App Engine 管理員」,該角色具有包含部署版本在內的其他管理權限。

無論指派哪一個角色,使用者帳戶皆會具備適當權限,可以使用 Admin API 部署應用程式。如要授予使用 gcloud 指令或其他 App Engine 工具的權限,您也需要指派「儲存空間管理員」角色與「Cloud Build 編輯者」角色給使用者帳戶。

如要瞭解如何授予必要權限,請參閱使用身分與存取權管理角色進行部署

部署和流量轉送的授權區隔

許多機構組織都偏好區隔部署應用程式版本與增加流量至新建立版本的工作,並交由不同的工作職務完成。「App Engine 部署者」和「App Engine 服務管理員」角色即可提供此類區隔:

  • App Engine 部署者角色:使用者帳戶只能部署新版本及刪除不再提供流量的舊版本。具有 App Engine 部署者角色的使用者帳戶無法設定將流量傳送至任何版本,也無法變更分派規則或驗證網域等應用程式層級的設定。

  • App Engine 服務管理員角色:使用者帳戶無法部署新版應用程式,也無法變更應用程式層級的設定。然而,這些帳戶具有權限可以變更現有服務及版本的屬性,包含變更可提供流量的版本。因此對於需處理增加新部署版本流量的營運或 IT 部門而言,App Engine 服務管理員便是適合這些部門使用的角色。

預先定義角色未授予的權限

上方列出的預先定義角色均不會授予下列動作的權限:

  • 建立 App Engine 應用程式。
  • 查看及下載應用程式記錄。
  • 在 GCP 主控台中查看監控圖表。
  • 啟用及停用計費功能。
  • 設定 App Engine 的每日花費上限 (舊稱「預算」) 及查看花費金額。
  • 查看及編輯自訂網域和上傳的 SSL 憑證。
  • 在 Cloud Security Scanner 中執行安全掃描。
  • 存取儲存在 Datastore、Task Queues、Memcache、Cloud Search 或任何其他 Cloud Platform 儲存空間產品中的配置或資料。

App Engine 的服務帳戶

在您建立 App Engine 應用程式後,系統會建立「App Engine 預設服務帳戶」,並做為 App Engine 服務的身分。App Engine 預設服務帳戶會與 GCP 專案相關聯,並且代表在 App Engine 上執行的應用程式執行工作。

根據預設,App Engine 預設服務帳戶在專案中具備「編輯者」角色,代表任何具有充分權限可以變更 GCP 專案的使用者帳戶,也能使用該專案中所有資源的讀取/寫入權限來執行程式碼。

彈性環境的服務帳戶

App Engine 彈性環境會有 Google 代管的服務帳戶,此帳戶可代表您的應用程式執行彈性環境特定工作。如要進一步瞭解這個服務帳戶,請參閱 App Engine 彈性環境的服務帳戶

變更服務帳戶權限

您可以在 GCP 主控台變更服務帳戶的權限。例如,您可以變更 App Engine 預設服務帳戶的角色,從編輯者改為最符合 App Engine 應用程式存取需求的任何角色,藉此將帳戶使用的權限降級。

如要變更服務帳戶的權限:

  1. 開啟 GCP 主控台:

    前往權限頁面

  2. 在「成員」清單中,找出 App Engine 預設服務帳戶的 ID。

    App Engine 預設服務帳戶會使用以下的成員 ID:
    YOUR_PROJECT_ID@appspot.gserviceaccount.com

  3. 接著您可以使用下拉式選單修改指派給服務帳戶的角色。

使用服務帳戶

  • 如要重新命名或建立服務帳戶的金鑰 (包含 App Engine 應用程式預設服務帳戶),請使用 GCP 主控台中的「服務帳戶」頁面來查看及編輯服務帳戶:

    前往服務帳戶頁面

  • 如要使用服務帳戶執行 Cloud SDK 指令 (包含任何一種 Cloud SDK 開發工具),您必須先在 Google Cloud Platform 專案中啟用 Google App Engine Admin API。使用 GCP 主控台的 API 程式庫管理 GCP 專案中的所有 API 和服務:

    前往 API 程式庫頁面

還原已刪除的預設服務帳戶

如果您刪除 App Engine 預設服務帳戶,則 App Engine 應用程式可能會停止運作,並且失去 Cloud Datastore 等其他 GCP 服務的存取權。

您可以使用 gcloud beta app repair 指令還原已刪除的 App Engine 預設服務帳戶:

# Set your gcloud project
gcloud config set project <project-id>

# Restore your default service account
gcloud beta app repair
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Node.js 適用的 App Engine 彈性環境文件