AWS(Amazon Web Services) 서비스 로그 커넥터는 CloudTrail 관리 및 데이터 로그용 레거시 커넥터와 S3 버킷에서 로그를 가져와서 다음 AWS 서비스에서 로그를 수집할 수 있는 새 버전(AWS 설명서에 대한 링크)의 두 가지 버전으로 제공됩니다.
- Amazon VPC(Virtual Private Cloud) - VPC 흐름 로그
- Amazon GuardDuty - 결과
- AWS CloudTrail - 관리 및 데이터 이벤트
- AWS CloudWatch - CloudWatch 로그
S3 커넥터 탭에서는 두 가지 방법 중 하나를 사용하여 AWS S3 커넥터를 구성하는 방법을 설명합니다:
필수 구성 요소
Microsoft Sentinel 작업 영역에 대한 쓰기 권한이 있어야 합니다.
Microsoft Sentinel 콘텐츠 허브에서 Amazon Web Services 솔루션을 설치합니다. 자세한 내용은 기본 제공 콘텐츠 Microsoft Sentinel 검색 및 관리를 참조하세요.
컴퓨터에 PowerShell 및 AWS CLI를 설치합니다(자동 설정에만 해당).
선택한 AWS 서비스의 로그가 Microsoft Sentinel 허용되는 형식을 사용하는지 확인합니다.
- Amazon VPC: 헤더가 포함된 GZIP 형식의 .csv 파일, 구분자: 공백.
- Amazon GuardDuty: json-line 및 GZIP 형식입니다.
- AWS CloudTrail: GZIP 형식의 .json 파일.
- CloudWatch: 헤더 없이 GZIP 형식으로 파일을 .csv. 로그를 이 형식으로 변환해야 하는 경우 이 CloudWatch 람다 함수를 사용할 수 있습니다.
자동 설정
온보딩 과정을 단순화하기 위해 Microsoft Sentinel은 AWS 쪽 커넥터 설정을 자동화하는 PowerShell 스크립트를 제공했습니다; 필요한 AWS 리소스, 자격 증명, 권한 등이 포함됩니다.
스크립트:
MICROSOFT ENTRA ID 사용자를 AWS에 인증하는 OIDC 웹 ID 공급자를 만듭니다. 웹 ID 공급자가 이미 있는 경우 스크립트는 Microsoft Sentinel 기존 공급자에 대상 그룹으로 추가합니다.
필요한 최소한의 권한으로 IAM 가정 역할을 만들어 지정된 S3 버킷 및 SQS 큐에서 OIDC 인증 사용자에게 로그에 대한 액세스 권한을 부여합니다.
지정된 AWS 서비스가 해당 S3 버킷에 로그를 보내고 해당 SQS 큐에 알림 메시지를 보낼 수 있도록 합니다.
필요 시 로그 저장용 S3 버킷과 알림용 SQS 큐를 생성합니다.
필요한 모든 IAM 권한 정책을 구성하고 위에서 만든 IAM 역할에 적용합니다.
Azure Government 클라우드의 경우, 특수 스크립트가 다른 OIDC 웹 아이덴티티 제공자를 생성하고 그 제공자에게 IAM 역할을 할당합니다.
지침
스크립트를 실행하여 커넥터를 설정하려면 다음 단계를 사용합니다.
Microsoft Sentinel 탐색 메뉴에서 데이터 커넥터를 선택합니다.
데이터 커넥터 갤러리에서 Amazon Web Services S3 을 선택합니다.
커넥터가 표시되지 않으면 Microsoft Sentinel 콘텐츠 허브에서 Amazon Web Services 솔루션을 설치합니다.
커넥터의 세부 정보 창에서 커넥터 페이지 열기를 선택합니다.
구성 섹션의 1 아래에 있습니다. AWS 환경을 설정하고PowerShell 스크립트를 사용하여 설정을 확장합니다(권장).
화면의 지침에 따라 커넥터 페이지에서 AWS S3 설치 스크립트 (링크는 기본 설정 스크립트 및 도우미 스크립트가 포함된 zip 파일을 다운로드)를 다운로드하고 추출합니다.
참고 항목
AWS 로그를 Azure Government 클라우드로 가져오려면 대신 이 전용 AWS S3 Gov 설정 스크립트를 다운로드하여 압축을 푸세요.
스크립트를 실행하기 전에 PowerShell 명령줄에서 명령을 실행하고
aws configure프롬프트에 따라 관련 정보를 입력합니다. 자세한 내용은 AWS 명령줄 인터페이스 | 구성 기본 사항(AWS 설명서)을 참조하세요.이제 스크립트를 실행합니다. 커넥터 페이지에서 명령을 복사하여("환경 설정 스크립트 실행" 아래) 명령줄에 붙여넣습니다.
스크립트는 작업 영역 ID를 입력하라는 메시지를 표시합니다. 이 ID는 커넥터 페이지에 표시됩니다. 복사하여 스크립트의 프롬프트에 붙여넣습니다.
스크립트가 실행을 마치면, 스크립트 출력에서 역할 ARN 과 SQS URL 을 복사하여 커넥터 페이지 2 아래에 있는 해당 필드에 붙여넣 으세요. 연결을 추가하세요.
대상 테이블 드롭다운 목록에서 데이터 형식을 선택합니다. 이렇게 하면 이 연결을 수집하기 위해 설정되는 AWS 서비스의 로그와 수집된 데이터를 저장하는 Log Analytics 테이블을 커넥터에 알릴 수 있습니다. 그런 다음 , 연결 추가를 선택합니다.
참고 항목
스크립트 실행을 완료하는 데 최대 30분이 걸릴 수 있습니다.
수동 설정
자동 설치 스크립트를 사용하여 이 커넥터를 배포하는 것이 좋습니다. 어떤 이유로든 이러한 편의를 활용하지 않으려면 아래 단계에 따라 커넥터를 수동으로 설정합니다.
Microsoft Sentinel로 AWS 로그를 수집하도록 Amazon Web Services 환경 설정에 설명된 대로 AWS 환경을 설정합니다.
AWS 콘솔에서 다음을 수행합니다.
IAM(ID 및 액세스 관리) 서비스를 입력하고 역할 목록으로 이동합니다. 위에서 만든 역할을 선택합니다.
ARN을 클립보드에 복사합니다.
단순 큐 서비스를 입력하고, 만든 SQS 큐를 선택하고, 큐의 URL을 클립보드에 복사합니다.
Microsoft Sentinel 탐색 메뉴에서 데이터 커넥터를 선택합니다.
데이터 커넥터 갤러리에서 Amazon Web Services S3 을 선택합니다.
커넥터가 표시되지 않으면 Microsoft Sentinel 콘텐츠 허브에서 Amazon Web Services 솔루션을 설치합니다. 자세한 내용은 기본 제공 콘텐츠 Microsoft Sentinel 검색 및 관리를 참조하세요.
커넥터의 세부 정보 창에서 커넥터 페이지 열기를 선택합니다.
2. 연결 추가 아래:
- AWS IAM 콘솔에서 복사한 IAM 역할 ARN을 추가할 역할 필드에 붙여넣으세요.
- AWS Simple Queue Service 콘솔에서 복사한 SQS 큐 URL을 SQS URL 필드에 붙여넣으세요.
- 대상 테이블 드롭다운 목록에서 데이터 형식을 선택합니다. 이렇게 하면 이 연결을 수집하기 위해 설정되는 AWS 서비스의 로그와 수집된 데이터를 저장하는 Log Analytics 테이블을 커넥터에 알릴 수 있습니다.
- 연결 추가를 선택합니다.
알려진 문제 및 문제 해결
알려진 문제
서로 다른 유형의 로그를 동일한 S3 버킷에 저장할 수 있지만 동일한 경로에 저장해서는 안 됩니다.
각 SQS 큐는 한 가지 유형의 메시지를 가리킵니다. GuardDuty 결과 및 VPC 흐름 로그를 수집하려면 각 형식에 대해 별도의 큐를 설정합니다.
단일 SQS 큐는 S3 버킷에서 하나의 경로만 제공할 수 있습니다. 로그를 여러 경로에 저장하는 경우 각 경로에는 고유한 전용 SQS 큐가 필요합니다.
문제 해결
문제 해결 단계에 대해서는 'Amazon Web Services S3 커넥터 문제 문제 해결'을 참조하세요.
람다 함수를 사용하여 형식이 지정된 CloudWatch 이벤트를 S3에 보내기(선택 사항)
만약 CloudWatch 로그가 Microsoft Sentinel에서 허용하는 형식이 아니라면(헤더 없는 GZIP 형식.csv 파일을 포함해서, AWS 내에서 소스 코드를 확인해 헤더 없이 .csv GZIP 형식으로 CloudWatch 이벤트를 S3 버킷으로 전송하세요.
람다 함수는 Python 3.12 런타임 및 x86_64 아키텍처를 사용합니다.
람다 함수를 배포하려면 다음을 수행합니다.
AWS 관리 콘솔에서 람다 서비스를 선택합니다.
함수 만들기를 선택합니다.
함수의 이름을 입력하고 Python 3.12 를 런타임으로 선택하고 아키텍처로 x86_64 .
함수 만들기를 선택합니다.
레이어 선택에서 레이어를 선택하고 추가를 선택합니다.
사용 권한을 선택하고 실행 역할에서 역할 이름을 선택합니다.
사용 권한 정책에서 권한 추가>정책 연결을 선택합니다.
AmazonS3FullAccess 및 CloudWatchLogsReadOnlyAccess 정책을 검색하고 연결합니다.
함수로 돌아가 Code를 선택한 다음, Code source 아래에 코드 링크를 붙여넣습니다.
매개 변수의 기본값은 환경 변수를 사용하여 설정됩니다. 필요한 경우 코드에서 직접 이러한 값을 수동으로 조정할 수 있습니다.
배포를 선택한 다음 테스트를 선택합니다.
필요한 필드를 입력하여 이벤트를 만듭니다.
테스트를 선택하여 이벤트가 S3 버킷에 표시되는 방식을 확인합니다.