InfoGrab Docs

감사 이벤트 스키마 및 예시

요약

감사 이벤트는 응답 본문에 예측 가능한 스키마를 가집니다. 스트리밍 감사 이벤트는 인증된 사용자가 프로젝트의 원격 Git 리포지터리를 푸시, 풀 또는 clone할 때 전송될 수 있습니다: 로그인하지 않은 사용자에 대해서는 감사 이벤트가 캡처되지 않습니다.

감사 이벤트 스키마#

히스토리
  • 감사 이벤트 스트리밍 스키마에 대한 문서가 GitLab 15.3에서 도입됨.

감사 이벤트는 응답 본문에 예측 가능한 스키마를 가집니다.

필드 설명 참고사항 스트리밍 전용 필드
author_id 이벤트를 트리거한 사용자의 사용자 ID
author_name 이벤트를 트리거한 작성자의 사람이 읽을 수 있는 이름 작성자가 더 이상 존재하지 않을 때 유용함
created_at 이벤트가 트리거된 타임스탬프
details 추가 메타데이터를 포함하는 JSON 객체 정해진 스키마가 없지만 종종 이벤트에 대한 추가 정보를 포함
entity_id 감사 이벤트 엔티티의 ID
entity_path 감사 가능한 이벤트의 영향을 받는 엔티티의 전체 경로
entity_type 엔티티 유형의 문자열 표현 허용되는 값에는 User, Group, Key가 포함됩니다. 이 목록은 완전하지 않습니다
event_type 감사 이벤트 유형의 문자열 표현
id 감사 이벤트의 고유 식별자 필요한 경우 중복 제거에 사용할 수 있습니다
ip_address 이벤트를 트리거하는 데 사용된 호스트의 IP 주소
target_details 대상에 대한 추가 세부 정보
target_id 감사 이벤트 대상의 ID
target_type 대상 유형의 문자열 표현

감사 이벤트 JSON 스키마#

{
  "properties": {
    "id": {
      "type": "string"
    },
    "author_id": {
      "type": "integer"
    },
    "author_name": {
      "type": "string"
    },
    "details": {},
    "ip_address": {
      "type": "string"
    },
    "entity_id": {
      "type": "integer"
    },
    "entity_path": {
      "type": "string"
    },
    "entity_type": {
      "type": "string"
    },
    "event_type": {
      "type": "string"
    },
    "target_id": {
      "type": "integer"
    },
    "target_type": {
      "type": "string"
    },
    "target_details": {
      "type": "string"
    },
  },
  "type": "object"
}

헤더#

히스토리
  • X-Gitlab-Audit-Event-Type이 GitLab 15.0에서 도입됨.

헤더 형식은 다음과 같습니다:

POST /logs HTTP/1.1
Host: 
Content-Type: application/x-www-form-urlencoded
X-Gitlab-Event-Streaming-Token: 
X-Gitlab-Audit-Event-Type: repository_git_operation

예시: Git 작업의 감사 이벤트 스트리밍#

스트리밍 감사 이벤트는 인증된 사용자가 프로젝트의 원격 Git 리포지터리를 푸시, 풀 또는 clone할 때 전송될 수 있습니다:

  • SSH 사용.
  • HTTP 또는 HTTPS 사용.
  • GitLab UI에서 Download ([download]) 사용.

로그인하지 않은 사용자에 대해서는 감사 이벤트가 캡처되지 않습니다. 예를 들어, 공개 프로젝트를 다운로드할 때입니다.

예시: 배포 키를 사용한 SSH over Git 이벤트의 감사 이벤트 페이로드#

Fetch:

{
  "id": "1",
  "author_id": -3,
  "entity_id": 29,
  "entity_type": "Project",
  "details": {
    "author_name": "deploy-key-name",
    "author_class": "DeployKey",
    "target_id": 29,
    "target_type": "Project",
    "target_details": "example-project",
    "custom_message": {
      "protocol": "ssh",
      "action": "git-upload-pack",
      "written_bytes": 1048576,
      "received_bytes": 2048
    },
    "ip_address": "127.0.0.1",
    "entity_path": "example-group/example-project"
  },
  "ip_address": "127.0.0.1",
  "author_name": "deploy-key-name",
  "entity_path": "example-group/example-project",
  "target_details": "example-project",
  "created_at": "2022-07-26T05:43:53.662Z",
  "target_type": "Project",
  "target_id": 29,
  "event_type": "repository_git_operation"
}

custom_message 객체에는 Git 작업의 데이터 전송 크기 필드가 포함됩니다:

  • written_bytes: Git 작업 중 클라이언트로 전송된 바이트 수(예: 클론, fetch, 풀 작업 시).

  • received_bytes: Git 작업 중 클라이언트로부터 수신된 바이트 수(예: 푸시 작업 시).

이러한 필드는 데이터가 전송되지 않은 경우(예: 데이터 교환 전에 요청이 실패하는 경우)에는 생략됩니다.

