상세 로깅

이 페이지에는 Google Cloud Armor 보안 정책에 사용할 수 있는 선택적인 기능인 상세 로깅을 구성하는 방법에 대한 정보가 포함되어 있습니다.

로그에 기록되는 세부정보의 수준을 조정할 수 있습니다. 처음 정책을 만들거나, 정책을 변경하거나, 정책 문제를 해결할 때만 상세 로깅을 사용 설정하는 것이 좋습니다. 상세 로깅을 사용 설정하면 미리보기 모드의 규칙과 표준 작업 중의 활성(미리보기되지 않음) 규칙에 적용됩니다.

사전 구성된 WAF 규칙이 특정 요청에 의해 트리거된 이유를 알 수 없는 예시를 가정해 보겠습니다. Google Cloud Armor의 기본 이벤트 로그에는 트리거된 규칙과 하위 서명이 포함됩니다. 그러나 문제 해결, 규칙 유효성 검사 또는 규칙 조정을 목적으로 규칙을 트리거한 수신 요청의 세부정보를 식별해야 할 수 있습니다. 이는 예시이므로 상세 로깅을 사용 설정하는 것이 좋습니다.

gcloud CLI의 --log-level 플래그를 사용하여 각 보안 정책에 더 자세한 로깅을 사용 설정하도록 Google Cloud Armor 로깅 수준을 구성할 수 있습니다.

기본적으로 이 옵션은 사용 중지되어 있습니다. 이 플래그의 문법은 다음과 같습니다.

--log-level=[NORMAL | VERBOSE]

gcloud compute security-policies update 명령어를 사용해야만 플래그를 사용할 수 있습니다. 파일에 보안 정책을 만들고 해당 파일을 가져오지 않는 한 이 옵션으로 새 보안 정책을 만들 수 없습니다. 자세한 내용은 보안 정책 가져오기를 참조하세요.

예를 들면 다음과 같습니다.

  gcloud compute security-policies update ca-policy-1 \
      --log-level=VERBOSE
  

처음 정책을 만들거나, 정책을 변경하거나, 정책 문제를 해결할 때 상세 로깅을 사용 설정하는 것이 좋습니다.

상세 로깅이 사용 설정된 경우 로깅되는 값

상세 로깅이 사용 설정되면 추가 정보가 Cloud Logging으로 전송되는 부하 분산 요청 로그에 로깅됩니다. 상세 로깅이 사용 설정되면 다음 추가 필드가 요청 로그에 표시됩니다.

  • matchedFieldType(문자열): 일치를 유발하는 필드 유형입니다.

    • ARG_NAMES
    • ARG_VALUES
    • BODY

      • BODY 필드가 로그에 있으면 전체 게시물 본문이 규칙과 일치한다는 의미입니다.
    • COOKIE_VALUES

    • COOKIE_NAMES

    • FILENAME

    • HEADER_VALUES

    • RAW_URI

    • REFERER

    • REQUEST_LINE

    • URI

    • USER_AGENT

    • HEADER_NAMES

    • ARGS_GET

    • X_FILENAME

    • ARG_NAME_COUNT

    • TRANSFER_ENCODING

    • REQUEST_METHOD

  • matchedFieldName(문자열): 이 값이 키-값 쌍의 값 부분과 일치하면 키 값이 이 필드에 저장됩니다. 그렇지 않으면 비어 있습니다.

  • matchedFieldValue(문자열): 일치를 유발하는 필드 부분에 대한 최대 16바이트 프리픽스입니다.

  • matchedFieldLength(정수): 필드의 총 길이입니다.

  • matchedOffset(정수): 일치를 유발하는 필드 내의 시작 오프셋입니다.

  • matchedLength(정수): 일치하는 길이입니다.

예를 들어 SQL 삽입 WAF 규칙이 사용 설정된 프로젝트에 이 요청을 전송할 수 있습니다.

curl http://IP_ADDR/?sql_table=abc%20pg_catalog%20xyz

로그 탐색기의 항목은 다음과 같습니다.

enforcedSecurityPolicy: {
 name: "user-staging-sec-policy"
 priority: 100
 configuredAction: "DENY"
 outcome: "DENY
 preconfiguredExprIds: [
   0: "owasp-crs-v030001-id942140-sqli"
  ]
matchedFieldType: "ARG_VALUES"
matchedFieldName: "sql_table"
matchedFieldValue: "pg_catalog"
matchedFieldLength: 18
matchedOffset: 4
matchedLength: 10
}

상세 로깅이 사용 설정된 경우 개인 정보 보호 유지

상세 로깅을 사용하면 Google Cloud Armor는 사전 구성된 특정 WAF 규칙을 트리거한 수신 요청의 요소 스니펫을 로깅합니다. 이러한 스니펫에는 요청 헤더, 요청 파라미터 또는 POST 본문의 요소가 포함될 수 있습니다. 요청 헤더 또는 본문에 있는 내용과 WAF 규칙을 트리거하는 항목에 따라 수신 요청의 민감한 정보(IP 주소 또는 기타 민감한 정보)가 스니펫에 포함될 수 있습니다.

상세 로깅을 사용 설정하면 Logging의 로그에 잠재적으로 민감한 정보가 누적될 위험이 있습니다. 규칙 생성 및 검증 중에 또는 문제 해결을 위해서만 상세 로깅을 사용 설정하는 것이 좋습니다. 일반 작업 중에는 상세 로깅을 사용 중지된 상태로 두는 것이 좋습니다.

다음 단계