信任包(也称为信任列表)是一组信任锚(例如实体),这些信任锚本身受信任,其信任关系不会由其他实体(受信任的第三方)转移。这些信任锚以证书授权机构 (CA) 证书的形式提供。证书路径构建算法使用这些 CA 证书在获取验证的证书与信任锚之间建立链。
本文档适用于平台管理员群组中的受众群体(例如 IT 管理员或安全工程师),他们希望提取 GDC 信任包。如需了解详情,请参阅适用于 GDC 网闸隔离配置文档的受众群体。
准备工作
在提取 GDC 信任包之前,您必须为新组织建立初始信任。对于知名服务器和 kubectl 方法,此步骤都是必需的,但仅在您首次连接到新组织时才需要。
对于知名服务器方法,无需满足其他前提条件。对于 kubectl 方法,您还必须满足权限和工具前提条件。
为新新闻机构建立初始信任
如果您是首次连接到新的 GDC 组织,则必须建立初始信任。此一次性流程通过在客户端机器上信任组织的证书授权机构 (CA) 来确保安全连接。
请与基础架构运营商 (IO) 群组的成员联系,请求新组织的初始信任包。IO 具有提取此软件包所需的访问权限,该软件包通常来自组织基础架构集群中的
trust-store-root-ext密钥。根据贵组织的安全政策,通过 GDC 之外的安全信道从 IO 获取初始信任包文件。
按照系统信任根 CA 证书的标准程序,将信任包安装到客户端机器的受信任证书存储区中。
如果您需要访问 ServiceNow,请使用相同的流程获取并安装 gdchservices 组织信任包。
申请 IAM 角色
如需使用 kubectl 提取信任包,您需要拥有查看 Secret 的权限。请与您的 IAM 组织管理员联系,请求获取受信任证书存储区 Viewer (trust-store-viewer) 角色。
准备环境
如需使用 kubectl 方法,请准备本地环境:
为目标可用区中的 Management API 服务器生成 kubeconfig 文件。您需要 kubeconfig 文件的路径,才能替换
kubectl命令中的MANAGEMENT_API_SERVER_KUBECONFIG。
信任包类型
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 直接与集群交互时,请使用此方法。
在执行本部分中的步骤之前,请确保您已与组织的特定 CA 建立了初始信任。
Linux
导出以下环境变量:
export STORAGE=STORAGE export ORG_NAME=ORG_NAME export DNS_SUFFIX=DNS_SUFFIX替换以下内容:
STORAGE:您要存储信任包文件的目录路径。ORG_NAME:GDC 中组织的名称。DNS_SUFFIX:您的 DNS 后缀。例如,如果您的某个网域是org-1.zone1.google.gdch.test,则您的 DNS 后缀为zone1.google.gdch.test。
设置
WELL_KNOWN_URL环境变量:export WELL_KNOWN_URL="https://console.${ORG_NAME:?}.${DNS_SUFFIX:?}/.well-known/certificate-authority"设置
GLOBAL_TRUST_BUNDLE_FILE环境变量。此文件会将 GDC 信任包存储在您指定的$STORAGE位置。export GLOBAL_TRUST_BUNDLE_FILE="${STORAGE:?}/global/ca-bundles/global-trust-bundle"为信任包文件创建目录:
mkdir -p "$(dirname "${GLOBAL_TRUST_BUNDLE_FILE:?}")"从知名服务器获取
trust-store-global-root-ext信任包,并将其存储在GLOBAL_TRUST_BUNDLE_FILE环境变量指定的文件中:curl "${WELL_KNOWN_URL:?}" | sed '$a\' > "${GLOBAL_TRUST_BUNDLE_FILE:?}"
Windows
设置以下 PowerShell 变量:
$STORAGE = "STORAGE" $ORG_NAME = "ORG_NAME" $DNS_SUFFIX = "DNS_SUFFIX"替换以下内容:
STORAGE:您要存储信任包文件的目录路径,例如C:\Users\username\bundles。ORG_NAME:GDC 中组织的名称。DNS_SUFFIX:您的 DNS 后缀。例如,如果您的某个网域是org-1.zone1.google.gdch.test,则您的 DNS 后缀为zone1.google.gdch.test。
为信任包文件创建目录:
New-Item -ItemType Directory -Force -Path (Split-Path -Path "STORAGE\global\ca-bundles\global-trust-bundle")从知名服务器获取
trust-store-global-root-ext信任软件包,并将其存储在信任软件包文件中:Invoke-WebRequest -Uri "https://console.ORG_NAME.DNS_SUFFIX/.well-known/certificate-authority" -OutFile "STORAGE\global\ca-bundles\global-trust-bundle"
提取的信任包文件包含一个或多个 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 信任包,请使用此方法。
在执行本部分中的步骤之前,请确保您已与组织的特定 CA 建立了初始信任。
使用 kubectl 从集群中提取信任包:
导出以下环境变量:
export KUBECONFIG=MANAGEMENT_API_SERVER_KUBECONFIG export STORAGE=STORAGE export ZONE=ZONE替换以下内容:
MANAGEMENT_API_SERVER_KUBECONFIG:Management 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为信任包文件创建目录:
mkdir -p "$(dirname "${TRUST_BUNDLE_FILE:?}")" mkdir -p "$(dirname "${GLOBAL_TRUST_BUNDLE_FILE:?}")"获取证书授权机构 (CA) 并将其存储在
TRUST_BUNDLE_FILE和GLOBAL_TRUST_BUNDLE_FILE环境变量指定的文件中:对于
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-----