create-service-account

建立 Google Cloud 服務帳戶,並設定角色,讓個別 Apigee 混合式元件能夠發出經過授權的 API 呼叫,並下載相關聯的服務帳戶金鑰檔案。您可以在設定值覆寫檔案中使用此指令產生的服務帳戶金鑰檔案。

create-service-account 會在您目前的 Google Cloud 專案或指定專案中建立一或多個服務帳戶,並將正確的 IAM 角色指派給服務帳戶,然後將服務帳戶的憑證檔案下載到本機電腦的某個目錄。

create-service-account 工具位於 HYBRID_ROOT_DIR/tools 目錄中。

如要進一步瞭解服務帳戶,並查看建議用於實際工作環境的完整服務帳戶清單,請參閱以下內容:

您也可以在 Google Cloud 控制台中建立服務帳戶。另請參閱「建立及管理服務帳戶」。

必要條件

角色

create-service-account 工具需要安裝 gcloud CLI。叫用公用程式的使用者應具備 Service Account Admin 角色。

專案

服務帳戶會綁定至特定 Google Cloud 專案。create-service-account 會在目前專案或您指定的專案中建立服務帳戶,並將 IAM 角色繫結至該專案中的服務帳戶。create-service-account 也會使用專案 ID 做為服務帳戶金鑰檔案名稱和電子郵件地址的一部分。舉例來說,如果專案名稱為 my-hybrid-project,apigee-logger 服務帳戶金鑰檔案的名稱會是 my-hybrid-project-apigee-logger.json,而服務帳戶的電子郵件地址會是 apigee-logger@my-hybrid-project.iam.gserviceaccount.com

您可以使用 --project-id 標記指定專案。

如果您未透過指令指定 Cloud 專案 ID,create-service-account 會使用目前 gcloud 專案設定中的專案。

您可以使用下列指令檢查目前設定的 gcloud 專案設定:

gcloud config list project

如要變更目前的專案 ID,請使用下列指令:

gcloud config set project PROJECT_ID

其中 PROJECT_ID 是您目前 Cloud 專案的 ID。如要瞭解如何建立 Cloud 專案,請參閱「步驟 2:建立 Google Cloud 專案」一節。

正在使用 create-service-account

以下範例說明如何使用 create-service-account 執行常見的 Apigee Hybrid 設定工作。

為實際環境建立服務帳戶

在實際工作混合環境中,Apigee 建議為每個元件使用專屬的服務帳戶。請使用下列指令,為混合式元件建立所有服務帳戶,並在預設目錄中使用預設名稱。

./tools/create-service-account --env prod

這麼做會使用 ./tools/service-accounts 目錄中下載的憑證檔案建立下列服務帳戶:

服務帳戶 IAM 角色 電子郵件 憑證檔案
apigee-cassandra roles/storage.objectAdmin apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-cassandra.json
apigee-distributed-trace roles/cloudtrace.agent apigee-distributed-trace@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-distributed-trace.json
apigee-logger roles/logging.logWriter apigee-logger@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-logger.json
apigee-mart roles/apigeeconnect.Agent apigee-mart@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-mart.json
apigee-metrics roles/monitoring.metricWriter apigee-metrics@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-metrics.json
apigee-synchronizer roles/apigee.synchronizerManager apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-synchronizer.json
apigee-udca roles/apigee.analyticsAgent apigee-udca@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-udca.json
apigee-watcher roles/apigee.runtimeAgent apigee-watcher@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-watcher.json

為非正式環境建立單一服務帳戶

針對非實際工作環境 (例如實驗或示範環境),您可以建立名為「apigee-non-prod」的單一服務帳戶,用於所有元件。這個服務帳戶將會獲得先前範例中所有指派的 IAM 角色。

./tools/create-service-account --env non-prod

這會建立名為 apigee-non-prod 的單一服務帳戶,並在 ./tools/service-accounts 目錄中下載憑證檔案:

服務帳戶 IAM 角色 電子郵件 憑證檔案
apigee-non-prod roles/apigee.analyticsAgent
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/cloudtrace.agent
roles/logging.logWriter
roles/monitoring.metricWriter
roles/storage.objectAdmin
apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-non-prod.json

create-service-account syntax

create-service-account 工具使用以下語法:

create-service-account [flags] 

下表列出 create-service-account 旗標:

旗標 說明
--dir
-d
目錄名稱 指定服務帳戶金鑰檔案的輸出目錄。如果目錄不存在,create-service-account 會建立該目錄。如果目錄已存在,create-service-account 會覆寫目錄中名稱與所建立金鑰檔案相同的任何檔案。

如果您未指定輸出目錄,create-service-account 會將服務帳戶檔案寫入 create-service-account 所在目錄中的 service-accounts/ 目錄。

--env
-e
prod
non-prod
指定您是要為實際工作環境 (prod) 還是非實際工作環境 (non-prod) 建立服務帳戶。
  • --env prod 會為實際混合雲環境建立服務帳戶。

    在正式環境中,建議您為每項 Apigee 服務建立單一服務帳戶。每個建立的角色都會與單一 IAM 角色相關聯。

    除非您使用 --profile 指定特定服務帳戶,否則 create-service-account -env prod 會建立 Apigee hybrid 使用的所有服務帳戶。

  • --env non-prod 會建立單一服務帳戶,並將所有身分與存取權管理角色繫結至該帳戶。這項功能適用於非正式環境,例如實驗或試用安裝。

    除非您使用 --name 標記指定名稱,否則服務帳戶的名稱會是 apigee-non-prod

如果您在沒有 --env 的情況下執行 create-service-account,系統會提示您輸入 prodnon-prod

--help
-h
顯示說明文字。
--name
-n
服務帳戶名稱 指定服務帳戶的名稱。--name 僅適用於使用 --profile--env non-prod 指定的單一服務帳戶。

這個名稱也是服務帳戶的憑證檔案名稱和電子郵件地址的一部分。舉例來說,如果您執行 create-service-account --profile apigee-logger --name my-logger (假設您目前的 Cloud 專案為 my-hybrid-project),create-service-account 會建立一個帳戶,其中包含:

  • 名稱:my-logger
  • 電子郵件: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • 憑證檔案: my-hybrid-project-my-logger.json

如果您未指定 --namecreate-service-account 會使用設定檔的名稱做為服務帳戶名稱,如果您指定 --env non-prod,則會使用「apigee-non-prod」。

‑‑profile
-p
apigee-logger
apigee-metrics
apigee-cassandra
apigee-udca
apigee-synchronizer
apigee-mart
apigee-watcher
apigee-distributed-trace
僅適用於實際工作環境,指定要建立的單一服務帳戶。

您可以使用 --name 旗標指定服務帳戶名稱。

需要 --env prod

‑‑project‑id
-i
專案 ID 您要建立服務帳戶的 Google Cloud 專案 Project ID。

如果未指定專案 ID,create-service-account 會使用目前 gcloud 設定中的專案 ID。

如要進一步瞭解 Apigee hybrid 使用的服務帳戶,請參閱「關於服務帳戶」一文。

您也可以在 Google Cloud 控制台中建立服務帳戶。另請參閱「建立及管理服務帳戶」。