App Engine 應用程式需要服務帳戶,才能存取其他 Google Cloud服務及執行工作。根據預設,系統會使用「App Engine 預設服務帳戶」做為 App Engine 應用程式的身分。您也可以指定其他「使用者管理的服務帳戶」,做為特定 App Engine 應用程式版本的身分。這樣一來,您就能根據每個版本執行的特定工作,授予不同權限,避免授予不必要的權限。
本指南說明部署新版本時,如何指定其他使用者管理服務帳戶。如果您不需要在部署特定版本的應用程式時建立不同的服務帳戶,可以繼續使用預設服務帳戶,方法是不指定服務帳戶。
建立使用者代管的服務帳戶
如要建立使用者管理的服務帳戶,請參閱這些操作說明。 定義要授予服務帳戶的身分與存取權管理 (IAM) 角色時,請參閱「授予 App Engine 存取權的角色」。
如要在建立服務帳戶前先瞭解 IAM 概念,請參閱 IAM 概念總覽和服務帳戶指南。
建立使用者管理的服務帳戶後,您可以透過下列其中一種方法,更新應用程式的應用程式層級預設服務帳戶:
gcloud
請執行 gcloud app update
指令。
gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
取代:
SERVICE_ACCOUNT_NAME
改為您建立的服務帳戶名稱。PROJECT_ID
是您要指派服務帳戶的 Google Cloud 專案 ID。
除非您明確指派版本專屬的服務帳戶,否則在這次更新後部署的每個新版本,都會使用新的應用程式層級預設服務帳戶。
控制台
前往主控台的 App Engine「應用程式設定」分頁,然後點選「編輯應用程式設定」。
從「Select a Service account」選擇應用程式層級的預設服務帳戶,然後按一下「Save」。
系統會將您重新導向至「應用程式設定」分頁,您可以在這裡查看更新後的應用程式層級預設服務帳戶電子郵件地址。例如:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
。除非您明確指派版本專屬的服務帳戶,否則在這次更新後部署的每個新版本,都會使用新的應用程式層級預設服務帳戶。
部署應用程式時指定服務帳戶
gcloud
執行 gcloud app deploy
指令並指定服務帳戶:
gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
app.yaml
在 app.yaml
檔案中,新增 service_account
元素來指定服務帳戶:
service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
後續步驟
請遵循使用服務帳戶的最佳做法。