GitSync

GitSync는 Google SecOps를 위해 빌드된 통합으로, 보안 자동화 애셋과 구성요소를 외부 Git 저장소 (예: GitHub, GitLab, Bitbucket)와 동기화합니다. 콘텐츠의 양방향 동기화를 지원하여 보안 운영 수명 주기 전반에서 자동 버전 제어, 구성 백업, 교차 환경 승격을 제공합니다. GitSync는 내부 데이터베이스 식별자가 충돌을 일으킬 수 있는 관련 없는 시스템 간에 애셋을 배포하는 것이 아니라 관련 환경 (예: 개발, 스테이징, 프로덕션) 간에 애셋을 백업하고 이전하도록 설계되었습니다.

사용 사례

GitSync 통합은 다음과 같은 기본 사용 사례를 지원합니다.

  • 버전 제어 및 감사 가능성 (코드로서의 보안): 플레이북, 커넥터, 통합, 시스템 설정 전반에서 수정사항을 추적하고, diff를 검토하고, 변경사항의 전체 버전 기록을 유지합니다.

  • 다중 환경 승격 (CI/CD 파이프라인): 풀 요청 및 브랜치 병합을 통해 개발 및 스테이징 환경에서 프로덕션으로 플레이북, 온톨로지 매핑, 통합 설정을 체계적으로 승격합니다.

  • 백업 및 재해 복구: 실수로 삭제되거나 손상되었거나 잘못 구성된 플레이북 및 플랫폼 구성을 Git 저장소에서 직접 복원합니다.

  • 교차 환경 표준화: 중앙 저장소에서 관련 Google SecOps 환경 전반에 표준화된 플레이북, 맞춤 시각적 패밀리, 커넥터 정의를 배포합니다.

  • 브랜칭 및 스테이징 격리: 프로덕션 워크플로 또는 일정에 영향을 주지 않고 전용 환경에서 실험적인 플레이북과 기능 브랜치를 테스트합니다.

  • 오프라인 검토 및 공동작업: 플랫폼 정의를 JSON 및 Markdown으로 내보내 표준 개발자 도구에서 동료 검토, 자동 유효성 검사, 검사를 사용 설정합니다.

  • 재사용 가능한 워크플로 블록: 팀이 일반적인 자동화 단계를 공유할 수 있도록 전체 플레이북과 함께 또는 별도로 모듈식 워크플로 블록을 동기화합니다.

목표별 구현 워크플로

현재 목표에 맞는 안내로 바로 이동하려면 워크플로를 선택하세요.

  • 새 GitSync 배포 또는 새 브랜치: GitSync 통합을 처음 구성하거나 Chronicle API 지원 환경에서 새 저장소 브랜치를 만드는 경우 다음 엔드 투 엔드 설정 시퀀스를 따르세요.

    1. 기본 요건 및 사용자 인증 정보 설정을 완료합니다.
    2. 공유 통합 인스턴스를 구성합니다.
    3. Ping 작업으로 네트워크 연결 및 인증을 테스트합니다.
    4. 풀 작업을 실행하기 전에 초기 콘텐츠 푸시 작업을 실행하여 브랜치를 채웁니다.
    5. 자동화된 동기화 작업을 구성하고 예약합니다.
  • Chronicle API로 마이그레이션 (기존 배포에 필수): Chronicle API 지원 환경으로 이동한 후 기존 GitSync 통합 및 저장소 브랜치를 마이그레이션하려면 Chronicle API 지원 환경 마이그레이션을 참고하세요.

  • 작업 및 저장소 참조:

    • 구성 매개변수를 확인하고 특정 애셋 (플레이북, 커넥터, 통합 등)에 대해 독립형 푸시 또는 풀 작업을 실행하려면 작업을 참고하세요.
    • 표준 저장소 레이아웃을 보려면 저장소 디렉터리 구조를 참고하세요.
  • 동기화 문제 해결: 작업 또는 작업이 오류와 함께 실패하면 문제 해결을 참고하세요.

시작하기 전에

