인스턴스를 위한 감사 이벤트 스트리밍
Offering: GitLab Self-Managed, GitLab Dedicated
인스턴스용 감사 이벤트 스트리밍을 통해 관리자는 다음을 수행할 수 있습니다: 각 스트리밍 대상에는 스트리밍된 각 이벤트와 함께 포함되는 최대 20개의 사용자 정의 HTTP 헤더가 있을 수 있습니다. GitLab은 동일한 대상으로 단일 이벤트를 두 번 이상 스트리밍할 수 있습니다.
히스토리
- GitLab 16.1에서
ff_external_audit_events라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 16.2에서 기능 플래그
ff_external_audit_events기본 활성화됨. - GitLab 16.4에서 인스턴스 스트리밍 대상이 일반적으로 사용 가능하게 됨. 기능 플래그
ff_external_audit_events제거됨. - GitLab 15.2에서 사용자 정의 HTTP 헤더 UI가
custom_headers_streaming_audit_events_ui라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 15.3에서 사용자 정의 HTTP 헤더 UI가 일반적으로 사용 가능하게 됨. 기능 플래그
custom_headers_streaming_audit_events_ui제거됨. - GitLab 15.3에서 사용자 경험이 개선됨.
- GitLab 16.3에서 HTTP 대상 이름 필드가 추가됨.
- GitLab 16.5에서 활성 체크박스 기능이 추가됨.
인스턴스용 감사 이벤트 스트리밍을 통해 관리자는 다음을 수행할 수 있습니다:
- 해당 인스턴스에 대한 모든 감사 이벤트를 구조화된 JSON으로 수신하기 위해 전체 인스턴스의 스트리밍 대상을 설정합니다.
- 타사 시스템에서 감사 로그를 관리합니다. 구조화된 JSON 데이터를 수신할 수 있는 모든 서비스를 스트리밍 대상으로 사용할 수 있습니다.
각 스트리밍 대상에는 스트리밍된 각 이벤트와 함께 포함되는 최대 20개의 사용자 정의 HTTP 헤더가 있을 수 있습니다.
GitLab은 동일한 대상으로 단일 이벤트를 두 번 이상 스트리밍할 수 있습니다. 수신 데이터를 중복 제거하려면 페이로드의 id 키를 사용하세요.
감사 이벤트는 HTTP에서 지원하는 POST 요청 방법 프로토콜을 사용하여 전송됩니다.
스트리밍 대상은 민감한 정보를 포함할 수 있는 모든 감사 이벤트 데이터를 수신합니다. 스트리밍 대상을 신뢰할 수 있는지 확인하세요.
전체 인스턴스의 스트리밍 대상을 관리합니다.
HTTP 대상#
사전 요구사항:
- 보안 강화를 위해 대상 URL에 SSL 인증서를 사용해야 합니다.
전체 인스턴스의 HTTP 스트리밍 대상을 관리합니다.
새 HTTP 대상 추가#
인스턴스에 새 HTTP 스트리밍 대상을 추가합니다.
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대상을 추가하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트리밍 대상 추가를 선택하고 HTTP 엔드포인트를 선택하여 대상 추가 섹션을 표시합니다.
- 이름 및 대상 URL 필드에 대상 이름과 URL을 추가합니다.
- 선택사항. 사용자 정의 HTTP 헤더를 추가하려면 헤더 추가를 선택하여 새 이름 및 값 쌍을 만들고 값을 입력합니다. 필요한 이름 및 값 쌍 수만큼 이 단계를 반복합니다. 스트리밍 대상당 최대 20개의 헤더를 추가할 수 있습니다.
- 헤더를 활성화하려면 활성 체크박스를 선택합니다. 감사 이벤트와 함께 헤더가 전송됩니다.
- 헤더 추가를 선택하여 새 이름 및 값 쌍을 만듭니다. 필요한 이름 및 값 쌍 수만큼 이 단계를 반복합니다. 스트리밍 대상당 최대 20개의 헤더를 추가할 수 있습니다.
- 모든 헤더를 입력한 후 추가를 선택하여 새 스트리밍 대상을 추가합니다.
HTTP 대상 업데이트#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스 스트리밍 대상의 이름을 업데이트하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 이름 필드에 업데이트할 대상 이름을 추가합니다.
- 저장을 선택하여 스트리밍 대상을 업데이트합니다.
인스턴스 스트리밍 대상의 사용자 정의 HTTP 헤더를 업데이트하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 사용자 정의 HTTP 헤더 표를 찾습니다.
- 업데이트하려는 헤더를 찾습니다.
- 헤더를 활성화하려면 활성 체크박스를 선택합니다. 감사 이벤트와 함께 헤더가 전송됩니다.
- 헤더 추가를 선택하여 새 이름 및 값 쌍을 만듭니다. 필요한 이름 및 값 쌍 수만큼 입력합니다. 스트리밍 대상당 최대 20개의 헤더를 추가할 수 있습니다.
- 저장을 선택하여 스트리밍 대상을 업데이트합니다.
이벤트 진위성 확인#
히스토리
- GitLab 16.1에서
ff_external_audit_events라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 16.2에서 기능 플래그
ff_external_audit_events기본 활성화됨. - GitLab 16.4에서 인스턴스 스트리밍 대상이 일반적으로 사용 가능하게 됨. 기능 플래그
ff_external_audit_events제거됨.
각 스트리밍 대상에는 이벤트의 진위성을 확인하는 데 사용할 수 있는 고유한 확인 토큰(verificationToken)이 있습니다. 이 토큰은 Owner가 지정하거나 이벤트 대상이 생성될 때 자동으로 생성되며 변경할 수 없습니다.
스트리밍된 각 이벤트에는 스트리밍 대상을 나열할 때 대상의 값에 대해 확인할 수 있는 X-Gitlab-Event-Streaming-Token HTTP 헤더에 확인 토큰이 포함됩니다.
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대상을 나열하고 확인 토큰을 보려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 각 항목 오른쪽에 있는 확인 토큰을 확인합니다.
이벤트 필터 업데이트#
히스토리
- GitLab 16.3에서 감사 이벤트 유형의 정의된 목록으로 UI에서 이벤트 유형 필터링이 도입됨.
이 기능이 활성화되면 사용자가 대상별로 스트리밍된 감사 이벤트를 필터링할 수 있습니다. 필터 없이 기능이 활성화된 경우 대상은 모든 감사 이벤트를 수신합니다.
이벤트 유형 필터가 설정된 스트리밍 대상에는 필터링됨 ([filter]) 레이블이 있습니다.
스트리밍 대상의 이벤트 필터를 업데이트하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 감사 이벤트 유형으로 필터링 드롭다운 목록을 찾습니다.
- 드롭다운 목록을 선택하고 필요한 이벤트 유형을 선택하거나 선택 해제합니다.
- 저장을 선택하여 이벤트 필터를 업데이트합니다.
기본 콘텐츠 유형 헤더 재정의#
기본적으로 스트리밍 대상은 application/x-www-form-urlencoded의 content-type 헤더를 사용합니다. 그러나 content-type 헤더를 다른 값으로 설정하고 싶을 수 있습니다. 예를 들어 application/json.
인스턴스 스트리밍 대상의 content-type 헤더 기본값을 재정의하려면 다음 중 하나를 사용합니다:
Google Cloud Logging 대상#
히스토리
- GitLab 16.5에서 도입됨.
전체 인스턴스의 Google Cloud Logging 대상을 관리합니다.
사전 요구사항#
Google Cloud Logging 스트리밍 감사 이벤트를 설정하기 전에 다음을 수행해야 합니다:
- Google Cloud 프로젝트에서 Cloud Logging API를 활성화합니다.
- 적절한 자격 증명과 권한을 가진 Google Cloud 서비스 계정을 만듭니다. 이 계정은 감사 로그 스트리밍 인증을 구성하는 데 사용됩니다. 자세한 내용은 Google Cloud 문서에서 서비스 계정 생성 및 관리를 참조하세요.
- Google Cloud에서 로깅을 활성화하려면 서비스 계정에 로그 작성자 역할을 활성화합니다. 자세한 내용은 IAM을 사용한 액세스 제어를 참조하세요.
- 서비스 계정의 JSON 키를 만듭니다. 자세한 내용은 서비스 계정 키 만들기를 참조하세요.
새 Google Cloud Logging 대상 추가#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 Google Cloud Logging 스트리밍 대상을 추가하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트리밍 대상 추가를 선택하고 Google Cloud Logging을 선택하여 대상 추가 섹션을 표시합니다.
- 새 대상의 이름으로 사용할 임의 문자열을 입력합니다.
- 이전에 생성한 Google Cloud 서비스 계정 키에서 Google 프로젝트 ID와 Google 클라이언트 이메일을 입력합니다.
- 이전에 생성한 Google Cloud 서비스 계정 키에서 Google 개인 키를 입력합니다.
PEM 형식이어야 하며
-----BEGIN PRIVATE KEY-----로 시작해야 합니다. 전체 JSON 키를 업로드하지 마세요. - 새 대상의 로그 ID로 사용할 임의 문자열을 입력합니다. 나중에 Google Cloud에서 로그 결과를 필터링하는 데 사용할 수 있습니다.
- 추가를 선택하여 새 스트리밍 대상을 추가합니다.
Google Cloud Logging 대상 업데이트#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 Google Cloud Logging 스트리밍 대상을 업데이트하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- Google Cloud Logging 스트림을 선택하여 펼칩니다.
- 대상의 이름으로 사용할 임의 문자열을 입력합니다.
- 이전에 생성한 Google Cloud 서비스 계정 키에서 Google 프로젝트 ID와 Google 클라이언트 이메일을 입력하여 대상을 업데이트합니다.
- 대상의 로그 ID를 업데이트하기 위해 임의 문자열을 입력합니다. 나중에 Google Cloud에서 로그 결과를 필터링하는 데 사용할 수 있습니다.
- 새 개인 키 추가를 선택하고 Google 개인 키를 입력하여 개인 키를 업데이트합니다.
- 저장을 선택하여 스트리밍 대상을 업데이트합니다.
AWS S3 대상#
히스토리
- GitLab 16.7에서
allow_streaming_instance_audit_events_to_amazon_s3라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 16.8에서 기능 플래그
allow_streaming_instance_audit_events_to_amazon_s3제거됨.
전체 인스턴스의 AWS S3 대상을 관리합니다.
사전 요구사항#
AWS S3 스트리밍 감사 이벤트를 설정하기 전에 다음을 수행해야 합니다:
- 적절한 자격 증명과 권한을 가진 AWS 액세스 키를 만듭니다. 이 계정은 감사 로그 스트리밍 인증을 구성하는 데 사용됩니다. 자세한 내용은 액세스 키 관리를 참조하세요.
- AWS S3 버킷을 만듭니다. 이 버킷은 감사 로그 스트리밍 데이터를 저장하는 데 사용됩니다. 자세한 내용은 버킷 만들기를 참조하세요.
새 AWS S3 대상 추가#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 AWS S3 스트리밍 대상을 추가하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트리밍 대상 추가를 선택하고 AWS S3를 선택하여 대상 추가 섹션을 표시합니다.
- 새 대상의 이름으로 사용할 임의 문자열을 입력합니다.
- 이전에 생성한 AWS 액세스 키와 버킷에서 액세스 키 ID, 시크릿 액세스 키, 버킷 이름, AWS 리전을 새 대상에 입력합니다.
- 추가를 선택하여 새 스트리밍 대상을 추가합니다.
AWS S3 대상 업데이트#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 AWS S3 스트리밍 대상을 업데이트하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- AWS S3 스트림을 선택하여 펼칩니다.
- 대상의 이름으로 사용할 임의 문자열을 입력합니다.
- 대상을 업데이트하려면 이전에 생성한 AWS 액세스 키와 버킷에서 액세스 키 ID, 시크릿 액세스 키, 버킷 이름, AWS 리전을 입력합니다.
- 새 시크릿 액세스 키 추가를 선택하고 AWS 시크릿 액세스 키를 입력하여 시크릿 액세스 키를 업데이트합니다.
- 저장을 선택합니다.
스트리밍 대상 나열#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대상을 나열하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
스트리밍 대상 활성화 또는 비활성화#
히스토리
- GitLab 18.2에서 도입됨.
대상 구성을 삭제하지 않고 일시적으로 대상에 대한 감사 이벤트 스트리밍을 비활성화할 수 있습니다. 스트리밍 대상이 비활성화된 경우:
- 해당 대상으로의 감사 이벤트 스트리밍이 즉시 중단됩니다.
- 대상 구성은 유지됩니다.
- 언제든지 대상을 다시 활성화할 수 있습니다.
- 다른 활성 대상은 계속해서 이벤트를 수신합니다.
스트리밍 대상 비활성화#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
스트리밍 대상을 비활성화하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 활성 체크박스를 선택 해제합니다.
- 저장을 선택합니다.
대상이 감사 이벤트 수신을 중단합니다.
스트리밍 대상 활성화#
이전에 비활성화된 스트리밍 대상을 다시 활성화하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 활성 체크박스를 선택합니다.
- 저장을 선택합니다.
대상이 즉시 감사 이벤트 수신을 재개합니다.
스트리밍 대상 삭제#
전체 인스턴스의 스트리밍 대상을 삭제합니다. 마지막 대상이 성공적으로 삭제되면 인스턴스에 대한 스트리밍이 비활성화됩니다.
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대상을 삭제하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트림을 선택하여 펼칩니다.
- 대상 삭제를 선택합니다.
- 확인하려면 대상 삭제를 선택합니다.
사용자 정의 HTTP 헤더만 삭제#
사전 요구사항:
- 인스턴스에 대한 관리자 액세스.
스트리밍 대상의 사용자 정의 HTTP 헤더만 삭제하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 항목 오른쪽에서 편집 (✏️)을 선택합니다.
- 사용자 정의 HTTP 헤더 표를 찾습니다.
- 제거하려는 헤더를 찾습니다.
- 헤더 오른쪽에서 삭제 ([remove])를 선택합니다.
- 저장을 선택합니다.
