關於服務帳戶

服務帳戶是 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 與管理」>「服務帳戶」

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

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

    畫面上會顯示「Service account details」檢視畫面。

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

    Apigee 建議您使用反映服務帳戶角色的名稱;您可以將服務帳戶名稱設為與使用該帳戶的元件相同。例如,設定記錄寫入者服務帳戶 apigee-logger 的名稱。

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

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

    範例 ID:apigee-logger@hybrid-42。iam.gserviceaccount.com

    您可以選擇在「服務帳戶說明」欄位中新增說明。說明可提醒您特定服務帳戶的用途。

  6. 按一下 [建立]。

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

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

    使用這個檢視畫面為新服務帳戶指派角色。

  7. 按一下「請選擇角色」下拉式清單。
  8. 選取服務帳戶的角色,如混合元件使用的服務帳戶和角色一文所述。如果下拉式清單中沒有顯示 Apigee 角色,請重新整理頁面。

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

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

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

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

  9. 按一下「繼續」

    Google Cloud 會顯示「Grant users access to this service account」檢視畫面:

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

  10. 按一下「Create key (optional)」下方的「Create Key」

    Google Cloud 提供下載 JSON 或 P12 金鑰的選項:

    選取 JSON 或 P12 金鑰類型

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

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

    範例檔案名稱.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 建立及管理服務帳戶。

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

疑難排解