步驟 4:建立服務帳戶

總覽

本步驟說明如何建立 Apigee Hybrid 運作所需的 Google Cloud 服務帳戶,並為這些帳戶指派適當的 IAM 角色。

這個程序會使用步驟 2:下載 Apigee Helm 圖表中定義的下列兩個環境變數。這些變數為選用項目。如果您未定義這些變數,請在程式碼範例中,為每個變數代入適當的目錄路徑。

正式環境與非正式環境

本指南會提及正式版 (「正式版」) 和非正式版 (「非正式版」) 安裝作業。實際工作環境安裝作業會經過調整,以提高使用容量、儲存空間和擴充性。非實際工作環境安裝使用的資源較少,主要用於學習和示範。

為 Apigee Hybrid 建立及設定服務帳戶時,請務必留意目標安裝類型。

如果是正式環境安裝作業,建議您為每個 Apigee Hybrid 元件建立專屬的服務帳戶。舉例來說,執行階段、集市、指標、UDCA 等都會各自取得專屬的服務帳戶。

如果是非正式版安裝作業,您可以建立單一服務帳戶,並套用至所有元件。

如要進一步瞭解 Apigee 使用的服務帳戶,以及指派給這些帳戶的角色,請參閱混合式元件使用的服務帳戶和角色

GKE 的 Workload Identity

在 GKE 上安裝 Apigee Hybrid 時,Google Cloud 提供「工作負載身分」選項,用於驗證 Hybrid 執行階段元件。這個選項不會使用下載的憑證檔案驗證服務帳戶,而是將您在這個步驟中建立的 Google Cloud 服務帳戶,與 Kubernetes 叢集中的 Kubernetes 服務帳戶建立關聯。

Workload Identity 僅適用於 GKE 安裝作業。

建立服務帳戶

Apigee Hybrid 會使用下列服務帳戶:

正式環境

服務帳戶 IAM 角色 Apigee Helm 圖表
apigee-cassandra Storage 物件管理員 apigee-datastore
apigee-logger 記錄寫入者 apigee-telemetry
apigee-mart Apigee Connect 代理人 apigee-org
apigee-metrics Monitoring 指標寫入者 apigee-telemetry
apigee-runtime 不需要角色 apigee-env
apigee-synchronizer Apigee 同步處理工具管理員
儲存空間物件管理員
apigee-env
apigee-udca Apigee 數據分析代理人 apigee-org
apigee-env
apigee-watcher Apigee 執行階段代理人 apigee-org

非正式環境

服務帳戶 IAM 角色 Apigee Helm 圖表
apigee-non-prod Storage 物件管理員
記錄檔寫入者
Apigee Connect 代理人
Monitoring 指標寫入者
Apigee 同步處理工具管理員
Apigee Analytics 代理人
Apigee 執行階段代理人
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

create-service-account 工具

Apigee 提供一項工具,位於 apigee-operator/etc/tools 目錄:create-service-account

$APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account

這項工具會建立服務帳戶、為每個帳戶指派 IAM 角色,並以 JSON 格式下載每個帳戶的憑證檔案。

確認你可以執行 create-service-account。如果您剛下載圖表,create-service-account 檔案可能不是可執行模式。在 APIGEE_HELM_CHARTS_HOME 目錄中執行下列指令:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

如果輸出內容顯示 permission denied,您需要讓檔案可執行,例如在 Linux、MacOS 或 UNIX 中使用 chmod,或在 Windows 檔案總管中,或在 Windows 中使用 icacls 指令。例如:

chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

建立服務帳戶

由於 Helm 不支援參照圖表目錄外的檔案,因此您會在對應混合式元件的圖表目錄中,建立每個服務帳戶憑證檔案。

接下來,請選擇要設定正式環境或非正式環境的安裝作業。

正式環境

  1. 確認已定義 PROJECT_ID 環境變數。
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable 。如果未定義,請使用 Google Cloud 專案 ID 定義,或將 --project-id my_project_id 標記新增至 create-service-account 指令。

  2. 使用下列指令建立服務帳戶,其中 $APIGEE_HELM_CHARTS_HOME 是您下載 Apigee Helm 資訊套件的路徑。系統可能會提示您建立每個服務帳戶。請以 y 回覆。
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-cassandra \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-logger \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mart \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-metrics \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-runtime \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-synchronizer \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-watcher \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
  3. 檢查每個圖表的目錄內容,確認服務帳戶檔案是否已在正確的目錄中建立。輸出內容應如下所示:
    ls ./apigee-datastore
    Chart.yaml  my_project_id-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  my_project_id-apigee-logger.json  my_project_id-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      my_project_id-apigee-udca.json     templates
    my_project_id-apigee-mart.json  my_project_id-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  my_project_id-apigee-runtime.json  my_project_id-apigee-synchronizer.json my_project_id-apigee-udca.json templates  values.yaml
    

非正式環境

  1. 確認已定義 PROJECT_ID 環境變數。
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable 。如果未定義,請使用 Google Cloud 專案 ID 定義,或在 create-service-account 指令中加入 --project-id my_project_id 標記。

  2. 執行下列指令建立服務帳戶,其中 $APIGEE_HELM_CHARTS_HOME 是您下載 Apigee Helm 資訊套件的路徑。系統可能會提示您建立每個服務帳戶。請以 y 回覆。
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. 確認在 apigee-datastore 目錄中建立的服務帳戶檔案名稱:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  my_project_id-apigee-non-prod.json  templates  values.yaml
  4. 將服務帳戶檔案複製到需要參照該檔案的其他圖表目錄:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/

如要進一步瞭解服務帳戶和 create-service-account 工具,請參閱:

您現在已建立服務帳戶,並指派 Apigee Hybrid 元件所需的角色。接著,請建立混合式 Ingress 閘道所需的 TLS 憑證。

1 2 3 4 (下一步) 步驟 5:建立 TLS 憑證 6 7 8 9 10 11 12