關於服務帳戶

服務帳戶是 Google Cloud 中的特殊帳戶類型,可讓系統的元件和應用程式彼此互動,也能與其他 API 互動。如要進一步瞭解 Google Cloud,請參閱「關於 Google Cloud 服務」。

Apigee hybrid 會使用 Google Cloud 服務帳戶執行各種工作,包括:

  • 傳送記錄和指標資料
  • 提取追蹤要求
  • 連線至 API Gateway 以便提出管理 API 要求
  • 執行備份
  • 下載 Proxy 套件

雖然一個服務帳戶可以執行所有這些作業,但對於實際作業環境,Apigee 建議您建立多個服務帳戶,並為每個帳戶指派特定工作和一組權限。這麼做可強化安全性,因為它可將存取權分隔開來,並限制每個服務帳戶的範圍和存取權限。如同使用者帳戶,您可以將一或多個角色指派給服務帳戶,藉此套用這些權限。

為確保 Apigee hybrid 正常運作,您必須建立多個服務帳戶。每個服務帳戶都需要特定角色,才能執行其功能。

下表說明混合式元件的服務帳戶。每個服務帳戶的名稱都是預設名稱。您可以使用任何名稱,但名稱應能清楚標示每個帳戶的用途。

元件* 角色 是否為基本安裝作業所需? 說明
apigee-cassandra Storage 物件管理員
roles/storage.objectAdmin
允許將 Cassandra 備份儲存至 Cloud Storage,如備份與復原一文所述。
apigee-logger 記錄寫入者
roles/logging.logWriter
允許記錄資料收集,如「記錄」一節所述。僅適用於非 GKE 叢集安裝作業。
apigee-mart Apigee Connect 代理人
roles/apigeeconnect.Agent
允許 MART 服務驗證。Apigee Connect Agent 角色可讓 Apigee Connect 與 Apigee Connect 程序安全地通訊,詳情請參閱「使用 Apigee Connect」一文。
apigee-metrics Monitoring 指標寫入者
roles/monitoring.metricWriter
允許收集指標資料,如「指標收集總覽」所述。
apigee-runtime 不需要角色 允許 Apigee 混合式執行階段連線至 Google Cloud 上的 Google 服務和自訂服務,例如 Google 驗證Google Cloud TraceJaeger
apigee-synchronizer Apigee 同步處理工具管理員
roles/apigee.synchronizerManager
允許同步器下載 Proxy 套件和環境設定資料。也會啟用追蹤功能的運作。
apigee-udca Apigee 數據分析代理人
roles/apigee.analyticsAgent
允許將追蹤、分析和部署狀態資料傳輸至管理層。
apigee-watcher Apigee 執行階段代理人
roles/apigee.runtimeAgent
Apigee Watcher 會從同步器中提取機構的虛擬主機相關變更,並進行必要變更來設定 Istio ingress。
* 這個名稱會用於下載的服務帳戶金鑰檔案名稱。

或者,如果是用於非正式環境、測試環境和示範環境,您可以使用單一服務帳戶,並將所有角色指派給該帳戶。不建議在正式環境中使用。

元件* 角色 是否為基本安裝作業所需? 說明
apigee-non-prod Apigee Analytics Agent、Apigee Connect Agent、Apigee 機構管理員、Apigee 執行階段代理人、Apigee 同步處理工具管理員、Cloud Trace Agent、記錄記錄器、監控指標記錄器、儲存空間物件管理員 或上述所有必要的 SA 用於示範或測試環境的單一服務帳戶。請參閱安裝程序,第 2 部分,步驟 5:建立服務帳戶

除了建立這張表所列的服務帳戶,您還必須使用各個帳戶的私密金鑰產生存取權杖,才能存取 Apigee API。create-service-account 工具在建立或更新服務帳戶時,會自動將金鑰檔案下載至本機電腦的目錄。

建立服務帳戶

您可以透過多種方式建立服務帳戶,包括:

我們將在下列各節中說明這些功能。

使用 create-service-account 工具

