所有指标数据在传输过程中都必须加密,以确保安全性。Google Distributed Cloud (GDC) 气隙设备的监控组件通过双向传输层安全协议 (mTLS) 提供传输中加密和身份验证。mTLS 方法会验证网络连接中双方的身份,确认它们拥有自己所声称的身份。
本页面介绍了如何为指标服务器设置 mTLS。
准备工作
如需获得管理MonitoringTarget自定义资源所需的权限,请让组织 IAM 管理员或项目 IAM 管理员向您授予关联的MonitoringTarget角色之一。
根据您需要的访问权限级别,您可以在组织或项目中获得此资源的创建者、编辑者或查看者角色。如需了解详情,请参阅准备 IAM 权限。
获得必要的权限后,请在启用指标加密之前完成以下步骤:
- 部署指标服务器。
- 从工作负载中收集指标。
- 确保您的 - MonitoringTarget自定义资源显示- Ready状态,如以下示例所示:- apiVersion: monitoring.gdc.goog/v1 kind: MonitoringTarget [...] status: conditions: - lastTransitionTime: "2023-10-27T15:27:51Z" message: "" observedGeneration: 1 reason: Ready status: True type: Ready
- 查询和查看信息中心内的指标,以确认指标服务器正在发送预期的数据。 
装载证书
工作负载需要使用在您为 MonitoringTarget 自定义资源启用 mTLS 时自动生成的证书。使用以下模板为此证书添加卷和卷装载:
apiVersion: apps/v1
kind: Deployment # or StatefulSet
metadata:
  name: "SERVICE_NAME"
spec:
  template:
    spec:
      containers:
        - name: "CONTAINER_NAME"
          volumeMounts:
          - mountPath: "/etc/ssl/MONITORING_TARGET_NAME-cert"
            name: "MONITORING_TARGET_NAME-cert"
            readOnly: true
      volumes:
      - name: "MONITORING_TARGET_NAME-cert"
        secret:
          secretName: "MONITORING_TARGET_NAME-cert"
  [...]
替换以下内容:
- SERVICE_NAME:- Deployment或- StatefulSet对象的名称。
- CONTAINER_NAME:您要向其中添加卷装载的容器的名称。
- MONITORING_TARGET_NAME:您的- MonitoringTarget自定义资源的名称。密钥名称基于此名称。例如,- my-mon-target资源会创建- my-mon-target-certSecret 名称。
提供指标
您的指标服务器必须通过启用 mTLS 的 HTTP 服务器提供指标。在以下两种情况下,您可能需要加密指标:
- 对于您自己的应用:修改源代码以支持 mTLS,并使用 mTLS 证书配置指标服务器。
- 对于您不拥有的应用:请参阅应用文档,以启用 HTTPS 指标端点。应用必要的配置,例如配置命令行实参或部署 config文件。
启用 mTLS 指标收集
将以下标签添加到 MonitoringTarget 自定义资源的 metadata 部分,以启用加密指标的收集:
monitoring.gdc.goog/enable-mtls: "true"
自定义资源必须如下例所示:
  apiVersion: monitoring.gdc.goog/v1
  kind: MonitoringTarget
  metadata:
    namespace: my-project-namespace
    name: "SERVICE_NAME"
    labels:
      monitoring.gdc.goog/enable-mtls: "true" # Enable mTLS metrics collection
  spec:
    [...]
如需验证您是否已启用 mTLS 身份验证,请检查您的 MonitoringTarget 自定义资源是否显示证书和证书 Secret 的状态为 Ready,如以下示例所示:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
[...]
status:
  conditions:
  - lastTransitionTime: "2023-11-09T11:15:10Z"
    message: "admin,user-vm-1,user-vm-2,org-1-system"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: Ready
  - lastTransitionTime: "2023-11-09T11:14:43Z"
    message: "Certificate is ready"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: CertificateReady
  - lastTransitionTime: "2023-11-09T11:15:10Z"
    message: "Successfully created secret"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: CertificateSecretReady