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
後續步驟
遵循使用服務帳戶的最佳做法。