信任組合 (又稱信任清單) 是一組信任錨點,例如本質上值得信任的實體,且信任度不會由其他實體 (信任的第三方) 轉移。這些信任錨點會以憑證授權單位 (CA) 憑證的形式提供。憑證路徑建構演算法會使用這些 CA 憑證,在取得驗證的憑證和信任錨點之間建立鏈結。
Google Distributed Cloud (GDC) 實體隔離方案具有專屬的信任套件。本指南說明如何為機構管理員擷取信任組合。
信任憑證組合類型
Distributed Cloud 為平台管理員提供兩種受管理信任組合:
trust-store-root-ext
:包含內部根 CA 和網頁 TLS CA。內容會因所在位置 (例如根目錄或租戶機構) 而異。您可以使用這個信任組合跨機構通訊,或存取機構內的物件儲存空間等服務。trust-store-global-root-ext
:可在全域 API 伺服器和區域 API 伺服器platform
命名空間中使用。全域 API 伺服器準備就緒後,套件會填入所有其他區域trust-store-root-ext
資料,包括本機資料。
擷取信任套件
您可以從知名伺服器端點或叢集 (使用 kubectl
) 擷取信任組合。
從知名伺服器擷取
GDC 提供安全的方式,透過已知的伺服器端點存取信任組合。如要擷取 trust-store-global-root-ext
組合包,但不想使用 kubectl
直接與叢集互動,請使用這個方法。
匯出下列環境變數:
export STORAGE=STORAGE export ORG_NAME=ORG_NAME
更改下列內容:
STORAGE
:要儲存信任套件檔案的目錄路徑。ORG_NAME
:您在 GDC 中的機構名稱。
設定
WELL_KNOWN_URL
環境變數:export WELL_KNOWN_URL=https://console.${ORG_NAME:?}.google.gdch.test/.well-known/certificate-authority
設定
GLOBAL_TRUST_BUNDLE_FILE
環境變數。這個檔案會將 GDC 信任組合儲存在您指定的$STORAGE
位置。export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
從知名伺服器取得
trust-store-global-root-ext
信任組合,並儲存在上一步建立的檔案中:Linux
echo -n | curl ${WELL_KNOWN_URL:?} > ${GLOBAL_TRUST_BUNDLE_FILE:?}
Windows
Invoke-WebRequest -Uri "https://console.${ORG_NAME}.google.gdch.test/.well-known/certificate-authority" -OutFile ".\global-trust-bundle.crt"
擷取的信任組合檔案含有一或多個 CA 憑證。輸出結果會與下列內容相似:
-----BEGIN CERTIFICATE----- MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3 MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93 WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317 D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ== -----END CERTIFICATE-----
使用 kubectl 從叢集擷取
您可以使用 kubectl
指令列工具,直接從 GDC 叢集擷取信任授權組合。如果您可直接存取叢集及其設定,且需要擷取 trust-store-root-ext
或 trust-store-global-root-ext
信任組合,請使用這個方法。
如要完成本節中的步驟,您必須先取得下列項目:
- 必要權限:請機構 IAM 管理員授予您信任儲存區檢視者 (
trust-store-viewer
) 角色。 - Kubeconfig 檔案:登入並產生 Management API 伺服器的 kubeconfig 檔案 (如果沒有的話)。您需要 kubeconfig 檔案的路徑,才能在後續步驟中取代
MANAGEMENT_API_SERVER_KUBECONFIG
。
使用 kubectl
從叢集擷取信任套件:
匯出下列環境變數:
export KUBECONFIG=MANAGEMENT_API_SERVER_KUBECONFIG export STORAGE=STORAGE export ZONE=ZONE
更改下列內容:
MANAGEMENT_API_SERVER_KUBECONFIG
:管理 API 伺服器 kubeconfig 的路徑。STORAGE
:要儲存信任套件檔案的目錄路徑。ZONE
:您的 GDC 區域名稱。
設定
TRUST_BUNDLE_FILE
環境變數。這個檔案會將 GDC 信任組合在本機儲存在您為 GDC$ZONE
指定的$STORAGE
位置:export TRUST_BUNDLE_FILE="$STORAGE/$ZONE/ca-bundles/trust-bundle" export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
為命名空間設定
NS
命名空間環境變數:export NS=platform
取得憑證授權單位 (CA),並儲存在步驟 2 建立的檔案中:
針對
trust-store-root-ext
:kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${TRUST_BUNDLE_FILE}
針對
trust-store-global-root-ext
:kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-global-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${GLOBAL_TRUST_BUNDLE_FILE}
擷取的信任組合檔案含有一或多個 CA 憑證。輸出結果會與下列內容相似:
-----BEGIN CERTIFICATE----- MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3 MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93 WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317 D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ== -----END CERTIFICATE-----