關於服務帳戶

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

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

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

雖然一個服務帳戶可以執行所有這些作業,但 Apigee 建議您建立多個服務帳戶,每個帳戶都指派給特定工作,並擁有自己的權限集。這項做法可劃分存取權,並限制每個服務帳戶的範圍和存取權限,進而提升安全性。與使用者帳戶相同,只要為服務帳戶指派一或多個角色,即可套用這些權限。

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

下表說明混合式元件的服務帳戶:

元件* 角色 基本安裝是否需要? 說明
apigee-cassandra Storage 物件管理員 允許將 Cassandra 備份至 Google Cloud Storage,如「備份與復原」一文所述。
apigee-logger 記錄寫入者 允許收集記錄資料,如「記錄」所述。僅適用於非 GKE 叢集安裝作業。
apigee-mart 沒有角色 允許 MART 服務驗證。這個服務帳戶不應有相關聯的角色;因此,建立這個服務帳戶時,請勿為其指派角色。
apigee-metrics Monitoring 指標寫入者 允許收集指標資料,如「指標收集」一文所述。
apigee-org-admin Apigee 組織管理員 可讓您呼叫 getSyncAuthorization APIsetSyncAuthorization API。您無法使用 create-service-account 工具建立這個服務帳戶。
apigee-synchronizer Apigee 同步處理工具管理員 允許同步器下載 Proxy 組合包和環境設定資料。並啟用追蹤功能。
apigee-udca Apigee 數據分析代理人 允許將追蹤記錄、分析和部署狀態資料傳輸至管理層。
* 這個名稱會用於下載的服務帳戶金鑰檔案名稱。

除了建立這份表格列出的服務帳戶,您也會下載這些帳戶的私密金鑰。您稍後會使用這些金鑰產生存取權杖,以便存取 Apigee API。

建立服務帳戶

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

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

使用服務帳戶建立工具

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

如要使用 create-service-account 工具建立服務帳戶:

  1. 下載並展開 apigeectl (如果尚未完成),如「下載並安裝 apigeectl」一文所述。
  2. 建立目錄來儲存服務帳戶金鑰。例如:
    mkdir ./service-accounts
  3. 執行下列指令:
    ./tools/create-service-account apigee-metrics ./service-accounts
    ./tools/create-service-account apigee-synchronizer ./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 目錄中。這些指令不會建立 apigee-org-admin 服務帳戶。

    如果這些指令失敗,請確認您已參照現有目錄,以便儲存金鑰檔案。

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

  4. 建立 apigee-org-admin 服務帳戶。如要執行這項操作,請使用 Google Cloud 控制台

使用 Google Cloud 控制台

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

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

  1. 開啟 Google Cloud 控制台,並使用您在步驟 1:建立 Google Cloud 帳戶中建立的使用者帳戶登入。
  2. 選取您在「步驟 2:建立 Google Cloud 專案」中建立的專案。
  3. 依序選取「IAM 與管理」>「服務帳戶」

    控制台會顯示「服務帳戶」檢視畫面。這個檢視畫面會顯示專案的服務帳戶清單。(在大多數情況下,系統不會列出任何帳戶,但視您建立專案的方式而定,清單中可能會顯示預設服務帳戶)。

  4. 如要建立新的服務帳戶,請按一下檢視畫面頂端的「+建立服務帳戶」

    系統會顯示「服務帳戶詳細資料」檢視畫面。

  5. 在「Service account name」(服務帳戶名稱) 欄位中,輸入服務帳戶的名稱。

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

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

    輸入名稱時,Google Cloud 會為您產生專屬服務帳戶 ID,其結構類似電子郵件地址,如下列範例所示:

    例如 apigee-logger@hybrid-42 的 ID。iam.gserviceaccount.com

    你也可以在「服務帳戶說明」欄位中新增說明。說明有助於提醒您特定服務帳戶的用途。

  6. 按一下 [建立]。

    Google Cloud 會建立新的服務帳戶,並顯示「服務帳戶權限」檢視畫面,如下列範例所示:

    建立未選取任何權限的服務帳戶

    使用這個檢視畫面,將角色指派給新的服務帳戶。

  7. 按一下「選取角色」下拉式清單。
  8. 如需如何為服務帳戶選取角色,請參閱「混合式元件使用的服務帳戶和角色」。如果下拉式清單中未顯示 Apigee 角色,請重新整理頁面。

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

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

    與 Apigee 相符的服務帳戶權限清單

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

  9. 按一下「Continue」(繼續)

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

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

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

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

    選取 JSON 或 P12 金鑰類型

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

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

    範例 filename.json

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

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

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

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

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

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

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

使用 gcloud 服務帳戶建立 API

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

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

疑難排解