所有指標資料在傳輸過程中都必須加密,以確保安全。Google Distributed Cloud (GDC) 實體隔離方案的監控元件,會透過相互傳輸層安全標準 (mTLS) 提供傳輸中加密和驗證功能。mTLS 方法會驗證網路連線中雙方的身分,確認他們的身分與聲稱相符。
本頁面說明如何為指標伺服器設定 mTLS。
事前準備
如要管理 MonitoringTarget 自訂資源,您必須具備必要權限。
要求 IAM 組織角色
請與 IAM 機構組織管理員聯絡,要求下列角色:
- MonitoringTarget PA 建立者 (
monitoringtarget-pa-creator):建立MonitoringTarget自訂資源。 - MonitoringTarget PA 編輯者 (
monitoringtarget-pa-editor):編輯或修改MonitoringTarget自訂資源。 - MonitoringTarget PA 檢視者 (
monitoringtarget-pa-viewer):查看MonitoringTarget自訂資源。
要求 IAM 專案角色
請與 IAM 專案管理員聯絡,要求下列角色:
- MonitoringTarget 編輯者 (
monitoringtarget-editor):編輯或修改專案命名空間中的MonitoringTarget自訂資源。 - MonitoringTarget 檢視者 (
monitoringtarget-viewer):查看專案命名空間中的MonitoringTarget自訂資源。
取得必要權限後,請先完成下列步驟,再啟用指標加密功能:
- 部署指標伺服器。
- 收集工作負載的指標。
確認
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