信任软件包(也称为信任列表)是一组信任锚(例如实体),这些信任锚本身就受到信任,并且其信任不会由其他实体(受信任的第三方)转移。这些信任锚以证书授权机构 (CA) 证书的形式提供。证书路径构建算法使用这些 CA 证书在需要验证的证书与信任锚之间建立链。
Google Distributed Cloud (GDC) 网闸隔离配置具有专用信任包。本指南概述了组织管理员获取信任包的步骤。
信任包类型
Distributed Cloud 为平台管理员提供两种类型的受管理信任包:
trust-store-root-ext
:包含内部根 CA 和 Web-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:?}.zone1.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
信任捆绑包,并将其存储在上一步中创建的文件中:echo -n | curl ${WELL_KNOWN_URL:?} > ${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-----
使用 kubectl 从集群中提取
您可以使用 kubectl
命令行工具直接从 GDC 集群中获取信任包。如果您可以直接访问集群及其配置,并且需要提取 trust-store-root-ext
或 trust-store-global-root-ext
信任软件包,请使用此方法。
您必须先获得以下信息,然后才能完成本部分中的步骤:
- 所需权限:请让您的组织 IAM 管理员为您授予 Trust Store Viewer (
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-----