總覽
本步驟說明如何建立 Apigee hybrid 運作所需的 Google Cloud 服務帳戶,並指派適當的 IAM 角色。
這個程序會使用步驟 2:下載 Apigee Helm 圖表中定義的下列兩個環境變數。這些變數為選用項目。如果您未定義這些變數,請在程式碼範例中為每個變數替換適當的目錄路徑。
$APIGEE_HELM_CHARTS_HOME
:您下載 Apigee Helm 圖表的資料夾,如步驟 2:下載 Apigee Helm 圖表所定義。$PROJECT_ID
:您的 Google Cloud 專案 ID,請參閱第 1 部分:專案和組織設定--步驟 1:啟用 API。
正式環境與非正式環境
本指南會提到「正式版」(「Prod」) 和「非正式版」(「Non-prod」) 安裝。實際工作環境安裝作業會調整為提供更大的使用容量、儲存空間和擴充性。非正式安裝作業會使用較少資源,主要用於學習和示範。
為 Apigee hybrid 建立及設定服務帳戶時,請務必留意您指定的安裝類型。
對於正式環境安裝作業,建議您為每個 Apigee 混合式元件建立個別的服務帳戶。舉例來說,執行階段、mart、指標、udca 等都會各自取得專屬的服務帳戶。
對於非正式環境安裝作業,您可以建立單一服務帳戶,套用至所有元件。
如要進一步瞭解 Apigee 使用的服務帳戶,以及指派給這些帳戶的角色,請參閱「混合式元件使用的服務帳戶和角色」。
驗證服務帳戶
Apigee hybrid 支援三種驗證 Google 服務帳戶的方法:
AKS、EKS 或 GKE 上的 Workload Identity
針對 GKE 上的 Apigee Hybrid 安裝作業,Google Cloud 提供名為 Workload Identity 的選項,用於驗證混合式執行階段元件。這個選項不會使用下載的憑證檔案驗證服務帳戶,而是將您在這個步驟中建立的 Google Cloud 服務帳戶,與 Kubernetes 叢集中的 Kubernetes 服務帳戶建立關聯。請參閱「在 GKE 上啟用 Workload Identity」或「在 AKS 和 EKS 上啟用 Workload Identity 聯盟」。
建立服務帳戶
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 同步處理工具管理員 Storage 物件管理員 |
apigee-env |
apigee-udca |
Apigee 數據分析代理人 | apigee-org apigee-env |
apigee-watcher |
Apigee 執行階段代理人 | apigee-org |
非正式環境
服務帳戶 | IAM 角色 | Apigee Helm 圖表 |
---|---|---|
apigee-non-prod |
Storage 物件管理員 Logs Writer Apigee Connect 代理人 Monitoring 指標寫入者 Apigee 同步處理工具管理員 Apigee Analytics Agent 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 或 Windows 中的 Windows 檔案總管中使用 chmod
,或是在 Windows 中使用 icacls
指令。例如:
chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
建立服務帳戶
由於 Helm 不支援參照圖表目錄以外的檔案,因此您必須在對應的混合元件圖表目錄中建立每個服務帳戶憑證檔案。
在後續步驟中,請選擇要設定正式環境或非正式環境的設定。
正式發布階段
- 確認已定義
PROJECT_ID
環境變數。echo $PROJECT_ID
create-service-account tool uses the value of the
。如果未定義,請使用 Google Cloud 專案 ID 的 ID 定義它,或是將PROJECT_ID
environment variable--project-id PROJECT_ID
標記新增至create-service-account
指令。 -
請使用下列指令建立服務帳戶,其中
$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-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
- 將
apigee-udca
JSON 檔案複製到apigee-env
圖表目錄。這項屬性適用於組織範圍和環境範圍的作業。cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- 檢查每個圖表目錄的內容,確認服務帳戶檔案是在正確的目錄中建立。輸出內容應如下所示:
ls ./apigee-datastore
Chart.yaml PROJECT_ID-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml PROJECT_ID-apigee-logger.json PROJECT_ID-apigee-metrics.json templates values.yamlls ./apigee-org
Chart.yaml PROJECT_ID-apigee-udca.json templates PROJECT_ID-apigee-mart.json PROJECT_ID-apigee-watcher.json values.yamlls ./apigee-env
Chart.yaml PROJECT_ID-apigee-runtime.json PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json templates values.yaml
非正式環境
- 確認已定義
PROJECT_ID
環境變數。echo $PROJECT_ID
create-service-account tool uses the value of the
。如果未定義,請使用 Google Cloud 專案 ID 的 ID 定義它,或是將PROJECT_ID
environment variable--project-id PROJECT_ID
標記新增至create-service-account
指令。 -
使用下列指令建立服務帳戶,其中
$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
- 確認在
apigee-datastore
目錄中建立的服務帳戶檔案名稱:ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
Chart.yaml PROJECT_ID-apigee-non-prod.json templates values.yaml
- 將服務帳戶檔案複製到需要參照該檔案的其他圖表目錄:
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 混合元件所需的角色。接下來,請建立混合式入口閘道所需的 TLS 憑證。