create-serice-account 總覽
create-serice-account 是 Apigee Hybrid 隨附的指令列工具,可建立 Google Cloud  服務帳戶,並指派角色,允許個別 Apigee Hybrid 元件發出授權 API 呼叫,以及下載相關聯的服務帳戶金鑰檔案。您可以在設定覆寫檔案中使用這項指令產生的服務帳戶金鑰檔案。
  create-service-account 會在目前的 Google Cloud 專案或您指定的專案中,建立一或多個服務帳戶,並將正確的 IAM 角色指派給服務帳戶,然後將服務帳戶的憑證檔案下載到本機的目錄中。
如要進一步瞭解服務帳戶,並參閱建議用於實際工作環境的完整服務帳戶清單,請參閱下列文章:
您也可以在 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 環境變數或使用 --project-id 旗標來指定專案。create-service-account 會讀取 PROJECT_ID 環境變數的值。如果沒有,可以使用 --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 工具:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/
確認 create-service-account 工具可執行
  確認你可以執行 create-service-account。如果您剛下載 Apigee Helm 資訊圖表,指令列工具可能處於可執行模式。前往 create-service-account 的安裝目錄,然後執行 --help,確認 create-service-account 可執行:
./create-service-account --help
  如果輸出內容顯示 permission denied,您需要讓檔案可執行,例如在 Linux、MacOS 或 UNIX 中使用 chmod,或在 Windows 檔案總管中,或在 Windows 中使用 icacls 指令。例如:
chmod +x ./create-service-account
正在使用 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-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-mint-task-scheduler(v1.14.3) | 未指派角色 | apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-mint-task-scheduler.json | 
| apigee-runtime | 未指派角色 | apigee-runtime@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-runtime.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 | 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會覆寫目錄中與所建立金鑰檔案同名的檔案。
      如未指定輸出目錄, | 
| --env-e | prodnon-prod | 指定您要為實際工作環境 ( prod) 或非實際工作環境 (non-prod) 建立服務帳戶。
 
        如果執行  | 
| --help-h | 無 | 顯示說明文字。 | 
| --name-n | 服務帳戶名稱 | 指定服務帳戶的名稱。 --name僅適用於單一服務帳戶,可透過--profile或--env non-prod指定。
      這個名稱也會成為服務帳戶的憑證檔案名稱和電子郵件地址。舉例來說,如果您執行  
 
        如未指定  | 
| ‑‑profile-p | apigee‑cassandraapigee‑loggerapigee‑martapigee‑metricsapigee‑mint‑task‑schedulerapigee‑runtimeapigee‑synchronizerapigee‑udcaapigee‑watcher | 僅適用於實際工作環境,指定要建立的單一服務帳戶。 
      您可以使用  
      需要「 | 
| ‑‑project‑id-i | 專案 ID | 您要在哪個 Google Cloud 專案中建立服務帳戶的專案 ID。 
         
      如未指定專案 ID, | 
如要進一步瞭解 Apigee Hybrid 使用的服務帳戶,請參閱「關於服務帳戶」。
您也可以在 Google Cloud 控制台中建立服務帳戶。另請參閱「建立及管理服務帳戶」。