감사 이벤트 개발 가이드라인
GitLab에서 감사 이벤트가 동작하는 방식과 새로운 감사 이벤트를 계측하는 방법을 설명합니다.
이 가이드는 감사 이벤트가 동작하는 방식과 새로운 감사 이벤트를 계측하는 방법에 대한 개요를 제공합니다. 감사 이벤트란 무엇인가요? # 감사 이벤트는 GitLab owner와 관리자가 애플리케이션 전반에서 수행된 중요한 작업 기록을 확인하기 위한 도구입니다. 감사 이벤트가 되어서는 안 되는 것은 무엇인가요? # 어떤 이벤트든 감사 이벤트를 트리거할 수 있지만, 모든 이벤트가 감사 이벤트가 되어야 하는 것은 아닙니다. 일반적으로 감사 이벤트로 적합하지 않은 이벤트는 다음과 같습니다: 특정 사용자에게 귀속될 수 없는 이벤트. 관리자 또는 owner 페르소나에게 특별히 관심 대상이 아닌 이벤트. 제품 기능 도입에 대한 추적 정보인 이벤트. 방향 페이지의 지금 계획되지 않은 사항 에 대한 논의에서 다루어지는 이벤트. 질문이 있으시면 @gitlab-org/software-supply-chain-security/compliance 에 연락하여 감사 이벤트 또는 다른 접근 방식이 이벤트에 가장 적합한지 확인하세요. 감사 이벤트 스키마 # 감사 이벤트를 계측하려면 다음 속성들을 제공해야 합니다: 속성 타입 필수 여부 설명 name String false 감사할 작업 이름. 이벤트 유형을 나타냄. 오류 추적에 사용됨 author User true 변경을 작성한 사용자. 내부 사용자일 수 있음. 예를 들어, 휴면 프로젝트 삭제 감사 이벤트는 GitLab-Admin-Bot이 작성함 scope User, Project, Group, or Instance true 감사 이벤트가 속하는 범위 target Object true 감사 대상 객체 message String true 작업을 설명하는 메시지 (번역되지 않음) created_at DateTime false 작업이 발생한 시간. 기본값은 DateTime.current 새로운 감사 이벤트 계측 방법 # 새 감사 이벤트를 위한 YAML 타입 정의 를 생성합니다. Gitlab::Audit::Auditor.audit 을 호출하고 액션 블록을 전달합니다. 다음과 같은 감사 이벤트 계측 방법은 더 이상 사용되지 않습니다: ee/lib/ee/audit/ 에 새 클래스를 만들고 AuditEventService 를 확장하기 성공적인 작업 후 AuditEventService 호출하기 Gitlab::Audit::Auditor 서비스를 사용하면 두 가지 방법으로 감사 이벤트를 계측할 수 있습니다: 여러 이벤트를 위한 블록 사용. 단일 이벤트를 위한 표준 메서드 호출 사용. 블록을 사용하여 여러 이벤트 기록하기 # 이 방법은 이벤트가 호출 스택 깊은 곳에서 발생할 때 사용할 수 있습니다. 예를 들어, 사용자가 머지 리퀘스트 승인 규칙을 업데이트할 때 여러 감사 이벤트를 기록할 수 있습니다. 이 사용자 흐름의 일부로, 승인자와 승인 그룹 모두에 대한 변경 사항을 감사하고 싶습니다. 시작 서비스(예: MergeRequestRuleUpdateService )에서 execute 호출을 다음과 같이 감쌀 수 있습니다: # in the in