服務帳戶是 Google Cloud 中的特殊帳戶類型,可讓系統的元件和應用程式彼此互動,以及與其他 API 互動。如要進一步瞭解 Google Cloud,請參閱「關於 Google Cloud 服務」。
Hybrid 會使用 Google Cloud 服務帳戶執行各種工作,包括:
- 傳送記錄和指標資料
- 提取追蹤記錄要求
- 連線至 API Gateway,提出管理 API 要求
- 執行備份
- 下載 Proxy 套件
雖然一個服務帳戶可以執行所有這些作業,但 Apigee 建議您建立多個服務帳戶,每個帳戶都指派給特定工作,並擁有自己的權限集。這項做法可劃分存取權,並限制每個服務帳戶的範圍和存取權限,進而提升安全性。與使用者帳戶相同,只要為服務帳戶指派一或多個角色,即可套用這些權限。
混合式元件使用的服務帳戶和角色
Apigee Hybrid 正常運作需要您建立多個服務帳戶。每個服務帳戶都需要特定角色,才能執行其功能。
下表說明混合式元件的服務帳戶:
| 元件* | 角色 | 基本安裝是否需要? | 說明 |
|---|---|---|---|
apigee-cassandra |
Storage 物件管理員roles/storage.objectAdmin |
允許將 Cassandra 備份到 Cloud Storage,如「備份與復原」一文所述。 | |
apigee-distributed-trace |
Cloud Trace 代理程式roles/cloudtrace.agent |
允許混合式執行階段平面以與 Google Cloud Trace 和 Jaeger 等系統相容的格式,參與分散式要求追蹤。 | |
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-org-admin |
Apigee 機構管理員roles/apigee.admin |
可讓您呼叫 getSyncAuthorization API 和 setSyncAuthorization API。由於 Apigee 機構管理員是 Runtime 層的外部角色,因此您無法使用 create-service-account 工具將這個角色指派給服務帳戶。 |
|
apigee-synchronizer |
Apigee 同步處理工具管理員roles/apigee.synchronizerManager |
允許同步器下載 Proxy 組合包和環境設定資料。並啟用追蹤功能。 | |
apigee-udca |
Apigee 數據分析代理人roles/apigee.analyticsAgent |
允許將追蹤記錄、分析和部署狀態資料傳輸至管理層。 | |
apigee-watcher |
Apigee 執行階段代理程式roles/apigee.runtimeAgent |
Apigee Watcher 會從同步器提取機構的虛擬主機相關變更,並進行必要變更來設定 Istio Ingress。 | |
| * 這個名稱會用於下載的服務帳戶金鑰檔案名稱。 | |||
除了建立這份表格列出的服務帳戶,您也會下載這些帳戶的私密金鑰。您稍後會使用這些金鑰產生存取權杖,以便存取 Apigee API。
建立服務帳戶
建立服務帳戶的方式有很多種,包括:
以下各節將分別說明這些項目。
使用服務帳戶建立工具
create-service-account 工具 (下載並展開 apigeectl 後即可使用) 會建立混合式元件專用的服務帳戶,並指派必要角色。這項工具也會自動下載服務帳戶金鑰,並儲存在本機電腦的指定目錄中。
如要使用 create-service-account 工具建立服務帳戶:
- 下載並展開
apigeectl(如果尚未完成),如「下載並安裝 apigeectl」一文所述。 - 建立目錄來儲存服務帳戶金鑰。例如:
mkdir ./service-accounts
- 執行下列指令:
./tools/create-service-account apigee-metrics ./service-accounts
./tools/create-service-account apigee-synchronizer ./service-accounts./tools/create-service-account apigee-distributed-trace ./service-accounts./tools/create-service-account apigee-udca ./service-accounts./tools/create-service-account apigee-mart ./service-accounts./tools/create-service-account apigee-cassandra ./service-accounts./tools/create-service-account apigee-logger ./service-accounts這些指令會建立大部分必要的帳戶,並將金鑰儲存在
./service-accounts目錄中。如果這些指令失敗,請確認您已參照現有目錄,以便儲存金鑰檔案。
如要進一步瞭解如何使用
create-service-account,請參閱 create-service-account 參考資料。
使用 Google Cloud 控制台
您可以使用 Google Cloud 控制台建立服務帳戶。
如要使用 Google Cloud 控制台建立服務帳戶,請按照下列步驟操作:
- 開啟 Google Cloud 控制台,並使用您在步驟 1:建立 Google Cloud 帳戶中建立的使用者帳戶登入。
- 選取您在「步驟 2:建立 Google Cloud 專案」中建立的專案。
- 依序選取「IAM 與管理」>「服務帳戶」。
控制台會顯示「服務帳戶」檢視畫面。這個檢視畫面會顯示專案的服務帳戶清單。(在大多數情況下,系統不會列出任何帳戶,但視您建立專案的方式而定,清單中可能會顯示預設服務帳戶)。
- 如要建立新的服務帳戶,請按一下檢視畫面頂端的「+建立服務帳戶」。
系統會顯示「服務帳戶詳細資料」檢視畫面。
- 在「Service account name」(服務帳戶名稱) 欄位中,輸入服務帳戶的名稱。
Apigee 建議您使用可反映服務帳戶角色的名稱;您可以將服務帳戶名稱設為與使用該帳戶的元件相同。舉例來說,設定 Logs Writer 服務帳戶的名稱
apigee-logger。如要進一步瞭解服務帳戶名稱和角色,請參閱混合式元件使用的服務帳戶和角色。
輸入名稱時,Google Cloud 會為您產生專屬服務帳戶 ID,其結構類似電子郵件地址,如下列範例所示:

你也可以在「服務帳戶說明」欄位中新增說明。說明有助於提醒您特定服務帳戶的用途。
- 按一下 [建立]。
Google Cloud 會建立新的服務帳戶,並顯示「服務帳戶權限」檢視畫面,如下列範例所示:

使用這個檢視畫面,將角色指派給新的服務帳戶。
- 按一下「選取角色」下拉式清單。
- 如需如何為服務帳戶選取角色,請參閱「混合式元件使用的服務帳戶和角色」。如果下拉式清單中未顯示 Apigee 角色,請重新整理頁面。
舉例來說,如果是記錄元件,請選取「記錄寫入者」角色。
視需要輸入文字,依名稱篩選角色清單。舉例來說,如要只列出 Apigee 角色,請在篩選器欄位中輸入
Apigee,如下列範例所示:
您可以為服務帳戶新增多個角色,但 Apigee 建議您只為每個建議的服務帳戶指派一個角色。如要在建立服務帳戶後變更角色,請使用 Google Cloud 中的「IAM 與管理」面板。
- 按一下「Continue」(繼續)。
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 建立及管理服務帳戶。
詳情請參閱「建立及管理服務帳戶」一文。