GitSync 작업을 구성하고 실행하기 전에 환경을 확인하고, 저장소 액세스 권한을 획득하고, 다음 설정 작업을 완료하세요.

  • Chronicle API 지원 환경 확인 (GitSync v53.0 이상에 필요): 브라우저의 웹 콘솔 URL을 확인하여 인스턴스가 secops.google.com 또는 *.chronicle.security.google.com에서 호스팅되는지 확인합니다 (또는 설정 > SOAR 설정 > 라이선스 관리에서 시스템 버전 번호 뒤에 Google.com이 표시되는지 확인). 인스턴스가 아직 *.siemplify-soar.com에서 호스팅되는 경우 먼저 Chronicle API 지원 환경 마이그레이션을 완료하세요.

  • 쓰기 액세스 권한이 있는 비공개 Git 저장소 사용: 지원되는 Git 제공업체 (예: GitHub, GitLab, Bitbucket)에서 호스팅되는 비공개 원격 Git 저장소에 대한 쓰기 권한이 있는지 확인합니다. Commit Passwords이 사용 설정되지 않은 경우 Password 유형 매개변수는 기본적으로 제외되지만 다른 모든 매개변수 (예: 애플리케이션 ID, 클라이언트 ID, 사용자 이름, 엔드포인트)는 일반 텍스트로 내보내집니다. GitSync와 함께 공개 저장소를 사용하면 안 됩니다.

  • 원격 저장소 초기화: 원격 저장소에 하나 이상의 초기 커밋 (예: README.md 또는 .gitignore 파일)이 있는지 확인합니다. GitSync는 빈 저장소에 동기화할 수 없습니다.

  • Git 인증 사용자 인증 정보 준비: 저장소 쓰기 권한이 있는 인증 사용자 인증 정보를 생성합니다. GitSync는 base64로 인코딩된 SSH 비공개 키 (권장), 개인 액세스 토큰 (PAT), 기본 사용자 이름 및 비밀번호 사용자 인증 정보를 지원합니다.

    SSH 키를 생성하고 인코딩하려면 GitSync용 SSH 키 생성을 참고하세요.

  • 네트워크 연결 및 VPC 서비스 제어 확인: Google SecOps 인스턴스 또는 원격 러너가 Git 제공업체에 대한 TCP 포트 443 (HTTPS용) 또는 TCP 포트 22 (SSH용)에서 아웃바운드 방화벽 액세스 권한을 가지고 있는지 확인합니다.

    Google Cloud 환경에서 VPC 서비스 제어 서비스 경계를 사용하는 경우 Google Cloud 관리자와 협력하여 응답 통합이 필요한 Google Cloud API 및 외부 엔드포인트와 통신할 수 있도록 인그레스 및 이그레스 규칙을 구성하세요.

  • Git 호스트 지문 가져오기 (권장): 중간자 (PITM) 공격을 방지하려면 호스트 지문 고정을 위해 Git 서버의 공개 키 지문을 가져옵니다.

    구성 단계는 호스트 지문 고정 사용 설정을 참고하세요.

  • 플레이북 수정 권한 부여: 기본 액세스가 제한된 플레이북 (예: 기본 권한이 보기 가능으로 설정됨)을 동기화하려면 동기화 작업을 실행하기 전에 소스 시스템에서 Administrator SOC 역할에 수정 가능 권한을 부여하세요.

    단계별 안내는 플레이북 권한 구성을 참고하세요.

GitSync용 SSH 키 생성

SSH 키를 사용하여 안전한 비밀번호 없는 인증을 구성하려면 다음 단계를 따르세요.

  1. 터미널에서 RSA 또는 Ed25519 키 쌍을 생성합니다. 암호를 묻는 메시지가 표시되면 Enter를 눌러 비워둡니다.

    ssh-keygen -b 2048 -t rsa -f ./id_rsa
    

    이 명령어는 id_rsa (비공개 키) 및 id_rsa.pub (공개 키)라는 두 개의 파일을 만듭니다.

  2. 공개 키 (id_rsa.pub)를 쓰기 권한이 있는 배포 키 또는 액세스 키로 원격 Git 호스팅 서비스에 추가합니다.

  3. 비공개 키를 단일 행 base64 인코딩 문자열로 변환합니다.

    • Linux / macOS:

      base64 -w 0 ./id_rsa
      
    • Windows (PowerShell):

      [Convert]::ToBase64String([System.IO.File]::ReadAllBytes(".\id_rsa"))
      
  4. 결과로 생성된 base64 문자열을 복사하여 GitSync 통합 인스턴스를 구성할 때 Git 비밀번호/토큰/SSH 키 매개변수에 붙여넣습니다.

호스트 지문 고정 사용 설정

호스트 지문 고정은 연결 시 Git 서버의 ID를 확인하여 중간자 (PITM) 공격을 방지합니다. Git 서버 지문 매개변수는 선택사항이지만 이를 구성하면 GitSync가 확인된 Git 호스트에만 연결됩니다.

호스트 지문 고정을 구성하려면 다음 단계를 따르세요.

  1. 호스트 지문 가져오기: 터미널에서 Git 서버 호스트 이름을 대상으로 ssh-keyscan을 실행합니다.

    ssh-keyscan -t rsa <hostname>
    

    예를 들어 GitHub의 경우 ssh-keyscan -t rsa github.com을 실행합니다. 이 명령어는 다음과 유사한 공개 호스트 키 줄을 출력합니다.

    github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...
    
  2. 구성용 지문 저장: 공개 호스트 키 행을 복사합니다. GitSync 통합 인스턴스를 구성할 때 (모든 작업에 적용) 또는 개별 동기화 작업에서 (특정 호스트의 설정을 재정의) 이 값을 Git 서버 지문 매개변수에 입력합니다.

플레이북 권한 구성

권한이 제한된 플레이북 (예: 기본 권한이 보기 가능으로 설정됨)을 동기화할 때는 Administrator SOC 역할에 수정 가능 권한을 할당합니다.

  1. Google SecOps에서 플레이북으로 이동하여 타겟 플레이북을 선택합니다.
  2. 플레이북 권한 설정을 엽니다.
  3. 항목 목록에 Administrator SOC 역할을 추가하고 권한을 수정 가능으로 설정합니다.

Chronicle API 지원 환경 이전

이 섹션에서는 기존 GitSync 배포 및 저장소 브랜치를 Chronicle API 지원 환경 (GitSync 버전 53.0부터 지원)으로 이전하는 절차를 제공합니다.

전반적인 Google SecOps 플랫폼, ID 그룹, IAM 권한, API 엔드포인트를 Google Cloud로 마이그레이션하는 방법에 관한 안내는 Google SecOps 마이그레이션 개요를 참고하세요.

