本页面介绍了如何将自定义证书授权机构 (CA) 证书添加到 Google Distributed Cloud (GDC) 网闸隔离配置中的系统信任包。信任包是贵组织的服务用于验证其他服务身份的一组受信任 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 (trust-store-admin) 角色。
准备环境
登录 gdcloud CLI。
生成 kubeconfig 文件
完成以下步骤,为组织基础架构集群生成 kubeconfig 文件,并将其设置为 KUBECONFIG 变量,以供日后使用。
查看所有可用区:
gdcloud zones list请记下托管自定义资源的可用区的名称。
将
ZONE环境变量设置为托管组织基础架构集群的可用区:export ZONE="ZONE"将
ZONE替换为可用区名称。设置
ORG_INFRA_CLUSTER环境变量:export ORG_INFRA_CLUSTER="ORG_NAME-infra"将
ORG_NAME替换为您的组织的名称,例如org-1。为目标可用区生成组织基础设施集群 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 资源,然后将其应用于组织基础架构集群。
为自定义 CA PEM 文件设置环境变量:
export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE将
CUSTOM_CA_PEM_FILE替换为包含自定义 CA 证书(采用 PEM 格式编码)的文件的路径。使用 base64 对 CA 证书进行编码:
export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)创建以
trust-store-root-ext系统信任包为目标的 Secret YAML 文件 (custom-ca.yaml):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==使用
kubectl命令将 Secret 应用于组织基础架构集群:kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}此步骤通过自动更新
trust-store-root-ext和trust-store-global-root-ext信任包,使您的自定义 CA 可供 GDC 服务使用。
验证 CA 是否可用
确认您的自定义 CA 已添加到信任包中:
按照提取 GDC 信任包中的步骤,下载最新版本的
trust-store-root-ext信任包。如果您想从其他可用区提取自定义 CA,请使用
trust-store-global-root-ext信任包。打开下载的信任包文件,并确认
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-----