Microsoft Sentinel 리포지토리 기능은 Sentinel 콘텐츠를 코드로 배포하고 관리할 수 있는 중앙 환경을 제공합니다. 리포지토리를 사용하면 CI/CD(연속 통합 및 지속적인 업데이트)를 위해 외부 원본 제어에 연결할 수 있습니다. 이 자동화는 작업 영역 전체에서 사용자 지정 콘텐츠를 업데이트하고 배포하는 수동 프로세스의 부담을 제거합니다. 코드형 콘텐츠의 하위 집합은 DaC(코드로 검색)입니다. Microsoft Sentinel 리포지토리 도 DaC를 구현합니다.
Sentinel 콘텐츠에 대한 자세한 내용은 Microsoft Sentinel 콘텐츠 및 솔루션 정보를 참조하세요.
중요
Microsoft Sentinel 리포지토리 기능은 현재 미리 보기로 제공됩니다. 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 법적 용어는 Microsoft Azure 미리 보기에 대한 추가 사용 약관 을 참조하세요.
리포지토리 연결 계획
Microsoft Sentinel 리포지토리는 작업 영역에서 연결하려는 리포지토리(repo)에 대한 적절한 권한이 있는지 확인하기 위해 신중한 계획이 필요합니다.
- GitHub 및 Azure DevOps 리포지토리에 대한 연결만 지원됩니다.
- GitHub 리포지토리에 대한 공동 작업자 액세스 권한 또는 Azure DevOps 리포지토리에 대한 프로젝트 관리자 액세스 권한이 필요합니다.
- Microsoft Sentinel 애플리케이션을 사용하려면 리포지토리에 대한 권한이 필요합니다.
- GitHub에서 작업을 사용하도록 설정해야 합니다.
- Azure DevOps를 사용하려면 파이프라인을 사용하도록 설정해야 합니다.
- Azure DevOps 연결은 Microsoft Sentinel 작업 영역과 동일한 테넌트에 있어야 합니다.
리포지토리에 대한 연결을 만들려면 Microsoft Sentinel 작업 영역을 포함하는 리소스 그룹의 소유자 역할이 필요합니다. 사용자 환경에서 소유자 역할을 사용할 수 없는 경우 사용자 액세스 관리자 및 Sentinel 기여자 역할의 조합을 사용하여 연결을 만듭니다.
자신이 기여자가 아닌 공개 리포지토리에서 콘텐츠를 발견한 경우 먼저 자신이 기여자인 리포지토리로 콘텐츠를 가져오거나 포크하거나 복제하세요. 그런 다음, 리포지토리를 Microsoft Sentinel 작업 영역에 연결할 수 있습니다. 자세한 내용은 리포지토리에서 사용자 지정 콘텐츠 배포를 참조하세요.
리포지토리 콘텐츠 계획
리포지토리 콘텐츠는 Bicep 파일 또는 ARM(Azure Resource Manager) 템플릿으로 저장해야 합니다. 하지만 Bicep은 더 직관적이며 Azure 리소스 및 Microsoft Sentinel 콘텐츠를 더 쉽게 설명할 수 있습니다.
ARM JSON 템플릿과 함께 또는 대신 Bicep 파일 템플릿을 배포하세요. 인프라를 코드 옵션으로 고려하고 있다면 Bicep을 살펴보는 것이 좋습니다. 자세한 내용은 Bicep이란?을 참조하세요.
중요
Bicep 파일을 사용하려면 2024년 11월 1일 이전에 연결을 만든 경우 리포지토리 연결을 업데이트해야 합니다. 업데이트하려면 리포지토리 연결을 제거하고 다시 만들어야 합니다.
원본 콘텐츠가 ARM 템플릿인 경우에도 검토 및 업데이트 프로세스를 덜 복잡하게 만들려면 Bicep으로 변환하는 것을 고려하세요. 배포하는 동안 각 Bicep 파일은 ARM 템플릿으로 변환되기 때문에 Bicep은 ARM과 밀접한 관련이 있습니다. ARM 템플릿 변환에 대한 자세한 내용은 ARM 템플릿 JSON을 Bicep으로 디컴파일하는 방법을 참조하세요.
참고
알려진 Bicep 제한 사항:
- Bicep 파일은
id속성을 지원하지 않습니다. ARM JSON을 Bicep으로 디컴파일할 때 이 속성이 없는지 확인하세요. 예를 들어 Microsoft Sentinel에서 내보낸 분석 규칙 템플릿에는 제거해야 하는id속성이 있습니다. - 디컴파일 시 최상의 결과를 얻으려면 ARM JSON 스키마를
2019-04-01버전으로 변경하세요.
콘텐츠 유효성 검사
리포지토리 연결을 통해 배포할 수 있는 Microsoft Sentinel 콘텐츠 형식은 다음과 같습니다.
- Analytics 규칙
- 자동화 규칙
- 헌팅 쿼리
- 파서
- 플레이북
- 통합 문서
중요
Microsoft Sentinel 리포지토리 기능을 사용하여 배포된 분석 규칙은 대상 작업 영역이 리포지토리에 연결된 작업 영역과 동일한 리소스 그룹에 있는 경우에만 작업 영역 간 쿼리를 사용할 수 있습니다.
팁
이 문서에서는 이러한 유형의 콘텐츠를 처음부터 만드는 방법을 설명하지 않습니다. 자세한 내용은 각 콘텐츠 형식에 대한 관련 Microsoft Sentinel GitHub wiki 를 참조하세요.
리포지토리 배포는 콘텐츠가 올바른 JSON 또는 Bicep 형식인지 확인하는 경우를 제외하고는 콘텐츠의 유효성을 검사하지 않습니다. 배포하기 전에 Microsoft Sentinel 내에서 콘텐츠를 테스트하세요.
샘플 리포지토리는 나열된 각 콘텐츠 형식에 대한 템플릿에서 사용할 수 있습니다. 또한 리포지토리에서 리포지토리 연결의 고급 기능을 사용하는 방법도 보여 줍니다. 자세한 내용은 Microsoft Sentinel CI/CD 리포지토리 샘플을 참조하세요.
최대 연결 수 및 배포 수
- 각 Microsoft Sentinel 작업 영역은 현재 5개의 리포지토리 연결로 제한됩니다.
- 각 Azure 리소스 그룹은 배포 기록에서 800개의 배포 로 제한됩니다. 리소스 그룹 중 하나 이상의 템플릿 배포량이 많은 경우
Deployment QuotaExceeded오류가 표시될 수 있습니다. 자세한 내용은 Azure Resource Manager 템플릿 설명서의 DeploymentQuotaExceededed 를 참조하세요.
스마트 배포를 사용하여 성능 향상
팁
스마트 배포가 GitHub에서 작동하도록 하려면 Workflow에 리포지토리에 대한 읽기 및 쓰기 권한이 있어야 합니다. 자세한 내용은 리포지토리에 대한 GitHub Actions 설정 관리를 참조하세요.
스마트 배포 기능은 연결된 리포지토리의 콘텐츠 파일에 대한 수정 내용을 적극적으로 추적하여 성능을 향상시키는 백 엔드 기능입니다. 리포지토리의 .sentinel 폴더에 있는 CSV 파일을 사용하여 각 커밋을 감사합니다. 워크플로는 마지막 배포 이후 수정되지 않은 콘텐츠를 다시 배포하지 않습니다. 이 프로세스는 배포 성능을 향상시키고 분석 규칙의 동적 일정 재설정과 같이 작업 영역에서 변경되지 않은 콘텐츠를 변조하지 못하도록 방지합니다.
스마트 배포는 기본적으로 새로 만든 연결에서 사용하도록 설정됩니다. 콘텐츠가 수정되었는지 여부에 관계없이 배포가 트리거될 때마다 모든 원본 제어 콘텐츠를 배포하려는 경우 워크플로를 수정하여 스마트 배포를 사용하지 않도록 설정할 수 있습니다. 자세한 내용은 워크플로 또는 파이프라인 사용자 지정을 참조하세요.
배포 사용자 지정 옵션에 대한 고려 사항
Microsoft Sentinel 리포지토리를 사용하여 콘텐츠를 배포할 때 다음 사용자 지정 옵션을 고려하세요.
워크플로 또는 파이프라인 사용자 지정
다음 방법 중 하나로 워크플로 또는 파이프라인을 사용자 지정합니다.
- 다양한 배포 트리거 구성
- 지정된 작업 영역에 대한 특정 루트 폴더의 콘텐츠만 배포
- 워크플로가 정기적으로 실행되도록 예약
- 서로 다른 워크플로 이벤트를 모두 결합
- 스마트 배포 끄기
이러한 사용자 지정은 워크플로 또는 파이프라인과 관련된 .yml 파일에 정의되어 있습니다. 구현하는 방법에 대한 자세한 내용은 리포지토리 배포 사용자 지정을 참조하세요.
배포 사용자 지정
워크플로 또는 파이프라인이 트리거되면 배포는 다음 시나리오를 지원합니다.
- 리포지토리 콘텐츠의 나머지 부분 전에 배포할 콘텐츠 우선 순위 지정
- 배포에서 콘텐츠 제외
- ARM 템플릿 매개 변수 파일 지정
이러한 옵션은 워크플로 또는 파이프라인에서 호출된 PowerShell 배포 스크립트의 기능을 통해 사용할 수 있습니다. 이러한 사용자 지정을 구현하는 방법에 대한 자세한 내용은 리포지토리 배포 사용자 지정을 참조하세요.
다음 단계
Microsoft Sentinel 리포지토리 배포에 대한 더 많은 예제 및 단계별 지침을 확인합니다.