Chronicle API 지원 환경의 업데이트

버전 53.0부터 GitSync에는 Chronicle API 지원 환경을 위한 다음 업데이트가 포함됩니다.

  • 자동 IAM 인증: GitSync는 Chronicle REST API를 통해 Google SecOps에 연결되고 Google Cloud IAM을 사용하여 런타임에 자동으로 인증됩니다.

  • 업데이트된 구성 스키마: 내보낸 JSON 구성 파일은 Chronicle API 리소스 식별자 및 필드 형식을 사용하므로 이전 전 저장소 브랜치와 호환되지 않습니다.

  • 전용 블록 동기화 옵션: 플레이북 동기화 작업에는 플레이북과 함께 재사용 가능한 워크플로 블록을 내보내거나 가져오는 플레이북 블록 포함 옵션이 포함되어 있으며 /Playbooks 또는 /Blocks에서 블록 가져오기를 지원합니다.

  • 맞춤 통합을 위한 직접 보관 파일 전송: 맞춤 통합 패키지가 .zip 보관 파일로 직접 업로드 및 다운로드되어 대규모 통합의 전송 시간이 단축됩니다.

  • 소스 범위 온톨로지 매핑: 매핑 규칙은 /Ontology/Mappings/<Source_Name>/ 아래의 통합 소스별로 정리되어 서로 다른 소스의 매핑 규칙 간 충돌을 방지합니다.

  • 내장 시스템 기본값 자동 필터링: GitSync는 동기화 중에 권한 오류를 방지하기 위해 기본 시스템 태그 및 내장 시스템 인스턴스와 같은 내장 읽기 전용 시스템 항목을 자동으로 제외합니다.

저장소 브랜치 마이그레이션

Chronicle API 지원 환경과 기존 환경은 서로 다른 JSON 구성 형식을 사용하며 동일한 브랜치에 대해 동시에 동기화할 수 없습니다. 전용 브랜치를 선택하거나 (권장) 기존 브랜치를 재사용합니다.

옵션 1: 권장 전용 브랜치 워크플로

새 브랜치를 만들면 업데이트된 Chronicle API 구성이 격리되고 브랜치 기록을 수정하지 않고도 이전된 구성의 보관 파일이 그대로 유지됩니다.

  1. 기준 기존 푸시: 인스턴스를 마이그레이션하기 전에 기존 환경에서 전체 콘텐츠 푸시 작업을 실행하여 기존 브랜치 (예: main)에 정리된 백업을 커밋합니다.

  2. 새 Git 브랜치 만들기: Git 저장소에 전용 새 브랜치를 만듭니다(예: git checkout -b gitsync-chronicle-api && git push origin gitsync-chronicle-api).

  3. 통합 인스턴스 업그레이드 및 재구성: Chronicle API 지원 환경에서 콘텐츠 허브의 GitSync가 버전 53.0 이상으로 업데이트되었는지 확인합니다. 그런 다음 설정 > 통합 > GitSync로 이동하여 브랜치 매개변수를 gitsync-chronicle-api로 업데이트하고 Ping 작업을 사용하여 연결을 확인합니다.

  4. 초기 API 지원 푸시 기준: Chronicle API 지원 인스턴스에서 전체 콘텐츠 푸시 작업을 실행하여 업데이트된 구성 파일로 새 브랜치를 채웁니다.

  5. 풀 동기화 확인 및 사용 설정: 저장소를 검사하여 파일 구조를 확인한 다음 필요에 따라 예약된 콘텐츠 가져오기 작업을 사용 설정합니다.

옵션 2: 기존 브랜치 재사용 절차

자동화된 CI/CD 파이프라인 또는 브랜치 정책에서 기존 브랜치 이름을 유지해야 하는 경우 다음 전환 절차를 실행하세요.

  1. 레거시 백업 태그 만들기: 레거시 구성의 Git 출시 태그를 기록 보관으로 만듭니다.

    git tag backup-legacy-pre-migration
    git push origin backup-legacy-pre-migration
    
  2. 동기화 작업 일시중지: 전환 중에 동시 쓰기를 방지하기 위해 활성 GitSync 예약 작업 (콘텐츠 푸시 및 콘텐츠 가져오기)을 사용 중지합니다.

  3. 기존 브랜치 콘텐츠 삭제: 브랜치에서 기존 디렉터리를 삭제합니다.

    git rm -rf Playbooks/ Connectors/ Integrations/ Jobs/ Ontology/ SimulatedCases/ Settings/
    git commit -m "CHORE: Clear legacy files for Chronicle API baseline"
    git push origin main
    
  4. GitSync 업그레이드 및 API 지원 기준 푸시: Chronicle API 지원 인스턴스에서 콘텐츠 허브의 GitSync가 버전 53.0 이상으로 업데이트되었는지 확인합니다. 확인 후 전체 콘텐츠 푸시 작업을 실행하여 업데이트된 구성 파일로 정리된 브랜치를 채웁니다.

  5. 예약된 동기화 재개: 저장소에서 내보낸 파일을 확인하고 Chronicle API 지원 인스턴스에서 예약된 GitSync 작업을 다시 사용 설정합니다.

통합 구성

모든 플랫폼 구성요소와 예약된 작업이 저장소 구성에 액세스할 수 있도록 Google SecOps에서 GitSync 통합을 공유 인스턴스로 구성합니다.

GitSync 통합 매개변수

