管理信任配置

本页面介绍如何创建和管理信任配置以用于双向 TLS 身份验证 (mTLS) 场景。

如需了解详情,请参阅以下资源:

本页面中的 gcloud 说明假定您使用的是 Cloud Shell 或安装了 bash 的其他环境。如需详细了解本页面中使用的 gcloud 命令,请参阅 Certificate Manager CLI 参考文档

创建信任配置

如需完成此任务,您必须对目标 Google Cloud 项目拥有以下角色之一:

  • 证书管理器编辑器 (roles/certificatemanager.editor)
  • 证书管理器所有者 (roles/certificatemanager.owner)

如需了解详情,请参阅角色和权限

如需创建信任配置,请完成以下步骤:

  1. 创建用于指定信任配置参数的信任配置 YAML 文件。 该文件采用以下格式:

    trustStores:
    ‑ trustAnchors:
     ‑ pemCertificate: "CERTIFICATE_PEM_PAYLOAD"
     intermediateCas:
     ‑ pemCertificate: "INTER_CERT_PEM_PAYLOAD"
    allowlistedCertificates:
    ‑ pemCertificate: "ALLOWLISTED_CERT1"
    ‑ pemCertificate: "ALLOWLISTED_CERT2"
    

    请替换以下内容:

    • TRUST_CONFIG_ID:用于标识此信任配置资源的唯一 ID。
    • CERTIFICATE_PEM_PAYLOAD:要用于此信任配置资源的证书的完整 PEM 载荷。
    • INTER_CERT_PEM_PAYLOAD:要用于此信任配置资源的中间证书的完整 PEM 载荷。此值是可选的。
    • ALLOWLISTED_CERT1ALLOWLISTED_CERT2:要用于此信任配置资源的已列入许可名单的证书。此值是可选的。

      您可以在信任配置资源规范的相应部分中使用 pemCertificate 字段的多个实例(每个实例一个证书),指定多个信任锚和中间证书。

      列入许可名单的证书表示可封装在信任配置中以便始终被视为有效的任何证书。您可以使用 pemCertificate 字段的多个实例来指定多个已列入许可名单的证书,其中每个实例一个证书可添加到信任配置。使用已列入许可名单的证书时,无需信任存储区。只要许可名单中的证书可解析、已建立私钥所有权证明,并满足证书的 SAN 字段限制条件,该证书就会始终被视为有效。过期证书在列入许可名单时也被视为有效。如需详细了解 PEM 编码格式,请参阅 RFC 7468

  2. 将信任配置文件导入证书管理器:

    gcloud

    使用 gcloud certificate-manager trust-configs import 命令:

    gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \
       --project=PROJECT_ID \
       --source=TRUST_CONFIG_FILE \
       --location=LOCATION
    

    请替换以下内容:

    • TRUST_CONFIG_ID:用于标识此信任配置资源的唯一 ID。
    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • TRUST_CONFIG_FILE:您在第 1 步中创建的信任配置 YAML 文件的完整路径和名称。
    • LOCATION:存储信任配置资源的区域。默认位置是 global

    API

    trustConfigs.create 方法发出 POST 请求:

    POST /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?trust_config_id=TRUST_CONFIG_ID
    {
      "description": "DESCRIPTION",
      "trust_stores": {
        "trust_anchors": [{
          "pem_certificate": "CERTIFICATE_PEM_PAYLOAD"
        }],
        "intermediate_cas": [{
          "pem_certificate": "INTER_CERT_PEM_PAYLOAD"
        }],
      },
      "allowlistedCertificates": [{
        "pem_certificate": "ALLOWLISTED_CERT"
      }],
    }
    

    请替换以下内容:

    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global
    • TRUST_CONFIG_ID:用于标识此信任配置资源的唯一 ID。
    • DESCRIPTION:此信任配置资源的有意义的说明。此值是可选的。
    • CERTIFICATE_PEM_PAYLOAD:要用于此信任配置资源的证书的完整 PEM 载荷。
    • INTER_CERT_PEM_PAYLOAD:要用于此信任配置资源的中间证书的完整 PEM 载荷。此值是可选的。
    • ALLOWLISTED_CERT:要用于此信任配置资源的已列入许可名单的证书。此值是可选的。

更新信任配置

如需完成此任务,您必须对目标 Google Cloud 项目拥有以下角色之一:

  • 证书管理器编辑器 (roles/certificatemanager.editor)
  • 证书管理器所有者 (roles/certificatemanager.owner)

如需了解详情,请参阅角色和权限

