GitHub 감사 로그의 소스 구성 - Amazon CloudWatch
참고

중요: 이 커넥터를 사용하려면 GitHub Enterprise 계정이 필요합니다. GitHub Personal 또는 Organization 계정은 지원되지 않습니다.

GitHub 감사 로그의 소스 구성

GitHub와 통합

Amazon Telemetry Pipeline을 사용하여 GitHub Enterprise Cloud에서 감사 로그를 수집할 수 있습니다. GitHub Enterprise는 현대식 개발 작업의 복잡한 워크플로를 위해 설계된 엔터프라이즈급 소프트웨어 개발 플랫폼입니다. GitHub Enterprise Cloud는 GitHub 서버에서 호스팅되는 GitHub Enterprise의 클라우드 기반 솔루션입니다.

GitHub로 인증

감사 로그를 읽으려면 파이프라인이 GitHub 계정으로 인증해야 합니다. Enterprise 범위 에는 개인 액세스 토큰을 사용할 수 있고, Organization 범위 에는 개인 액세스 토큰 또는 GitHub 앱을 사용할 수 있습니다.

개인 액세스 토큰으로 인증할 토큰 생성:

  • GitHub 계정의 자격 증명을 사용하여 GitHub 에 로그인합니다.

  • 이 엔드포인트를 사용하려면 인증된 사용자가 엔터프라이즈 관리자여야 합니다.

  • GitHub 개인 액세스 토큰(클래식) 페이지를 열고 'Generate new token (classic)'을 찾은 다음, GitHub 절차에 따라 범위가 read:audit_log이고 기한이 No expiration인 토큰을 생성합니다.

  • 이 새 토큰을 personal_access_token이라는 키로 AWS Secrets Manager에 보안 암호로 저장합니다.

프라이빗 키를 생성하여 GitHub 앱으로 인증:

  • GitHub 계정의 자격 증명을 사용하여 GitHub 에 로그인합니다.

  • GitHub 앱에 'Administration' 조직 권한(읽기) 권한이 있는지 확인합니다.

  • Managing private keys for GitHub Apps의 지침에 따라 프라이빗 키를 생성합니다.

  • 이 프라이빗 키를 private_key라는 키로 AWS Secrets Manager의 보안 암호에 저장하고, GitHub 앱 이름은 app_id라는 키로 저장합니다.

CloudWatch 파이프라인 구성

GitHub Enterprise Cloud에서 감사 로그를 읽도록 파이프라인을 구성할 경우 GitHub 감사 로그를 데이터 소스로 선택합니다. 통합 범위에 따라 소스 유형을 Enterprise 또는 Organization으로 선택하고, 선택한 범위에 따라 Enterprise 또는 Organization 이름 같은 필수 정보를 입력합니다. 파이프라인을 생성하면 선택한 CloudWatch Logs 로그 그룹에서 데이터를 사용할 수 있습니다.

지원되는 Open Cybersecurity Schema Framework 이벤트 클래스

이 통합은 OCSF 스키마 버전 v1.5.0을 지원하고 계정 변경(3001), API 활동(6003), 엔터티 관리(3004)에 매핑되는 GitHub 작업 을 지원합니다.

계정 변경에는 다음과 같은 작업이 포함됩니다.

  • org.enable_two_factor_requirement

  • org.disable_two_factor_requirement

  • two_factor_authentication.add_factor

  • two_factor_authentication.enabled

  • two_factor_authentication.disabled

  • two_factor_authentication.remove_factor

  • org.disable_saml

  • org.enable_saml

  • personal_access_token.access_restriction_disabled

  • personal_access_token.access_restriction_enabled

  • personal_access_token.expiration_limit_set

  • personal_access_token.expiration_limit_unset

API 활동에는 다음과 같은 작업이 포함됩니다.

  • repository_secret_scanning_custom_pa....create

  • repository_secret_scanning_custom_pa....update

  • repository_secret_scanning_custom_pa....delete

  • repository_secret_scanning_custom_pa....publish

  • repository_secret_scanning_custom_p....enabled

  • repository_secret_scanning_custom_p....disabled

  • repository_secret_scanning_non_provi....enabled

  • repository_secret_scanning_non_provi....disabled

  • repository_secret_scanning_generic_s....enabled

  • repository_secret_scanning_generic_s....disabled

  • business_secret_scanning_custom_pattern.create

  • business_secret_scanning_custom_pattern.update

  • business_secret_scanning_custom_pattern.delete

  • business_secret_scanning_custom_pattern.publish

  • business_secret_scanning_custom_patt....enabled

  • business_secret_scanning_custom_patt....disabled

  • business_secret_scanning_generic_secrets.enabled

  • business_secret_scanning_generic_secrets.disabled

  • business_secret_scanning_non_provide....enabled

  • business_secret_scanning_non_provide....disabled

  • org_secret_scanning_non_provider_patt....enabled

  • org_secret_scanning_non_provider_patt....disabled

  • org_secret_scanning_generic_secrets.enabled

  • org_secret_scanning_generic_secrets.disabled

  • org_secret_scanning_custom_pattern.create

  • org_secret_scanning_custom_pattern.update

  • org_secret_scanning_custom_pattern.delete

  • org_secret_scanning_custom_pattern.publish

엔터티 관리에는 다음과 같은 작업이 포함됩니다.

  • oauth_application.destroy

  • oauth_application.generate_client_secret

  • oauth_application.remove_client_secret

  • oauth_application.revoke_all_tokens

  • oauth_application.revoke_tokens

  • oauth_application.transfer

  • personal_access_token.auto_approve_grant_requests_enabled

  • personal_access_token.auto_approve_grant_requests_disabled

  • ip_allow_list.disable

  • ip_allow_list.enable_for_installed_apps

  • ip_allow_list.disable_for_installed_apps

  • ip_allow_list_entry.create

  • ip_allow_list_entry.update

  • ip_allow_list_entry.destroy

  • repository_secret_scanning.disable

  • repository_secret_scanning_automatic....disabled

  • repository_secret_scanning_push_prot....disable

  • repository_secret_scanning_push_prot....enable

  • oauth_application.create

  • oauth_application.reset_secret

  • auto_approve_personal_access_token_req....enabled

  • auto_approve_personal_access_token_req....disabled

  • ip_allow_list.enable

  • ip_allow_list.disable_user_level_enforcement

  • ip_allow_list.enable_user_level_enforcement

  • repository_secret_scanning.enable

  • repository_secret_scanning_automatic....enabled

  • repository_secret_scanning_push_prot....enable

  • repository_secret_scanning_push_prot....add

  • repository_secret_scanning_push_prot....remove

  • repository_secret_scanning_push_prot....disable

  • secret_scanning.enable

  • secret_scanning.disable

  • secret_scanning_new_repos.enable

  • org_secret_scanning_automatic_validi....enabled

  • org_secret_scanning_automatic_validi....disabled

  • org_secret_scanning_push_protection_b....추가

  • org_secret_scanning_push_protection_b....remove

  • org_secret_scanning_push_protection_b....disable

  • org_secret_scanning_push_protection_b....enable

  • business_secret_scanning_automatic_va....enabled

  • business_secret_scanning_automatic_va....disabled

  • business_secret_scanning_push_protection.enable

  • business_secret_scanning_push_protection.disable

  • business_secret_scanning_push_protection.enabled_for_new_repos

  • business_secret_scanning_push_protection.disabled_for_new_repos

  • business_secret_scanning_push_prote....enable

  • business_secret_scanning_push_prote....update

  • business_secret_scanning_push_prote....disable