매개변수 설명
Repo URL

필수 항목입니다.

원격 Git 저장소 URL입니다.

HTTPS 인증을 사용하는 경우 URL은 https://으로 시작해야 합니다(예: https://github.com/organization/secops-platform.git).

SSH 인증을 사용하는 경우 URL은 git@ 또는 ssh:// (예: git@github.com:organization/secops-platform.git)로 시작해야 합니다.

Branch

필수 항목입니다.

동기화할 Git 저장소 브랜치입니다 (예: main 또는 gitsync-chronicle-api).

Git Password/Token/SSH Key

필수 항목입니다.

원격 Git 저장소의 인증 사용자 인증 정보입니다.

이 매개변수는 Git 계정 비밀번호, 개인 액세스 토큰 (PAT) 또는 base64로 인코딩된 SSH 비공개 키 (RSA 2048비트 또는 Ed25519)를 허용합니다.

Git Username

(선택사항)

Git 계정 사용자 이름입니다.

HTTPS를 통해 사용자 이름과 비밀번호 인증을 사용하는 경우 필요합니다.

Git Server Fingerprint

(선택사항)

원격 Git 서버의 SSH 공개 호스트 키입니다 (예: github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...).

이 매개변수를 구성하면 호스트 지문 고정이 사용 설정되어 GitSync가 확인된 Git 호스트에만 연결되고 중간자(PITM) 위험이 완화됩니다.

이 값을 가져오려면 호스트 지문 고정 사용 설정을 참고하세요.

Commit Author

(선택사항)

GitSync에서 생성된 아웃바운드 Git 커밋에 연결된 작성자 ID입니다.

형식은 표준 Git 작성자 형식을 따라야 합니다. Name &lt;email@domain.com&gt;(기본값은 GitSync &lt;gitsync@siemplify.co&gt;)

Siemplify Verify SSL

필수 항목입니다.

선택하면 통합에서 Google SecOps API 엔드포인트의 SSL 인증서를 검증합니다.

기본적으로 사용 설정됩니다.

Git Verify SSL

필수 항목입니다.

선택하면 통합에서 원격 Git 제공업체 서버의 SSL 인증서를 검증합니다.

기본적으로 사용 설정됩니다.

작업

작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 직접 조치 실행을 참고하세요.

핑

Ping 작업을 사용하여 네트워크 연결을 테스트하고 구성된 Git 저장소 및 브랜치에 대해 인증 사용자 인증 정보를 확인합니다.

작업 입력

없음

작업 출력

Ping 작업은 다음 출력을 제공합니다.

작업 출력 유형 가용성
케이스 월 연결 사용 불가
케이스 월 링크 사용 불가
케이스 월 테이블 사용 불가
보강 테이블 사용 불가
JSON 결과 사용 불가
출력 메시지 사용 가능
스크립트 결과 사용 가능
출력 메시지

Ping 작업은 다음 출력 메시지를 반환할 수 있습니다.

출력 메시지 메시지 설명
Successfully executed action "Ping". 작업이 성공했고 저장소 연결이 확인되었습니다.
Error executing action "Ping". Reason: ERROR_REASON 작업이 실패했습니다. 저장소 URL, 브랜치 이름, 사용자 인증 정보 또는 네트워크 경로를 확인합니다.
스크립트 결과

다음 표에는 Ping 작업을 사용할 때의 스크립트 결과 값이 나와 있습니다.

스크립트 결과 이름 값
is_success true 또는 false

작업

GitSync는 플랫폼 애셋을 관리하기 위해 16개의 동기화 작업 구성 (2개의 전체 인스턴스 작업과 7개의 독립형 작업 쌍)을 제공합니다. 이러한 작업은 전체 인스턴스 수준 및 타겟팅된 독립형 동기화 범위를 지원합니다.

동기화 범위 및 지원되는 애셋

통합은 다양한 관리 및 자동화 요구사항을 충족하기 위해 동기화 작업을 두 가지 별도의 운영 범위로 구성합니다.

  • 전체 인스턴스 동기화 (Push Content 및 Pull Content): 단일 일괄 작업으로 전체 Google SecOps 플랫폼을 동기화합니다.

    여기에는 다음 세 가지 기능 영역에 걸쳐 21개의 플랫폼 애셋 카테고리가 포함됩니다.

    • 시스템 및 환경 구성: 환경, 도메인, 동적 매개변수, 맞춤 목록, 네트워크, 블랙리스트 (거부 목록), 케이스 제목 설정, 이메일 템플릿, 로고

    • 알림 및 케이스 관리: 케이스 태그, 케이스 단계, 케이스 종료 이유, SLA 기록, 시뮬레이션된 케이스

    • 보안 자동화 및 통합: 플레이북 (재사용 가능한 워크플로 블록 포함), 통합, 통합 인스턴스, 커넥터, 예약된 작업, 온톨로지 매핑, 시각적 패밀리

  • 세분화된 애셋 동기화 (독립형 푸시 및 풀 작업):

    7개의 특정 애셋에 전용 푸시 및 풀 작업 쌍을 제공합니다. 환경의 나머지 부분을 동기화하거나 덮어쓰지 않고 개별 구성요소를 개발, 업데이트 또는 테스트할 때는 독립형 작업을 사용하세요.

    • 플레이북 및 워크플로 블록: Push Playbook 및 Pull Playbook

    • 커넥터: Push Connectors 및 Pull Connector

    • 통합: Push Integration 및 Pull Integration

    • 예약된 작업: Push Job 및 Pull Jobs

    • 온톨로지 매핑: Push Mappings 및 Pull Mappings

    • 맞춤 시각적 계열: Push Custom Family 및 Pull Custom Family

    • 시뮬레이션된 테스트 사례: Push Simulated Cases 및 Pull Simulated Cases

