存取權控制

您可以在 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 程式碼檢視者
列出所有服務、版本和執行個體
查看所有應用程式、服務、版本和執行個體的設定
查看資源使用量、負載資訊和錯誤資訊等執行階段指標
查看應用程式的原始碼
部署新版應用程式
拆分或遷移流量
啟動和停止版本
刪除版本
刪除整個服務
關閉執行個體
停用及重新啟用 App Engine 應用程式
存取含有 login:admin 限制的處理常式
更新分派規則
更新 DoS 設定
更新預設的 Cookie 到期時間
更新參照網址
更新 Email API 已授權的寄件者

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

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

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

不論指派哪一個角色,使用者帳戶皆具備使用 Admin API 部署應用程式的充分權限。如要授予使用 gcloud 指令或其他 App Engine 工具的權限,還必須指派「Storage 管理員」角色給使用者帳戶。

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

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

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

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

  • App Engine 服務管理員角色:使用者帳戶無法部署新版本的應用程式,也不能變更應用程式層級設定。但這些帳戶的權限可以變更現有服務和版本的屬性,包括變更可以提供流量的版本。App Engine 服務管理員角色非常適合營運或 IT 部門,因為這些部門負責處理逐步增加流量到新部署版本。

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

以上列出的預先定義角色均未授予以下作業的權限:

  • 建立 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 專案的使用者帳戶,就能以該專案中所有資源的讀取/寫入權限執行程式碼。

變更服務帳戶權限

您可以在 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 應用程式可能會停止運作,且會失去其他 GCP 服務 (例如 Cloud Datastore) 的存取權。

您可以使用 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
本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
App Engine standard environment for Python 2