所有指標資料都必須在傳輸過程中加密,以確保安全。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-cert密鑰名稱。
放送指標
指標伺服器必須從啟用 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 自訂資源是否顯示憑證和憑證密鑰的 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