보안을 위해 모든 측정항목 데이터는 전송 중에 암호화해야 합니다. 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