저장소 디렉터리 구조

초기 콘텐츠 푸시 작업을 실행하면 (새 브랜치나 이전된 브랜치에서 풀 작업을 실행하기 전에 필요) 원격 Git 저장소에 다음과 같은 사전 정의된 디렉터리 구조, JSON 구성 파일, 루트 GitSync.json 메타데이터 파일, 생성된 README.md 문서가 생성됩니다.

├── Connectors/
│   └── <Integration_Name>/
│       └── <Connector_Name>/
│           ├── <Connector_Name>.json
│           └── README.md
├── Integrations/
│   └── <Integration_Identifier>/
│       ├── Actions/
│       ├── Connectors/
│       ├── Dependencies/
│       ├── Jobs/
│       ├── Managers/
│       ├── Resources/
│       ├── Integration-<Integration_Identifier>.def
│       └── README.md
├── Jobs/
│   ├── <Job_Name>.json
│   └── README.md
├── Ontology/
│   ├── Mappings/
│   │   └── <Source_Name>/
│   │       ├── <Source_Name>_Records.json
│   │       ├── <Source_Name>_Rules.json
│   │       └── README.md
│   └── VisualFamilies/
│       └── <Family_Name>/
│           ├── <Family_Name>.json
│           ├── <Family_Name>.png
│           └── README.md
├── Playbooks/
│   ├── README.md
│   └── <Folder_Name>/
│       └── <Playbook_Or_Block_Name>/
│           ├── <Playbook_Or_Block_Name>.json
│           └── README.md
├── Settings/
│   ├── blacklists.json
│   ├── caseCloseCauses.json
│   ├── caseTitles.json
│   ├── customLists.json
│   ├── domains.json
│   ├── dynamicParameters.json
│   ├── emailTemplates.json
│   ├── environments.json
│   ├── integrationInstances.json
│   ├── logo.json
│   ├── networks.json
│   ├── slaDefinitions.json
│   ├── stages.json
│   └── tags.json
├── SimulatedCases/
│   └── <Case_Name>.case
├── GitSync.json
└── README.md

인스턴스 수준 동기화 작업

인스턴스 수준 작업은 전체 Google SecOps 인스턴스에서 선택한 애셋 카테고리를 동기화합니다.

콘텐츠 푸시

콘텐츠 푸시 작업을 사용하여 Google SecOps 인스턴스에서 선택한 애셋 카테고리를 내보내고 구성된 Git 저장소 브랜치에 커밋합니다. 새 브랜치를 초기화하거나 Chronicle API 지원 환경으로 이전할 때는 항상 먼저 콘텐츠 푸시를 실행하세요.

작업 입력

콘텐츠 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Commit

필수 항목입니다.

내보낸 콘텐츠 변경사항을 설명하는 Git 커밋 메시지입니다.

Commit Passwords

(선택사항)

선택하면 작업에서 구성된 통합 인스턴스, 커넥터, 작업의 일반 텍스트 Password 유형 매개변수를 내보냅니다.

애셋 선택 매개변수:
Integrations, Playbooks, Jobs, Connectors, Simulated Cases, Integration Instances, Visual Families, Mappings, Environments, Dynamic Parameters, Logo, Case Tags, Case Stages, Case Title Settings, Case Close Reasons, Networks, Domains, Custom Lists, Email Templates, Blacklists, SLA Records

선택사항 (불리언 전환).

내보내기에 포함할 각 애셋 카테고리를 선택합니다.

Repo URL

(선택사항)

통합 인스턴스에 구성된 저장소 URL을 재정의합니다.

Branch

(선택사항)

통합 인스턴스에 구성된 저장소 브랜치를 재정의합니다.

Commit Author

(선택사항)

통합 인스턴스에 구성된 커밋 작성자를 재정의합니다. Name &lt;email@domain.com&gt; 형식을 사용해야 합니다.

Git Server Fingerprint

(선택사항)

통합 인스턴스에 구성된 SSH 호스트 지문을 재정의합니다.

작업 출력

작업은 표준 디렉터리 계층 구조 (/Playbooks, /Connectors, /Integrations, /Jobs, /Ontology/Mappings, /Ontology/VisualFamilies, /SimulatedCases, /Settings) 아래의 타겟 Git 브랜치에 JSON 구성 파일과 README.md 요약을 작성하고 실행 로그를 작업 러너 콘솔에 출력합니다. 맞춤 통합은 완전한 패키지로 내보내지지만 상용 통합은 통합에 추가된 맞춤 스크립트나 수정사항만 내보냅니다.

콘텐츠 가져오기

콘텐츠 가져오기 작업을 사용하여 구성된 Git 저장소 브랜치에서 선택한 구성 카테고리를 가져와 Google SecOps 플랫폼에 적용합니다.

작업 입력

콘텐츠 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
애셋 선택 매개변수:
Integrations, Playbooks, Jobs, Connectors, Simulated Cases, Integration Instances, Visual Families, Mappings, Environments, Dynamic Parameters, Logo, Case Tags, Case Stages, Case Title Settings, Case Close Reasons, Networks, Domains, Custom Lists, Email Templates, Blacklists, SLA Records

