Skip to main content

엔터프라이즈의 감사 로그 API 사용

REST API를 사용하여 프로그래밍 방식으로 엔터프라이즈 이벤트를 검색하는 방법을 알아봅니다.

누가 이 기능을 사용할 수 있나요?

Enterprise owners

Note

웹후크는 특정 사용 사례에 대한 감사 로그 또는 API 폴링의 좋은 대안이 될 수 있습니다. 웹후크는 리포지토리, 조직 또는 기업에 대해 특정 이벤트가 발생할 때 GitHub에서 서버에 알리는 방법입니다. 기업, 조직 또는 리포지토리에서 특정 이벤트가 발생할 때 이를 탐지하고 기록하려는 경우 API 또는 감사 로그 검색보다 웹후크가 더 효율적일 수 있습니다. "웹후크 설명서" 항목을 참조하세요.

감사 로그와 관련된 엔드포인트를 사용하여 규정 준수 및 보안 지적 재산을 유지 관리합니다. "엔터프라이즈 감사 로그에 대한 REST API 엔드포인트" 및 "조직에 대한 REST API 엔드포인트" 항목을 참조하세요.

감사 로그 엔드포인트를 통해 액세스할 수 있는 특정 이벤트에 대한 자세한 정보는 다음 문서를 참조하세요.

감사 로그 세부 정보

감사 로그에는 지난 180일 동안에 엔터프라이즈 지난 180일 이내. 감사 로그는 7일 동안 Git 이벤트를 유지합니다.

기본적으로 지난 3개월의 이벤트만 표시됩니다. 이전 이벤트를 보려면 created 매개 변수를 사용하여 날짜 범위를 지정해야 합니다. "검색 구문 이해" 항목을 참조하세요.

API 응답의 타임스탬프 및 날짜 필드는 UTC Epoch 밀리초 단위로 측정됩니다.

read:audit_log 범위를 사용하여 API를 통해 감사 로그에 액세스할 수 있습니다.

속도 제한

각 감사 로그 API 엔드포인트에는 지정된 사용자 및 IP 주소 조합에 대해 시간당 1,750개의 쿼리 트래픽률 제한이 있습니다. 트래픽률 제한을 방지하기 위해 감사 로그 API를 쿼리하는 통합은 시간당 최대 1,750개의 쿼리 빈도로 쿼리해야 합니다. 또한 통합에서 트래픽률 제한 오류(일반적으로 403 또는 429 응답)를 수신하는 경우 API에 대한 다른 요청을 하기 전에 기다려야 합니다. "REST API에 대한 트래픽률 제한" 및 "REST API 사용에 대한 모범 사례" 항목을 참조하세요.

예제 1: 페이지를 매긴 특정 날짜에 대한 엔터프라이즈의 모든 이벤트

커서 기반 페이지 매김을 사용할 수 있습니다. 페이지 매김에 대한 자세한 내용은 "REST API에서 페이지 매김 사용"을 참조하세요.

아래 쿼리는 avocado-corp 엔터프라이즈에서 2022년 1월 1일에 생성된 감사 로그 이벤트를 검색하고, 페이지 매김을 사용하여 페이지당 최대 100개의 항목이 있는 첫 번째 페이지를 반환합니다. 페이지 매김에 대한 자세한 내용은 “REST API에서 페이지 매김 사용”을(를) 참조하세요. --include 플래그를 사용하면 머리글이 응답과 함께 반환됩니다.

curl --include -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&per_page=100"

결과가 100개 이상인 경우 link 머리글에는 결과의 다음 페이지, 첫 페이지 및 이전 페이지를 가져오는 URL이 포함됩니다.

link: <https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42NjQzODMzNTk5MjdlKzEyfDloQzBxdURzaFdVbVlLWjkxRU9mNXc%3D&before=>; rel="next",
<https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=&before=>; rel="first",
<https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=&before=MS42Njc4NDA2MjM4MzNlKzEyfExqeG5sUElvNEZMbG1XZHA5akdKTVE%3D>; rel="prev"

해당 페이지 매김 링크를 다음 요청에 복사합니다. 예시:

curl -I -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42Njc4NDA2MjM5NDFlKzEyfHRYa3AwSkxUd2xyRjA5bWxfOS1RbFE%3D&before="

예제 2: 특정 날짜 및 행위자의 엔터프라이즈 끌어오기 요청에 대한 이벤트

+ 기호 또는 ASCII 문자 코드 %20으로 구성된 URL에서 구분하여 createdactor와 같은 여러 검색 구문을 지정할 수 있습니다.

아래 쿼리는 avocado-corp 엔터프라이즈에서 2022년 1월 1일 이후에 이벤트가 발생하고 octocat 사용자가 작업을 수행한 끌어오기 요청에 대한 감사 로그 이벤트를 검색합니다.

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"

예제 3: 엔터프라이즈에서 특정 날짜 및 행위자의 Git 활동에 대한 이벤트

URL에 include=git을 매개 변수로 추가하여 엔터프라이즈에서 복제, 페치 및 푸시와 같은 Git 이벤트를 검색할 수 있습니다. 또는 include=all을 사용하여 웹 이벤트 및 Git 이벤트를 모두 검색할 수 있습니다.

아래 쿼리는 avocado-corp 엔터프라이즈에서 2024년 1월 1일 이후에 이벤트가 발생하고 octocat 사용자가 작업을 수행한 Git 활동의 감사 로그 이벤트를 검색합니다.

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:>=2024-01-01+actor:octocat&include=git"