服務帳戶是 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 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 機構管理員、Apigee 執行階段代理人、Apigee 同步處理工具管理員、Cloud Trace Agent、記錄記錄器、監控指標記錄器、儲存空間物件管理員 | 或上述所有必要的 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」(服務帳戶) 頁面。
- 選取專案。
- 按一下「Create Service Account」(建立服務帳戶) 。
-
在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。 Google Cloud 控制台會根據這個名稱填入「服務帳戶 ID」欄位。
Apigee 建議您使用反映服務帳戶角色的名稱;您可以將服務帳戶名稱設為與使用該帳戶的元件相同。舉例來說,請設定記錄寫入者服務帳戶
apigee-logger
的名稱。如要進一步瞭解服務帳戶名稱和角色,請參閱混合元件使用的服務帳戶和角色。
- 選用:在「服務帳戶說明」欄位中輸入服務帳戶的說明。說明可提醒您特定服務帳戶的用途。
- 按一下「建立並繼續」。
-
按一下「Select a role」欄位,然後選取角色,如混合式元件使用的服務帳戶和角色所述。如果下拉式清單中沒有顯示 Apigee 角色,請重新整理頁面。
舉例來說,如果是記錄元件,請選取「記錄寫入者」角色。
視需要輸入文字,依名稱篩選角色清單。舉例來說,如要只列出 Apigee 角色,請在篩選欄位中輸入
Apigee
。您可以為服務帳戶新增多個角色,但 Apigee 建議每個建議的服務帳戶只使用一個角色。如要在建立服務帳戶後變更其角色,請使用 Google Cloud 控制台中的「身分與存取權管理」頁面。
- 按一下「繼續」。
Google Cloud 會顯示「Grant users access to this service account」檢視畫面:
- 按一下「Create key (optional)」下方的「Create Key」。
Google Cloud 提供下載 JSON 或 P12 金鑰的選項:
- 選取 JSON (預設值),然後按一下「Create」。
Google Cloud 會以 JSON 格式將金鑰檔案儲存至本機,並在成功時顯示確認訊息,如以下範例所示:
您稍後會使用部分服務帳戶金鑰設定混合式執行階段服務。舉例來說,設定混合式執行階段時,您會使用 SERVICE_NAME
.serviceAccountPath
屬性指定服務帳戶金鑰的位置。服務帳戶會使用這些金鑰取得存取權杖,然後以您的名義向 Apigee API 提出要求。(但這還需要一段時間,目前只要記得儲存位置即可)。
- 針對混合式元件使用的服務帳戶和角色中列出的每個服務帳戶重複執行步驟 4 至 11 (
apigee-mart
帳戶除外,因為該帳戶沒有任何相關角色,因此請勿指派任何角色)。完成後,您應該會擁有下列服務帳戶 (除了預設帳戶,如果有的話):
在 Google Cloud 控制台中,服務帳戶會以
圖示表示。
建立服務帳戶後,如果要新增或移除角色,您必須使用「IAM 與管理」檢視畫面。您無法在「服務帳戶」檢視畫面中管理服務帳戶的角色。
使用 gcloud 服務帳戶建立 API
您可以使用 Cloud Identity and Access Management API 建立及管理服務帳戶。
詳情請參閱「建立及管理服務帳戶」。
疑難排解
-