선택사항 (불리언 전환).

저장소에서 환경으로 가져오려는 각 애셋 카테고리를 선택합니다.

Repo URL

(선택사항)

통합 인스턴스에 구성된 저장소 URL을 재정의합니다.

Branch

(선택사항)

통합 인스턴스에 구성된 저장소 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

통합 인스턴스에 구성된 SSH 호스트 지문을 재정의합니다.

작업 출력

작업은 선택한 저장소 정의를 플랫폼으로 가져오고, 통합 인스턴스, 플레이북, 커넥터, 작업, 온톨로지 매핑, 설정을 만들거나 업데이트하고, 실행 로그를 작업 러너 콘솔에 출력합니다.

독립형 동기화 작업

독립형 작업을 사용하면 전체 저장소 동기화 없이 특정 애셋을 세부적으로 동기화할 수 있습니다.

플레이북 푸시

플레이북 푸시 작업을 사용하여 개별 플레이북 또는 재사용 가능한 워크플로 블록을 Git으로 내보냅니다.

작업 입력

플레이북 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Commit

필수 항목입니다.

플레이북 변경사항을 설명하는 Git 커밋 메시지입니다.

Playbook Whitelist

(선택사항)

내보낼 정확한 대소문자 구분 플레이북 또는 차단 이름의 쉼표로 구분된 목록입니다. Playbook Whitelist 또는 Folders Whitelist를 제공합니다.

Folders Whitelist

(선택사항)

쉼표로 구분된 플레이북 폴더 (카테고리) 이름 목록입니다. 이러한 폴더에 있는 모든 플레이북과 차단이 내보내집니다.

Include Playbook Blocks

(선택사항)

선택한 경우 선택한 플레이북과 함께 재사용 가능한 워크플로 블록을 내보냅니다. 여기에는 해당 플레이북 내에서 단계로 참조된 블록이 포함됩니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 루트 GitSync.json 메타데이터 파일에 저장된 모든 플레이북에 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

선택한 플레이북과 포함된 워크플로 블록을 /Playbooks/<Folder_Name>/<Playbook_Name>/로 내보내고 /Playbooks/README.md를 업데이트합니다.

플레이북 가져오기

플레이북 가져오기 작업을 사용하여 Git에서 특정 플레이북 또는 블록을 가져옵니다.

작업 입력

Pull Playbook 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Playbook Whitelist

필수 항목입니다.

저장소에서 가져올 정확한 플레이북 또는 차단 이름의 쉼표로 구분된 목록입니다.

Include Playbook Blocks

(선택사항)

선택하면 선택한 플레이북에서 참조하는 재사용 가능한 워크플로 블록을 자동으로 가져옵니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

/Playbooks (또는 /Blocks)에서 지정된 플레이북과 블록을 플랫폼으로 가져와 참조된 블록을 먼저 설치한 후 상위 플레이북을 설치합니다.

푸시 커넥터

커넥터 푸시 작업을 사용하여 커넥터 구성을 Git으로 내보냅니다.

작업 입력

커넥터 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Connectors

필수 항목입니다.

내보낼 커넥터 표시 이름의 쉼표로 구분된 목록입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Include Mappings

(선택사항)

선택하면 커넥터의 통합과 연결된 온톨로지 매핑 레코드 및 규칙을 /Ontology/Mappings로 내보냅니다.

Include Visual Families

(선택사항)

선택하면 커넥터의 온톨로지 레코드와 연결된 맞춤 시각적 요소 패밀리를 /Ontology/VisualFamilies로 내보냅니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 GitSync.json에 저장된 모든 커넥터에 대해 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

커넥터 설정과 일정을 /Connectors/<Integration_Name>/<Connector_Name>/로 내보냅니다(선택한 경우 연결된 온톨로지 매핑 및 시각적 계열과 함께).

풀 커넥터

커넥터 가져오기 작업을 사용하여 Git에서 커넥터 구성을 가져옵니다. 이 작업을 실행하기 전에 커넥터의 기본 통합이 타겟 환경에 이미 설치되어 있는지 확인하세요.

작업 입력

풀 커넥터 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Connector Name

필수 항목입니다.

저장소에서 가져올 커넥터의 표시 이름입니다.

Include Mappings

(선택사항)

선택하면 커넥터의 통합과 연결된 온톨로지 매핑을 가져옵니다.

Include Visual Families

(선택사항)

선택하면 커넥터의 통합과 연결된 맞춤 시각적 패밀리를 가져옵니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

선택한 경우 연결된 매핑 또는 시각적 패밀리와 함께 타겟 환경에 커넥터를 설치하거나 업데이트합니다.

통합 푸시

푸시 통합 작업을 사용하여 상업용 통합에 추가된 맞춤 통합 또는 맞춤 스크립트를 Git으로 내보냅니다. 맞춤 통합은 전체 통합 패키지로 내보내지지만 상용 통합은 통합에 추가된 맞춤 스크립트 또는 수정사항만 내보냅니다.

작업 입력

푸시 통합 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Push Whitelist

필수 항목입니다.

내보낼 통합 식별자의 쉼표로 구분된 목록입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 GitSync.json에 저장된 모든 통합에 대해 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