如需更新信任配置,请完成以下步骤:

  1. 创建更新后的信任配置 YAML 文件,用于指定新的信任配置参数。该文件采用以下格式:

    name: "TRUST_CONFIG_ID"
    trustStores:
    ‑ trustAnchors:
     ‑ pemCertificate: "CERTIFICATE_PEM_PAYLOAD"
     intermediateCas:
     ‑ pemCertificate: "INTER_CERT_PEM_PAYLOAD"
    allowlistedCertificates:
    ‑ pemCertificate: "ALLOWLISTED_CERT1"
    ‑ pemCertificate: "ALLOWLISTED_CERT2"
    

    请替换以下内容:

    • TRUST_CONFIG_ID:用于标识此信任配置资源的唯一 ID。
    • CERTIFICATE_PEM_PAYLOAD:要用于此信任配置资源的证书的完整 PEM 载荷。
    • INTER_CERT_PEM_PAYLOAD:要用于此信任配置资源的中间证书的完整 PEM 载荷。此值是可选的。
    • ALLOWLISTED_CERT1ALLOWLISTED_CERT1:要用于此信任配置资源的已列入许可名单的证书。此值是可选的。
  2. 相对于现有信任配置资源名称,将新的信任配置文件导入证书管理器:

    gcloud

    使用 gcloud certificate-manager trust-configs import 命令:

    gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \
        --project=PROJECT_ID \
        --source=TRUST_CONFIG_FILE \
        --location=LOCATION
    

    请替换以下内容:

    • TRUST_CONFIG_ID:目标信任配置资源的 ID。
    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • TRUST_CONFIG_FILE:更新后的信任配置文件的完整路径和名称。
    • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global

    API

    trustConfigs.update 方法发出 PATCH 请求:

    PATCH /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID?update_mask=*
     {
       "description": "DESCRIPTION",
       "trust_stores": {
         "trust_anchors": [{
           "pem_certificate": "CERTIFICATE_PEM_PAYLOAD"
         }],
         "intermediate_cas": [{
           "pem_certificate": "INTER_CERT_PEM_PAYLOAD"
         }],
       },
       "allowlistedCertificates": [{
         "pem_certificate": "ALLOWLISTED_CERT"
      }],
     }
    

    请替换以下内容:

    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global
    • TRUST_CONFIG_ID:目标信任配置资源的 ID。
    • DESCRIPTION:此信任配置资源的有意义的说明。此说明是可选的。
    • CERTIFICATE_PEM_PAYLOAD:要用于此信任配置资源的证书的完整 PEM 载荷。
    • INTER_CERT_PEM_PAYLOAD:要用于此信任配置配置资源的中间证书的完整 PEM 载荷。此值是可选的。
    • ALLOWLISTED_CERT:要用于此信任配置资源的已列入许可名单的证书。此值是可选的。

列出信任配置

如需完成此任务,您必须对目标 Google Cloud 项目拥有以下角色之一:

  • 证书管理器查看者 (roles/certificatemanager.viewer)
  • 证书管理器编辑器 (roles/certificatemanager.editor)
  • 证书管理器所有者 (roles/certificatemanager.owner)

如需了解详情,请参阅角色和权限

如需列出已配置的信任配置,请完成以下步骤。

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 点击信任配置标签页。

    该标签页会显示已配置的信任配置资源的列表。

gcloud

使用 gcloud certificate-manager trust-configs list 命令:

gcloud certificate-manager trust-configs list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY" \
    --location=LOCATION

请替换以下内容:

  • FILTER:用于将返回的结果限制为特定值的表达式。

    例如,您可以按以下条件过滤结果:

    • 标签和创建时间:--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    如需查看可与 Certificate Manager 搭配使用的更多过滤示例,请参阅 Cloud Key Management Service 文档中的对列表结果进行排序和过滤

  • PAGE_SIZE:每页返回的结果数。

  • LIMIT:要返回的结果数上限。

  • SORT_BY:以英文逗号分隔的 name 字段列表,系统将按照这些字段对返回的结果进行排序。

    默认的排序顺序是升序。为了按降序排列,请为所选字段添加波浪号 (~) 作为前缀。

  • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global

API

trustConfigs.list 方法发出 GET 请求:

GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

请替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • FILTER:用于将返回的结果限制为特定值的表达式。
  • PAGE_SIZE:每页返回的结果数。
  • SORT_BY:以英文逗号分隔的字段名称列表,按这些名称对返回的结果进行排序。

    默认的排序顺序是升序。如需按降序排列,请为所选字段添加波浪号 (~) 作为前缀。

  • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global

查看信任配置

如需完成此任务,您必须对目标 Google Cloud 项目拥有以下角色之一:

  • 证书管理器查看者 (roles/certificatemanager.viewer)
  • 证书管理器编辑器 (roles/certificatemanager.editor)
  • 证书管理器所有者 (roles/certificatemanager.owner)

如需了解详情,请参阅角色和权限

如需查看信任配置,请完成以下步骤。

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 点击信任配置标签页。该标签页会显示已配置的信任配置资源列表。

  3. 选择信任配置资源以查看其详细信息。

    信任配置详情页面会显示有关所选信任配置的详细信息。

gcloud

使用 gcloud certificate-manager trust-configs describe 命令:

gcloud certificate-manager trust-configs describe TRUST_CONFIG_ID \
    --location=LOCATION

请替换以下内容:

  • TRUST_CONFIG_ID:目标信任配置的 ID。
  • LOCATION:存储信任配置资源的区域。默认位置是 global

API

trustConfigs.get 方法发出 GET 请求:

GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID

请替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • TRUST_CONFIG_ID:目标信任配置的 ID。
  • LOCATION:位置属性指定存储信任配置资源的区域。默认位置为 global

删除信任配置

如需完成此任务,您必须拥有目标 Google Cloud 项目的 Certificate Manager Owner 角色 (roles/certificatemanager.owner)。

如需了解详情,请参阅角色和权限

如需删除信任配置,请完成以下步骤。

gcloud

使用 gcloud certificate-manager trust-configs delete 命令:

gcloud certificate-manager trust-configs delete TRUST_CONFIG_ID \
    --location=LOCATION

请替换以下内容:

  • TRUST_CONFIG_ID:目标信任配置的 ID。
  • LOCATION:存储信任配置资源的区域。默认位置为 global

API

trustConfigs.delete 方法发出 DELETE 请求:

DELETE /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID

请替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • LOCATION:存储信任配置资源的区域。默认位置是 global
  • TRUST_CONFIG_ID:目标信任配置的 ID。

后续步骤