인스턴스를 위한 감사 이벤트 스트리밍
- 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가 도입됨 플래그와 함께, 기본값으로 비활성화되어 있음.
- 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 스트리밍 목적지를 추가합니다.
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 대한 스트리밍 목적지를 추가하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 메인 영역에서 Streams 탭을 선택합니다.
- Add streaming destination을 선택하고 HTTP endpoint를 선택하여 목적지 추가 섹션을 엽니다.
- Name 및 Destination URL 필드에 목적지 이름과 URL을 추가합니다.
- 선택 사항. 사용자 정의 HTTP 헤더를 추가하려면 Add header를 선택하여 새로운 이름-값 쌍을 만들고 해당 값을 입력합니다. 필요한 만큼 이 단계를 반복합니다. 스트리밍 목적지당 최대 20개의 헤더를 추가할 수 있습니다.
- 헤더를 활성화하려면 Active 체크박스를 선택합니다. 헤더는 감사 이벤트와 함께 전송됩니다.
- Add header를 선택하여 새로운 이름-값 쌍을 생성합니다. 필요한 만큼 이 단계를 반복합니다. 스트리밍 목적지당 최대 20개의 헤더를 추가할 수 있습니다.
- 모든 헤더가 채워진 후 Add를 선택하여 새로운 스트리밍 목적지를 추가합니다.
HTTP 대상을 나열합니다
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대상을 나열하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 스트림을 선택하여 확장하고 모든 사용자 정의 HTTP 헤더를 봅니다.
HTTP 대상을 업데이트합니다
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스 스트리밍 대상의 이름을 업데이트하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 스트림을 선택하여 확장합니다.
- Name 필드에 업데이트할 대상 이름을 추가합니다.
- 스트리밍 대상을 업데이트하려면 Save를 선택합니다.
인스턴스 스트리밍 대상의 사용자 정의 HTTP 헤더를 업데이트하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 스트림을 선택하여 확장합니다.
- Custom HTTP headers 테이블을 찾습니다.
- 업데이트하려는 헤더를 찾습니다.
- 헤더를 활성화하려면 Active 체크박스를 선택합니다. 헤더는 감사 이벤트와 함께 전송됩니다.
- 새로운 이름 및 값 쌍을 만들려면 Add header를 선택합니다. 필요한 만큼의 이름 및 값 쌍을 입력합니다. 스트리밍 대상당 최대 20개의 헤더를 추가할 수 있습니다.
- 스트리밍 대상을 업데이트하려면 Save를 선택합니다.
HTTP 대상을 삭제합니다
인스턴스 전체에 대한 스트리밍 대상을 삭제합니다. 마지막 대상이 성공적으로 삭제되면 인스턴스에 대한 스트리밍이 비활성화됩니다.
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 대한 스트리밍 대상을 삭제하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 스트림을 선택하여 확장합니다.
- Delete destination을 선택합니다.
- 대화 상자에서 Delete destination을 선택하여 확인합니다.
스트리밍 대상에 대한 사용자 정의 HTTP 헤더만 삭제하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 항목 오른쪽에서 Edit ()을 선택합니다.
- Custom HTTP headers 테이블을 찾습니다.
- 제거하려는 헤더를 찾습니다.
- 헤더 오른쪽에서 Delete ()을 선택합니다.
- 스트리밍 대상을 업데이트하려면 Save를 선택합니다.
이벤트 진위를 확인합니다
- GitLab 16.1에 도입됨
ff_external_audit_events
라는 플래그와 함께. 기본적으로 비활성화 되어 있습니다.- GitLab 16.2에서 기본적으로 활성화된 기능 플래그
ff_external_audit_events
.- GitLab 16.4에서 인스턴스 스트리밍 대상이 일반적으로 사용 가능하게됨. 기능 플래그
ff_external_audit_events
제거됨.
각 스트리밍 대상은 이벤트의 진위를 확인하는 데 사용할 수 있는 고유한 검증 토큰(verificationToken
)을 가지고 있습니다. 이 토큰은 소유자가 지정하거나 이벤트 대상을 생성할 때 자동으로 생성되며 변경할 수 없습니다.
각 스트리밍 이벤트는 스트리밍 대상을 나열할 때 대상의 값과 검증할 수 있는 X-Gitlab-Event-Streaming-Token
HTTP 헤더에 검증 토큰을 포함합니다.
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 스트리밍 대식을 나열하고 검증 토큰을 보려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- 각 항목의 오른쪽에서 검증 토큰을 봅니다.
이벤트 필터 업데이트
- UI에서 특정 감사 이벤트 유형 목록으로 이벤트 유형을 필터링할 수 있는 기능이 GitLab 16.3에서 도입되었습니다.
이 기능이 활성화되면 사용자가 목적지별로 스트리밍된 감사 이벤트를 필터링할 수 있습니다.
필터가 없는 상태에서 이 기능이 활성화되면, 목적지는 모든 감사 이벤트를 수신하게 됩니다.
이벤트 유형 필터가 설정된 스트리밍 목적지는 filtered () 레이블을 가집니다.
스트리밍 목적지의 이벤트 필터를 업데이트하려면:
- 왼쪽 사이드바 하단에서 Admin을 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 확장할 스트림을 선택합니다.
- 감사 이벤트 유형별 필터 드롭다운 목록을 찾습니다.
- 드롭다운 목록을 선택하고 필요한 이벤트 유형을 선택하거나 선택 해제합니다.
- 저장을 선택하여 이벤트 필터를 업데이트합니다.
기본 콘텐츠 유형 헤더 재정의
기본적으로 스트리밍 목적지는 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에서 로깅을 활성화하려면 서비스 계정에 Logs Writer 역할을 활성화합니다. 자세한 내용은 IAM을 통한 액세스 제어를 참조하세요.
- 서비스 계정을 위한 JSON 키를 생성합니다. 자세한 내용은 서비스 계정 키 만들기를 참조하세요.
새로운 Google Cloud Logging 목적지 추가
전제조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 Google Cloud Logging 스트리밍 목적지를 추가하려면:
- 왼쪽 사이드바 하단에서 Admin을 선택합니다.
- 모니터링 > 감사 이벤트를 선택합니다.
- 메인 영역에서 스트림 탭을 선택합니다.
- 스트리밍 목적지 추가를 선택하고 Google Cloud Logging을 선택하여 목적지 추가 섹션을 표시합니다.
- 새 목적지의 이름으로 사용할 랜덤 문자열을 입력합니다.
- 이전에 생성한 Google Cloud 서비스 계정 키에서 Google 프로젝트 ID, Google 클라이언트 이메일 및 Google 개인 키를 입력합니다.
- 새 목적지의 로그 ID로 사용할 랜덤 문자열을 입력합니다. 나중에 Google Cloud에서 로그 결과를 필터링하는 데 사용할 수 있습니다.
- 추가를 선택하여 새 스트리밍 목적지를 추가합니다.
Google Cloud Logging 대상을 나열합니다
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 Google Cloud Logging 스트리밍 대상을 나열하려면:
-
왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
-
Monitoring > Audit events를 선택합니다.
-
메인 영역에서 Streams 탭을 선택합니다.
-
Google Cloud Logging 스트림을 선택하여 확장하고 모든 필드를 확인합니다.
Google Cloud Logging 대상을 업데이트합니다
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 대한 Google Cloud Logging 스트리밍 대상을 업데이트하려면:
-
왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
-
Monitoring > Audit events를 선택합니다.
-
메인 영역에서 Streams 탭을 선택합니다.
-
Google Cloud Logging 스트림을 선택하여 확장합니다.
-
대상을 위한 이름으로 사용할 무작위 문자열을 입력합니다.
-
대상을 업데이트하기 위해 이전에 생성한 Google Cloud 서비스 계정 키에서 Google 프로젝트 ID와 Google 클라이언트 이메일을 입력합니다.
-
대상을 위한 로그 ID를 업데이트하기 위해 무작위 문자열을 입력합니다. 나중에 Google Cloud에서 로그 결과를 필터링하는 데 사용할 수 있습니다.
-
Add a new private key를 선택하고 개인 키를 업데이트하기 위해 Google 개인 키를 입력합니다.
-
Save를 선택하여 스트리밍 대상을 업데이트합니다.
Google Cloud Logging 스트리밍 대상을 삭제합니다
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스.
인스턴스에 대한 Google Cloud Logging 스트리밍 대상을 삭제하려면:
-
왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
-
Monitoring > Audit events를 선택합니다.
-
메인 영역에서 Streams 탭을 선택합니다.
-
Google Cloud Logging 스트림을 선택하여 확장합니다.
-
Delete destination을 선택합니다.
-
대화 상자에서 Delete destination을 선택하여 확인합니다.
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 스트리밍 대상을 추가하려면:
-
왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
-
Monitoring > Audit events를 선택합니다.
-
메인 영역에서 Streams 탭을 선택합니다.
-
Add streaming destination을 선택하고 AWS S3를 선택하여 대상을 추가하는 섹션을 표시합니다.
-
새 대상을 위한 이름으로 사용할 무작위 문자열을 입력합니다.
-
새로운 대상을 추가하기 위해 이전에 생성한 AWS 액세스 키와 버킷에서 Access Key ID, Secret Access Key, Bucket Name, AWS Region을 입력합니다.
-
Add를 선택하여 새로운 스트리밍 대상을 추가합니다.
AWS S3 대상을 나열하기
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 AWS S3 스트리밍 대상을 나열하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- AWS S3 스트림을 선택하여 확장하고 모든 필드를 확인합니다.
AWS S3 대상을 업데이트하기
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스의 AWS S3 스트리밍 대상을 업데이트하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- AWS S3 스트림을 선택하여 확장합니다.
- 대상을 위한 이름으로 사용할 무작위 문자열을 입력합니다.
- 대상을 업데이트하기 위해 이전에 생성한 AWS 액세스 키와 버킷에서 Access Key ID, Secret Access Key, Bucket Name 및 AWS Region을 입력합니다.
- Add a new Secret Access Key를 선택하고 Secret Access Key를 업데이트하기 위해 AWS Secret Access Key를 입력합니다.
- Save를 선택하여 스트리밍 대상을 업데이트합니다.
AWS S3 스트리밍 대상을 삭제하기
전제 조건:
- 인스턴스에 대한 관리자 액세스.
인스턴스에서 AWS S3 스트리밍 대상을 삭제하려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Monitoring > Audit events를 선택합니다.
- 주요 영역에서 Streams 탭을 선택합니다.
- AWS S3 스트림을 선택하여 확장합니다.
- Delete destination을 선택합니다.
- 대화 상자에서 Delete destination을 선택하여 확인합니다.