將自訂 CA 新增至系統信任套裝組合

本頁面說明如何在 Google Distributed Cloud (GDC) 實體隔離方案中,將自訂憑證授權單位 (CA) 憑證新增至系統信任套件。信任套件是一組受信任的 CA,貴組織的服務會使用這些 CA 來驗證其他服務的身分。新增自訂 CA 後,您就能控管組織信任的憑證,安全連線至內部資源和其他信任的端點。

本頁面說明如何將自訂 CA 新增至 trust-store-root-ext 系統信任套件。修改 trust-store-root-ext 信任套件時,變更會自動套用至 trust-store-global-root-ext 套件,讓所有可用區都能使用自訂 CA。

本頁面適用於平台管理員群組 (例如 IT 管理員),他們需要管理及保護組織在 GDC 中的資源。詳情請參閱「GDC 實體隔離方案的目標對象」說明文件。

事前準備

如要將自訂 CA 憑證新增至系統信任套件,您必須要求必要權限並準備環境。

要求 IAM 角色

如要建立、讀取、更新及刪除 Secret,請與 IAM 機構組織管理員聯絡,要求取得信任存放區管理員 (trust-store-admin) 角色。

準備環境

產生 kubeconfig 檔案

請完成下列步驟,為組織基礎架構叢集產生 kubeconfig 檔案,並將其設為 KUBECONFIG 變數,以便稍後使用。

  1. 查看所有可用區:

    gdcloud zones list
    

    記下託管自訂資源的區域名稱。

  2. 將 ZONE 環境變數設為託管組織基礎架構叢集的可用區:

    export ZONE="ZONE"
    

    將 ZONE 替換為區域名稱。

  3. 設定 ORG_INFRA_CLUSTER 環境變數:

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    將 ORG_NAME 替換為貴組織的名稱,例如 org-1。

  4. 為目標可用區產生組織基礎架構叢集 kubeconfig 檔案,並驗證憑證:

    export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。

將自訂 CA 新增至系統信任套裝組合

如要將自訂 CA 新增至 trust-store-root-ext 系統信任套裝組合,您必須準備自訂 CA 資源,然後將其套用至組織基礎架構叢集。

  1. 設定自訂 CA PEM 檔案的環境變數:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    將 CUSTOM_CA_PEM_FILE 替換為包含自訂 CA 憑證的檔案路徑,並以 PEM 格式編碼。

  2. 使用 base64 編碼 CA 憑證:

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. 建立 Secret YAML 檔案 (custom-ca.yaml),指定 trust-store-root-ext 系統信任套件:

    cat > custom-ca.yaml <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
      ca.crt: ${ENCODED_CA:?}
    EOF
    

    以下是 custom-ca.yaml 檔案範例:

    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
       ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    
  4. 使用 kubectl 指令,將 Secret 套用至組織基礎架構叢集:

     kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}
    

    這個步驟會自動更新 trust-store-root-ext 和 trust-store-global-root-ext 信任套件,讓 GDC 服務可以使用自訂 CA。

確認 CA 可用

確認自訂 CA 已新增至信任套件:

  1. 按照「擷取 GDC 信任套件」中的步驟,下載最新版本的 trust-store-root-ext 信任套件。

    如要從其他可用區擷取自訂 CA,請使用 trust-store-global-root-ext 信任套件。

  2. 開啟下載的信任套件檔案,確認 CUSTOM_CA_PEM_FILE 指定的每個自訂 CA 憑證都存在。

    個別搜尋每個自訂 CA 憑證。顯示順序可能不盡相同,不一定會出現在清單結尾。

    以下是 trust-store-root-ext 的範例:

    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQPLOPa...
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
       < Imported CA data>
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
    MIIDAzCCAeugAwIBAgIRAIV2...
    -----END CERTIFICATE-----