服務帳戶是 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 Trace 和 Jaeger。 | |
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 部分:步驟 5 - 建立服務帳戶」。 |
除了建立下表列出的服務帳戶,您還會使用每個帳戶的私密金鑰產生存取權杖,以便存取 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 控制台建立服務帳戶,並為該服務帳戶產生金鑰,請按照下列步驟操作:
-
建立服務帳戶:
-
前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
- 選取專案。
- 按一下「建立服務帳戶」 。
-
在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。 Google Cloud 控制台會根據這個名稱填入「服務帳戶 ID」 欄位。
Apigee 建議您使用可反映服務帳戶角色的名稱;您可以將服務帳戶名稱設為與使用該帳戶的元件相同。舉例來說,設定 Logs Writer 服務帳戶的名稱
apigee-logger
。如要進一步瞭解服務帳戶名稱和角色,請參閱混合式元件使用的服務帳戶和角色。
- 選用:在「服務帳戶說明」欄位中,輸入服務帳戶的說明。說明有助於提醒您特定服務帳戶的用途。
- 按一下「建立並繼續」。
-
按一下「Select a role」(選取角色) 欄位,然後選取角色,如「混合式元件使用的服務帳戶和角色」一文所述。如果下拉式清單中未顯示 Apigee 角色,請重新整理頁面。
舉例來說,如果是記錄元件,請選取「記錄寫入者」角色。
視需要輸入文字,依名稱篩選角色清單。舉例來說,如要只列出 Apigee 角色,請在篩選欄位中輸入
Apigee
。您可以為服務帳戶新增多個角色,但 Apigee 建議為每個建議的服務帳戶只使用一個角色。如要在建立服務帳戶後變更角色,請使用 Google Cloud 控制台中的「IAM」頁面。
- 按一下「繼續」。
Google Cloud 會顯示「將這個服務帳戶的存取權授予使用者」檢視畫面:
- 在「Create key (optional)」(建立金鑰 (選擇性)) 下方,按一下「Create Key」(建立金鑰)。
Google Cloud 可讓您選擇下載 JSON 或 P12 金鑰:
- 選取 JSON (預設值),然後按一下「建立」。
Google Cloud 會將 JSON 格式的金鑰檔案儲存至本機,並在成功時顯示確認訊息,如下列範例所示:
您稍後會使用部分服務帳戶金鑰,設定混合式執行階段服務。 舉例來說,設定混合式執行階段時,您會使用 SERVICE_NAME
.serviceAccountPath
屬性指定服務帳戶金鑰的位置。服務帳戶會使用這些金鑰取得存取權杖,然後代表您對 Apigee API 提出要求。(但這還需要一段時間;目前請記住儲存位置即可)。
- 針對「混合式元件使用的服務帳戶和角色」中列出的每個服務帳戶,重複步驟 4 到 11 (
apigee-mart
帳戶除外,因為該帳戶沒有相關聯的角色,因此請勿指派角色)。完成後,您應該會有下列服務帳戶 (如有預設帳戶,則一併列出):
在 Google Cloud 控制台中,服務帳戶會以
圖示表示。
建立服務帳戶後,如要新增或移除角色,請使用「IAM 及管理」檢視畫面。您無法在「服務帳戶」檢視畫面中管理服務帳戶的角色。
使用 gcloud 服務帳戶建立 API
您可以使用 Cloud Identity and Access Management API 建立及管理服務帳戶。
詳情請參閱「建立及管理服務帳戶」一文。
疑難排解
-