セキュリティを確保するため、すべての指標データは転送中に暗号化する必要があります。Google Distributed Cloud(GDC)エアギャップのモニタリング コンポーネントは、相互 Transport Layer Security(mTLS)による転送中の暗号化と認証を提供します。mTLS 方式では、ネットワーク接続の両端の身元を確認し、それぞれの身元が正しいことを確認します。
このページでは、指標サーバーに mTLS を設定する方法について説明します。
始める前に
MonitoringTarget カスタム リソースを管理するには、必要な権限が必要です。
IAM 組織ロールをリクエストする
組織の IAM 管理者に連絡して、次のロールをリクエストしてください。
- MonitoringTarget PA Creator (
monitoringtarget-pa-creator):MonitoringTargetカスタム リソースを作成します。 - MonitoringTarget PA Editor (
monitoringtarget-pa-editor):MonitoringTargetカスタム リソースを編集または変更します。 - MonitoringTarget PA Viewer (
monitoringtarget-pa-viewer):MonitoringTargetカスタム リソースを表示します。
IAM プロジェクト ロールをリクエストする
プロジェクトの IAM 管理者に連絡して、次のロールをリクエストしてください。
- MonitoringTarget Editor (
monitoringtarget-editor): プロジェクト名前空間のMonitoringTargetカスタム リソースを編集または変更します。 - MonitoringTarget Viewer (
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カスタム リソースの名前。Secret 名はこの名前がベースになります。たとえば、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