關於服務帳戶

服務帳戶是 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-metrics Monitoring 指標寫入者
roles/monitoring.metricWriter
允許收集指標資料,如「指標收集總覽」所述。
apigee-mint-task-scheduler 無須具備任何角色 做為 apigee-mint-task-scheduler 圖片執行的身分,可為定義這些費用的房價方案產生週期性費用。請參閱「為 Apigee Hybrid 啟用營利功能」。
apigee-runtime 無須具備任何角色 允許 Apigee Hybrid 執行階段連線至 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 Organization Admin、Apigee Runtime Agent、 Apigee Synchronizer Manager、Cloud Trace Agent、Logs Writer、 Monitoring Metric Writer、Storage Object Admin 或上述所有必要 SA 用於示範或測試環境的單一服務帳戶。請參閱「安裝作業第 2 部分:步驟 4:設定服務帳戶」。

除了建立下表列出的服務帳戶,您還會使用每個帳戶的私密金鑰產生存取權杖,以便存取 Apigee API。建立或更新服務帳戶時,create-service-account 工具會自動將金鑰檔案下載到本機電腦的目錄中。

建立服務帳戶

建立服務帳戶的方式有很多種,包括:

以下各節將分別說明這些項目。

使用 create-service-account 工具

下載並展開 Apigee Hybrid Helm 圖表後,即可使用 create-service-account 工具。您可以在下列目錄中找到 create-service-account 工具:

APIGEE_HELM_CHARTS_HOME/
└── apigee-operator/
    └── etc/
        └── tools/
            └── create-service-account

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. 前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。

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

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

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

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

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

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

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

      您可以為服務帳戶新增多個角色,但 Apigee 建議為每個建議的服務帳戶只使用一個角色。如要在建立服務帳戶後變更角色,請使用 Google Cloud 控制台中的「IAM」頁面。

    8. 按一下「繼續」

      Google Cloud 會顯示「將這個服務帳戶的存取權授予使用者」檢視畫面:

      「服務帳戶使用者」角色和「服務帳戶管理員」角色的欄位,以及「建立金鑰」按鈕

    9. 在「Create key (optional)」(建立金鑰 (選擇性)) 下方,按一下「Create Key」(建立金鑰)

      Google Cloud 可讓您選擇下載 JSON 或 P12 金鑰:

      選取 JSON 或 P12 金鑰類型

    10. 選取 JSON (預設值),然後按一下「建立」

      Google Cloud 會將 JSON 格式的金鑰檔案儲存至本機,並在成功時顯示確認訊息,如下列範例所示:

      範例 filename.json

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

      服務帳戶會使用這些金鑰取得存取權杖,然後代表您對 Apigee API 提出要求。(但這還需要一段時間;目前請記住儲存位置即可)。

    11. 針對「混合式元件使用的服務帳戶和角色」中列出的每個服務帳戶,重複步驟 4 到 11 (apigee-mart 帳戶除外,因為該帳戶沒有相關聯的角色,因此請勿指派角色)。

      完成後,您應該會有下列服務帳戶 (如有預設帳戶,則一併列出):

      服務帳戶清單。第 1 欄選取方塊、第 2 欄電子郵件地址、第 3 欄狀態、第 4 欄服務帳戶名稱

      在 Google Cloud 控制台中,服務帳戶會以 左側按鍵、右側半矩形,全部加上底線 圖示表示。

    建立服務帳戶後,如要新增或移除角色,請使用「IAM 及管理」檢視畫面。您無法在「服務帳戶」檢視畫面中管理服務帳戶的角色。

    使用 gcloud 服務帳戶建立 API

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

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

    疑難排解