이 가이드에서는 검사 기반 플랫폼 정책을 사용한 지속적 검증(CV)으로 생성된 Cloud Logging 항목을 보는 방법을 보여줍니다. 대신 기존 지속적 검증(지원 중단됨) 항목을 보려면 기존 CV 로그 보기를 참조하세요.
CV는 podEvent
항목에 검사 관련 문제를 로깅합니다.
CV는 configErrorEvent
항목에 구성 관련 문제를 로깅합니다(예: 플랫폼 정책 또는 IAM 역할이 잘못 구성된 경우).
CV 항목의 로그 보기
Cloud Logging 항목을 검색하여 CV 구성 오류와 CV 플랫폼 정책 검증 위반을 찾을 수 있습니다.
CV는 24시간 내에 오류와 위반 사항을 Cloud Logging에 로깅합니다. 일반적으로 몇 시간 내에 항목이 표시됩니다.
CV 구성 오류 로그 보기
CV 구성 오류 로그를 보려면 다음 명령어를 실행합니다.
gcloud logging read \
--order="desc" \
--freshness=7d \
--project=CLUSTER_PROJECT_ID \
'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation" "configErrorEvent"'
다음 출력은 CV 플랫폼 정책을 찾을 수 없는 구성 오류를 보여줍니다.
{
"insertId": "141d4f10-72ea-4a43-b3ec-a03da623de42",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
"configErrorEvent": {
"description": "Cannot monitor cluster 'us-central1-c.my-cluster': Resource projects/123456789/platforms/gke/policies/my-policy does not exist."
}
},
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "my-cluster",
"location": "us-central1-c",
"project_id": "my-project"
}
},
"timestamp": "2024-05-28T15:31:03.999566Z",
"severity": "WARNING",
"logName": "projects/my-project/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2024-05-28T16:30:56.304108670Z"
}
CV 플랫폼 정책 검증 위반 보기
사용 설정한 플랫폼 정책을 위반하는 이미지가 없으면 로그에 항목이 표시되지 않습니다.
지난 7일 동안의 CV 로그 항목을 보려면 다음 명령어를 실행합니다.
gcloud logging read \
--order="desc" \
--freshness=7d \
--project=CLUSTER_PROJECT_ID \
'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation" "policyName"'
CLUSTER_PROJECT_ID
를 클러스터 프로젝트 ID로 바꿉니다.
검사 유형
CV가 검사 위반 정보를 checkResults
에 로깅합니다. 항목에서 checkType
값은 검사를 나타냅니다. 각 검사의 값은 다음과 같습니다.
ImageFreshnessCheck
SigstoreSignatureCheck
SimpleSigningAttestationCheck
SlsaCheck
TrustedDirectoryCheck
VulnerabilityCheck
예시 로그
다음 예시 CV 로깅 항목은 신뢰할 수 있는 디렉터리 검사를 위반하는 미준수 이미지를 기술합니다.
{
"insertId": "637c2de7-0000-2b64-b671-24058876bb74",
"jsonPayload": {
"podEvent": {
"endTime": "2022-11-22T01:14:30.430151Z",
"policyName": "projects/123456789/platforms/gke/policies/my-policy",
"images": [
{
"result": "DENY",
"checkResults": [
{
"explanation": "TrustedDirectoryCheck at index 0 with display name \"My trusted directory check\" has verdict NOT_CONFORMANT. Image is not in a trusted directory",
"checkSetName": "My check set",
"checkSetIndex": "0",
"checkName": "My trusted directory check",
"verdict": "NON_CONFORMANT",
"checkType": "TrustedDirectoryCheck",
"checkIndex": "0"
}
],
"image": "gcr.io/my-project/hello-app:latest"
}
],
"verdict": "VIOLATES_POLICY",
"podNamespace": "default",
"deployTime": "2022-11-22T01:06:53Z",
"pod": "hello-app"
},
"@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent"
},
"resource": {
"type": "k8s_cluster",
"labels": {
"project_id": "my-project",
"location": "us-central1-a",
"cluster_name": "my-test-cluster"
}
},
"timestamp": "2022-11-22T01:44:28.729881832Z",
"severity": "WARNING",
"logName": "projects/my-project/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2022-11-22T03:35:47.171905337Z"
}