통합 정의, 맞춤 스크립트 (Actions/, Connectors/, Jobs/, Managers/), 종속 항목, README.md 문서를 /Integrations/<Integration_Identifier>/로 내보냅니다.

통합 가져오기

통합 가져오기 작업을 사용하여 Git에서 상업용 통합의 커스텀 통합 또는 커스텀 스크립트를 가져옵니다. 상업적 통합의 경우 GitSync는 콘텐츠 허브에서 최신 버전의 통합을 설치하고 맞춤 스크립트를 저장합니다.

작업 입력

통합 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Install Whitelist

필수 항목입니다.

저장소에서 가져올 통합 식별자의 쉼표로 구분된 목록입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

맞춤 통합 패키지를 설치하거나 콘텐츠 허브에서 상용 통합을 설치하고 타겟 환경에서 맞춤 스크립트를 업데이트합니다.

푸시 작업

작업 푸시 작업을 사용하여 예약된 플랫폼 작업 구성을 Git으로 내보냅니다.

작업 입력

Push Job 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Job Whitelist

필수 항목입니다.

내보낼 예약 작업 이름의 쉼표로 구분된 목록입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 GitSync.json에 저장된 모든 작업에 대해 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

작업 매개변수와 일정 간격을 /Jobs/<Job_Name>.json로 내보내고 /Jobs/README.md를 업데이트합니다.

풀 작업

작업 가져오기 작업을 사용하여 Git에서 예약된 플랫폼 작업을 가져옵니다.

작업 입력

작업 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Job Whitelist

필수 항목입니다.

저장소에서 가져올 예약된 작업 이름을 쉼표로 구분한 목록입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

플랫폼 작업 스케줄러에서 지정된 예약 작업을 구성하고 등록합니다.

푸시 매핑

매핑 푸시 작업을 사용하여 특정 소스의 온톨로지 이벤트 매핑 레코드와 규칙을 Git으로 내보냅니다.

작업 입력

매핑 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Source

필수 항목입니다.

매핑 레코드와 규칙을 내보낼 온톨로지 소스 (통합 이름)입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 GitSync.json에 저장된 모든 매핑에 대해 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

온톨로지 레코드 (<Source>_Records.json), 매핑 규칙 (<Source>_Rules.json), README.md을 /Ontology/Mappings/<Source>/에 씁니다.

매핑 가져오기

매핑 가져오기 작업을 사용하여 Git에서 특정 소스의 온톨로지 매핑 레코드와 규칙을 가져옵니다.

작업 입력

매핑 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Source

필수 항목입니다.

매핑 레코드와 규칙을 가져오려는 온톨로지 소스 (통합 이름)입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

플랫폼 온톨로지 설정에 온톨로지 매핑 규칙과 시각적 계열 할당을 등록합니다. 매핑은 해당 이벤트가 수집된 후 온톨로지 상태 표에 표시됩니다.

맞춤 패밀리 푸시

맞춤 계열 푸시 작업을 사용하여 맞춤 시각적 계열 정의와 아이콘을 Git으로 내보냅니다.

작업 입력

맞춤 제품군 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Family Name

필수 항목입니다.

내보낼 맞춤 시각적 요소 패밀리 이름을 쉼표로 구분한 목록입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

Readme Addon

(선택사항)

이 실행에서 푸시되고 GitSync.json에 저장된 모든 맞춤 시각적 계열에 대해 생성된 README.md에 추가된 맞춤 콘텐츠입니다.

마크다운 구문과 Jinja 템플릿을 모두 지원합니다.

작업 출력

시각적 계열 정의 (<Family_Name>.json), 아이콘 이미지 파일 (<Family_Name>.png), README.md을 /Ontology/VisualFamilies/<Family_Name>/로 내보냅니다.

맞춤 계열 가져오기

맞춤 계열 가져오기 작업을 사용하여 Git에서 맞춤 시각적 계열 정의와 아이콘을 가져옵니다.

작업 입력

맞춤 제품군 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Family Name

필수 항목입니다.

가져올 맞춤 시각적 계열의 정확한 이름입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

맞춤 시각적 요소 계열 정의와 아이콘을 플랫폼 온톨로지 설정으로 가져옵니다.

시뮬레이션된 케이스 푸시

시뮬레이션된 케이스 푸시 작업을 사용하여 시뮬레이션된 테스트 케이스를 Git으로 내보냅니다.

작업 입력

시뮬레이션된 케이스 푸시 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Simulated Cases

필수 항목입니다.

내보낼 시뮬레이션된 케이스 이름을 쉼표로 구분한 목록입니다.

Commit

필수 항목입니다.

Git 커밋 메시지입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Commit Author

(선택사항)

기본 커밋 작성자를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

시뮬레이션된 케이스를 .case 파일로 /SimulatedCases/<Case_Name>.case에 내보냅니다.

시뮬레이션된 케이스 가져오기

시뮬레이션된 케이스 가져오기 작업을 사용하여 Git에서 시뮬레이션된 테스트 케이스를 가져옵니다.

작업 입력

시뮬레이션된 케이스 가져오기 작업을 구성하려면 다음 매개변수를 사용하세요.

매개변수 설명
Simulated Cases

필수 항목입니다.

저장소에서 가져올 시뮬레이션된 케이스 이름을 쉼표로 구분한 목록입니다.

Repo URL

(선택사항)

기본 저장소 URL을 재정의합니다.

Branch