감사 이벤트 스키마 및 예시

원문 보기
요약

감사 이벤트는 응답 본문에 예측 가능한 스키마를 가집니다. 스트리밍 감사 이벤트는 인증된 사용자가 프로젝트의 원격 Git 리포지터리를 푸시, 풀 또는 clone할 때 전송될 수 있습니다: 로그인하지 않은 사용자에 대해서는 감사 이벤트가 캡처되지 않습니다.

감사 이벤트 스키마#

히스토리
  • 감사 이벤트 스트리밍 스키마에 대한 문서가 GitLab 15.3에서 도입됨.

감사 이벤트는 응답 본문에 예측 가능한 스키마를 가집니다.

필드 설명 참고사항 스트리밍 전용 필드
author_id 이벤트를 트리거한 사용자의 사용자 ID
author_name 이벤트를 트리거한 작성자의 사람이 읽을 수 있는 이름 작성자가 더 이상 존재하지 않을 때 유용함
created_at 이벤트가 트리거된 타임스탬프
details 추가 메타데이터를 포함하는 JSON 객체 정해진 스키마가 없지만 종종 이벤트에 대한 추가 정보를 포함
entity_id 감사 이벤트 엔티티의 ID
entity_path 감사 가능한 이벤트의 영향을 받는 엔티티의 전체 경로
entity_type 엔티티 유형의 문자열 표현 허용되는 값에는 User, Group, Key가 포함됩니다. 이 목록은 완전하지 않습니다
event_type 감사 이벤트 유형의 문자열 표현
id 감사 이벤트의 고유 식별자 필요한 경우 중복 제거에 사용할 수 있습니다
ip_address 이벤트를 트리거하는 데 사용된 호스트의 IP 주소
target_details 대상에 대한 추가 세부 정보
target_id 감사 이벤트 대상의 ID
target_type 대상 유형의 문자열 표현

감사 이벤트 JSON 스키마#

{
  "properties": {
    "id": {
      "type": "string"
    },
    "author_id": {
      "type": "integer"
    },
    "author_name": {
      "type": "string"
    },
    "details": {},
    "ip_address": {
      "type": "string"
    },
    "entity_id": {
      "type": "integer"
    },
    "entity_path": {
      "type": "string"
    },
    "entity_type": {
      "type": "string"
    },
    "event_type": {
      "type": "string"
    },
    "target_id": {
      "type": "integer"
    },
    "target_type": {
      "type": "string"
    },
    "target_details": {
      "type": "string"
    },
  },
  "type": "object"
}

헤더#

히스토리
  • X-Gitlab-Audit-Event-Type이 GitLab 15.0에서 도입됨.

헤더 형식은 다음과 같습니다:

POST /logs HTTP/1.1
Host: 
Content-Type: application/x-www-form-urlencoded
X-Gitlab-Event-Streaming-Token: 
X-Gitlab-Audit-Event-Type: repository_git_operation

예시: Git 작업의 감사 이벤트 스트리밍#

스트리밍 감사 이벤트는 인증된 사용자가 프로젝트의 원격 Git 리포지터리를 푸시, 풀 또는 clone할 때 전송될 수 있습니다:

  • SSH 사용.
  • HTTP 또는 HTTPS 사용.
  • GitLab UI에서 Download ([download]) 사용.

로그인하지 않은 사용자에 대해서는 감사 이벤트가 캡처되지 않습니다. 예를 들어, 공개 프로젝트를 다운로드할 때입니다.

예시: 배포 키를 사용한 SSH over Git 이벤트의 감사 이벤트 페이로드#

Fetch:

{
  "id": "1",
  "author_id": -3,
  "entity_id": 29,
  "entity_type": "Project",
  "details": {
    "author_name": "deploy-key-name",
    "author_class": "DeployKey",
    "target_id": 29,
    "target_type": "Project",
    "target_details": "example-project",
    "custom_message": {
      "protocol": "ssh",
      "action": "git-upload-pack",
      "written_bytes": 1048576,
      "received_bytes": 2048
    },
    "ip_address": "127.0.0.1",
    "entity_path": "example-group/example-project"
  },
  "ip_address": "127.0.0.1",
  "author_name": "deploy-key-name",
  "entity_path": "example-group/example-project",
  "target_details": "example-project",
  "created_at": "2022-07-26T05:43:53.662Z",
  "target_type": "Project",
  "target_id": 29,
  "event_type": "repository_git_operation"
}

custom_message 객체에는 Git 작업의 데이터 전송 크기 필드가 포함됩니다:

  • written_bytes: Git 작업 중 클라이언트로 전송된 바이트 수(예: 클론, fetch, 풀 작업 시).

  • received_bytes: Git 작업 중 클라이언트로부터 수신된 바이트 수(예: 푸시 작업 시).

이러한 필드는 데이터가 전송되지 않은 경우(예: 데이터 교환 전에 요청이 실패하는 경우)에는 생략됩니다.