tools/ 目錄中下載並展開 apigeectl 後,即可使用 create-service-account 工具。它會為混合式元件專屬的服務帳戶,指派必要的角色。這項工具也會自動下載服務帳戶金鑰,並將其儲存在本機電腦上。

舉例來說,下列指令會為實際環境建立所有個別的服務帳戶,為每個服務帳戶指派適當的 IAM 角色,並將每個帳戶的私密金鑰檔案下載至 ./service-accounts 目錄:

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

下列指令會建立名為 apigee-non-prod 的單一服務帳戶,並為所有混合式元件指派所有 IAM 角色,這類帳戶適合用於示範和測試環境,但不適合用於正式環境:

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

如要進一步瞭解如何使用 create-service-account,請參閱 create-service-account 參考資料

使用 Google Cloud 控制台

您可以使用 Google Cloud 控制台建立服務帳戶。

針對混合式元件使用的服務帳戶和角色中列出的每個服務帳戶,完成下列步驟。

如要使用 Google Cloud 控制台建立服務帳戶,並為服務帳戶產生金鑰,請按照下列步驟操作:

  1. 建立服務帳戶:

    1. 前往 Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。

      前往「Service Accounts」(服務帳戶)

    2. 選取專案。
    3. 按一下「Create Service Account」(建立服務帳戶)
    4. 在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。Cloud 控制台會根據這個名稱填入「Service account ID」欄位。

      Apigee 建議您使用反映服務帳戶角色的名稱;您可以將服務帳戶名稱設為與使用該帳戶的元件相同。舉例來說,請設定記錄寫入者服務帳戶 apigee-logger 的名稱。

      如要進一步瞭解服務帳戶名稱和角色,請參閱混合元件使用的服務帳戶和角色

    5. 選用:在「服務帳戶說明」欄位中輸入服務帳戶的說明。說明可提醒您特定服務帳戶的用途。
    6. 按一下「建立並繼續」
    7. 按一下「Select a role」欄位,然後選取角色,如混合式元件使用的服務帳戶和角色所述。如果下拉式清單中沒有顯示 Apigee 角色,請重新整理頁面。

      舉例來說,如果是記錄元件,請選取「記錄寫入者」角色。

      視需要輸入文字,依名稱篩選角色清單。舉例來說,如要只列出 Apigee 角色,請在篩選欄位中輸入 Apigee

      您可以在服務帳戶中新增多個角色,但 Apigee 建議您為每個建議的服務帳戶只使用一個角色。如要在建立服務帳戶後變更其角色,請使用 Cloud 控制台的「身分與存取權管理」頁面。

    8. 按一下「Done」(完成),即完成建立服務帳戶。

      請勿關閉瀏覽器視窗。您將在下一個步驟中使用此項目。

  2. 為剛建立的服務帳戶下載 JSON 金鑰:

    1. 在 Cloud 控制台中,按一下您建立的服務帳戶電子郵件地址。
    2. 按一下「金鑰」
    3. 依序點選「新增金鑰」和「建立新的金鑰」
    4. 按一下「建立」,JSON 金鑰檔案會下載至您的電腦。

      請務必妥善保存金鑰檔案,因為此檔案可當做服務帳戶進行驗證。您可以任意移動及重新命名這個檔案。

      您稍後會使用部分服務帳戶金鑰設定混合式執行階段服務。舉例來說,設定混合式執行階段時,您會使用 SERVICE_NAME.serviceAccountPath 屬性指定服務帳戶金鑰的位置。

      服務帳戶會使用這些金鑰取得存取權杖,然後以您的名義向 Apigee API 提出要求。(但這還需要一段時間,目前只要記得儲存位置即可)。

    5. 按一下「關閉」

建立服務帳戶後,如果要新增或移除角色,您必須使用 Cloud 控制台的 IAM 頁面。您無法在「服務帳戶」檢視畫面中管理服務帳戶的角色。

使用 gcloud 服務帳戶建立 API

您可以使用 Cloud Identity and Access Management API 建立及管理服務帳戶。

詳情請參閱「建立及管理服務帳戶」。

疑難排解