(선택사항)

기본 브랜치를 재정의합니다.

Git Server Fingerprint

(선택사항)

기본 SSH 호스트 지문을 재정의합니다.

작업 출력

지정된 시뮬레이션된 케이스를 플랫폼의 시뮬레이션된 케이스 카탈로그로 가져옵니다.

문제 해결

다음 표에는 일반적인 동기화 오류의 해결 단계가 나와 있습니다.

확인된 오류 메시지 운영 원인 해결 절차
작업 또는 작업 실행 중 Authentication failed, 401 Unauthorized 또는 Connection refused 이 통합을 이전된 적이 없는 기존 인스턴스 (*.siemplify-soar.com)에서 실행합니다. GitSync는 Google Cloud IAM 인증을 사용하여 Chronicle REST API를 통해서만 Google SecOps와 통신하며 더 이상 기존 플랫폼 API 엔드포인트 (*.siemplify-soar.com/api/)를 지원하지 않습니다. Google SecOps 플랫폼 인스턴스를 Chronicle API 지원 환경 (secops.google.com 또는 *.chronicle.security.google.com를 사용하여 액세스 가능)으로 마이그레이션합니다. 마이그레이션 안내는 Chronicle API 지원 환경 마이그레이션을 참고하세요.
Permission denied (publickey) 또는 Host key verification failed (또는 Authentication failed for 'https://...') 잘못된 사용자 인증 정보 형식, 누락된 배포 키 쓰기 권한 또는 호스트 지문 불일치로 인해 Git 인증이 실패했습니다.
  • SSH 인증: 비공개 SSH 키가 후행 줄바꿈이나 공백 없이 단일 행 base64 문자열로 변환되었는지 확인합니다. 해당 공개 키가 쓰기 액세스 권한이 있는 Git 저장소에 등록되어 있는지 확인합니다.
  • 호스트 지문: 호스트 지문 고정이 사용 설정된 경우 ssh-keyscan -t rsa <hostname>를 사용하여 지문 문자열을 확인하고 Git 서버 지문 매개변수를 업데이트합니다.
  • HTTPS 인증: 개인 액세스 토큰 (PAT)이 만료되지 않았고 저장소 쓰기 범위가 있는지 확인합니다.
403 Forbidden: Insufficient permissions to modify playbook(또는 Failed to push playbook: Access denied) 타겟 플레이북의 기본 액세스 권한이 제한되어 있으며 (예: 보기 가능) Administrator SOC 역할에 소스 시스템에 대한 수정 가능 권한이 부여되지 않았습니다. Google SecOps에서 플레이북으로 이동하여 영향을 받는 플레이북을 선택하고 권한 설정을 열어 Administrator SOC 역할을 수정 가능 권한과 함께 추가합니다. 자세한 단계는 플레이북 권한 구성을 참고하세요.
콘텐츠 가져오기 또는 통합 가져오기 작업이 5분 후에 타임아웃됨 단일 풀 작업 중에 콘텐츠 허브에서 여러 상업적 통합을 설치하여 5분 작업 실행 시간 제한을 초과했습니다. 콘텐츠 가져오기를 실행하기 전에 콘텐츠 허브에서 필요한 상업적 통합을 수동으로 설치하거나 콘텐츠 가져오기 작업을 다시 실행하여 나머지 애셋을 계속 가져옵니다.
General error performing Job Pull Content (또는 기존 레거시 브랜치에서 가져오는 경우 400 Bad Request / 404 Not Found) 이전 후 레거시 구성 파일이 포함된 저장소 브랜치를 Chronicle API 지원 환경으로 가져오려고 시도합니다.
  • 먼저 Chronicle API 지원 환경에서 전체 콘텐츠 푸시 작업을 실행하여 업데이트된 구성 파일로 브랜치를 채운 후 풀 작업을 실행합니다.
  • 통합 인스턴스가 올바른 Chronicle API 지원 브랜치로 구성되어 있는지 확인합니다 (Chronicle API 지원 환경 이전 참고).
Playbook '<Playbook_Name>' is assigned to environment(s) that don't exist 가져오는 플레이북 또는 블록이 대상 인스턴스에서 생성되지 않은 환경 또는 환경 그룹에 할당됩니다. 먼저 환경 옵션을 선택한 상태에서 콘텐츠 가져오기를 실행하거나, 플레이북을 가져오기 전에 대상 인스턴스의 설정 > 환경에서 누락된 환경을 수동으로 만듭니다.
Commit Author parameter must be in the following format: Name <example@gmail.com> 통합 인스턴스 또는 작업 구성의 커밋 작성자 매개변수에 꺾쇠괄호 안의 이메일 주소가 누락되었습니다. 필수 형식인 Name <email@domain.com> (예: GitSync <gitsync@example.com>)에 맞게 커밋 작성자 매개변수를 업데이트합니다.
온톨로지 매핑을 가져올 때 400 Bad Request 또는 409 Conflict 저장소의 이벤트 매핑 규칙이 기존 플랫폼 온톨로지 규칙과 충돌하거나 이전 GitSync 버전을 사용하여 내보냈습니다. Chronicle API 지원 환경에서 새 매핑 푸시 작업을 실행하여 매핑 정의를 다시 내보내거나 작업을 다시 실행하기 전에 설정 > 온톨로지 > 매핑 규칙에서 중복 이벤트 매핑 규칙을 해결합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.