授予專案存取權

透過指派角色的方式,授予及控管 Google Cloud Platform 專案及其資源的存取權。您可以將角色指派給專案成員和服務帳戶。

服務帳戶代表 Google Cloud 服務身分,例如 App Engine,可用來存取其他服務。如需瞭解在 App Engine 中使用服務帳戶的方式,請參閱授權應用程式

選擇適合的存取權控管

將角色指派給專案成員和服務帳戶,以定義 GCP 專案的存取權層級。您可以運用身分與存取權管理 (IAM) 角色,進行更精細的存取權控管。如要進一步瞭解各種 App Engine 角色,請參閱存取權控管

一般而言,「擁有者」、「編輯者」、「檢視者」等原始角色的用法較為簡單,但是預先定義的角色具有更精細的存取權選項。如果您只是在試用 App Engine,則控管存取權最簡單的方式就是將「編輯者」角色授予專案的所有相關人員。操作方式請參閱下方設定權限中的說明。請記住,只有「擁有者」可以在專案中建立 App Engine 應用程式,以及將其他人員新增至專案。

如果您的專案已準備好採用更複雜的角色:

  1. 識別各種需要存取專案的工作職務。

  2. 針對每項工作職務,個別設定 Google 網上論壇

  3. 視需要將成員新增至各個 Google 網上論壇。

  4. 按照下方設定權限中的操作說明,將每個 Google 網上論壇新增為專案成員,並設定每個網上論壇的角色。

設定權限

如要新增專案成員及設定權限:

  1. 在 Google Cloud Platform 主控台中,造訪專案的「IAM 與管理員權限」頁面。

    前往 IAM 與管理員權限頁面

  2. 按一下 [新增成員] 以在專案中新增成員,並使用下拉式選單設定這些成員的角色。您可以新增個別使用者的電子郵件;或者,如果您使用 Google 網上論壇管理群組角色,也可以提供 Google 網上論壇電子郵件 (example-google-group@googlegroups.com)。

    新增網上論壇

  3. 指派角色。

如要查看所有 App Engine 角色的說明和比較表,以及瞭解限制的相關資訊,請前往存取權控管

下拉式選單中也有適用於其他 Google Cloud Platform 產品的角色。如要進一步瞭解這些角色,請參閱預先定義的角色

使用身分與存取權管理角色進行部署

您可以指派適當的身分與存取權管理 (IAM) 角色至使用者帳戶,藉此授予在 GCP 專案中部署新版應用程式的權限。

如果使用者帳戶僅負責部署應用程式,建議指派 App Engine 部署者角色給該帳戶。App Engine 管理員角色也能部署應用程式,您可以選擇指派該角色,但同時也會允許其他權限。視必須部署的設定檔而定,您可能還需要依照下述步驟的說明,授予帳戶其他角色。

設定流量

根據預設,如果使用者帳戶具有 App Engine 部署者角色,則不能將流量遷移或拆分至應用程式的任一版本。不過,如果部署作業指定目前提供流量的現有版本,則該應用程式的更新版本會保留遭覆寫版本的原始流量設定。

舉例來說,如果 20201155example 版本目前在您的應用程式中提供流量,則當您執行 gcloud app deploy --version 20201155example 指令時,更新版本會先覆寫現有版本,接著開始提供流量。

如果使用者帳戶需要負責設定流量,請考慮使用 App Engine 管理員或 App Engine 服務管理員角色

事前準備

使用者帳戶必須先完成以下操作,才能以 IAM 角色部署應用程式:

如要授予使用者帳戶在 App Engine 中部署的權限:

  1. 在 Google Cloud Platform 主控台中,造訪專案的「IAM 與管理員權限」頁面:

    前往權限頁面

  2. 按一下 [新增成員] 以在專案中新增使用者帳戶,然後使用下拉式選單選取該帳戶的所有角色:

    • 必要角色可讓帳戶在 App Engine 中執行部署作業:
      1. 設定下列其中一個角色:
        • 使用 [App Engine] > [App Engine 部署者] 角色,授予帳戶部署任一版應用程式的權限。
        • 如要一併部署應用程式和 dos.yamldispatch.yaml 檔案,請改用 [App Engine] > [App Engine 管理員] 角色。
        使用者帳戶現在具有充分權限,可以使用 Admin API 部署應用程式
      2. 如要授予使用 App Engine 工具部署應用程式的權限,您也需要將下列所有角色指派到使用者帳戶:
        • [Storage] > [Storage 管理員] 角色:上傳至 Cloud Storage 的工具權限。
        • [Cloud Build] > [Cloud Build 編輯者] 角色:使用 Cloud Build 服務的工具權限。
          如果未看到這個角色,請先啟用 Cloud Build API:
          前往 API 程式庫頁面
    • 選用角色。指派下列角色到使用者帳戶,以授予上傳其他設定變更的權限:
      • [Datastore] > [Datastore 索引管理員] 角色:上傳 index.yaml 檔案的權限。
      • [Cloud Scheduler] > [Cloud Scheduler 管理員] 角色:上傳 cron.yaml 檔案的權限。
      • 如要讓使用者帳戶將變更部署至預設的網路設定,您必須為帳戶指派具有充分權限的角色,例如 [Compute Engine] > [Compute 網路管理員] 角色。

使用者帳戶現在可以在相關 GCP 專案的 App Engine 應用程式中部署應用程式。如要進一步瞭解如何部署應用程式,請參閱部署應用程式

如果您已按照上述操作說明設定權限,但帳戶仍然無法部署應用程式,請執行下列步驟,確認 GCP 專案設定正確。

根據預設,如果您建立新的 GCP 專案並在 App Engine 彈性環境中啟用,則該專案會具備部署應用程式所需的所有權限和 API。不過,一或多個權限或 API 仍可能會透過專案設定而遭到移除。以下的操作說明列出部署作業失敗時應檢查的項目。

確認已在 GCP 專案中具有或啟用下列項目:

  1. 已建立 App Engine 應用程式並啟用了計費功能。

  2. 已在 GCP 主控台中啟用下列 API:

    1. Google App Engine Flexible Environment:

      前往 API 程式庫頁面

    2. Google Cloud Build API:

      前往 API 程式庫頁面

  3. 在 GCP 主控台的「IAM 與管理員」頁面中,確認 Google Cloud Build 使用的 Google API 服務帳戶 [PROJECT_NUMBER]>@cloudbuild.gserviceaccount.com 具有「編輯者」權限。此服務帳戶必須具有 staging.[PROJECT_ID].appspot.com 值區的寫入權限,才能暫存 Cloud Cloud Build 的檔案。根據預設,這個服務帳戶具有專案的「編輯者」角色,因此除非您曾經變更過此服務帳戶的角色,否則不需要在這裡進行變更:

    前往服務帳戶頁面

本頁內容對您是否有任何幫助?請提供意見:

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

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