Microsoft Sentinel을 Amazon Web Services에 연결하여 AWS 서비스 로그 데이터 수집
AWS(Amazon Web Services) 커넥터를 사용하여 AWS 서비스 로그를 Microsoft Sentinel로 끌어올 수 있습니다. 해당 커넥터는 AWS 리소스 로그에 대한 액세스 권한을 Microsoft Sentinel에 부여하여 작동합니다. 커넥터를 설정하면 Amazon Web Services와 Microsoft Sentinel 간에 트러스트 관계가 구축됩니다. 이렇게 하려면 AWS에서 AWS 로그 액세스 권한을 Microsoft Sentinel에 부여하는 역할을 만듭니다.
이 커넥터는 CloudTrail 관리 및 데이터 로그용 레거시 커넥터와 S3 버킷에서 끌어와 다음 AWS 서비스의 로그를 수집할 수 있는 새 버전의 두 가지 버전으로 제공됩니다(링크는 AWS 설명서 참조).
- Amazon VPC(Virtual Private Cloud) - VPC 흐름 로그
- Amazon GuardDuty - 결과
- AWS CloudTrail - 관리 및 데이터 이벤트
- AWS CloudWatch - CloudWatch 로그
이 탭에서는 AWS S3 커넥터를 구성하는 방법을 설명합니다. 설정 프로세스는 AWS 쪽과 Microsoft Sentinel 쪽의 두 부분으로 이루어져 있습니다. 양쪽 프로세스는 각각 다른 쪽에서 사용되는 정보를 생성합니다. 이런 양방향 인증을 통해 보안 통신이 가능해집니다.
필수 조건
선택한 AWS 서비스의 로그가 Microsoft Sentinel에서 수락한 형식을 사용하는지 확인합니다.
- Amazon VPC: 헤더가 있는 GZIP 형식의 csv 파일, 구분 기호: 공백
- Amazon GuardDuty: json-line 및 GZIP 형식
- AWS CloudTrail: GZIP 형식의 .json 파일
- CloudWatch: 헤더가 없는 GZIP 형식의 csv 파일 로그를 이 형식으로 변환해야 하는 경우 이 CloudWatch 람다 함수를 사용할 수 있습니다.
Microsoft Sentinel 작업 영역에 대한 쓰기 권한이 있어야 합니다.
Microsoft Sentinel의 콘텐츠 허브에서 Amazon Web Services 솔루션을 설치합니다. 자세한 내용은 Microsoft Sentinel 기본 제공 콘텐츠 검색 및 관리를 참조하세요.
아키텍처 개요
아래 그림과 다음 텍스트는 이 커넥터 솔루션의 일부가 상호 작용하는 방식을 보여 줍니다.
AWS 서비스는 S3(Simple Storage Service) 스토리지 버킷에 로그를 보내도록 구성됩니다.
S3 버킷은 새 로그를 받을 때마다 SQS(Simple Queue Service) 메시지 큐에 알림 메시지를 보냅니다.
Microsoft Sentinel AWS S3 커넥터는 정기적으로 자주 SQS 큐를 폴링합니다. 큐에 메시지가 있는 경우 로그 파일의 경로가 포함됩니다.
커넥터는 경로가 포함된 메시지를 읽은 다음, S3 버킷에서 파일을 가져옵니다.
SQS 큐 및 S3 버킷에 연결하기 위해 Microsoft Sentinel은 OIDC(OpenID Connect)를 통해 AWS에 인증하고 AWS IAM 역할을 맡는 데 페더레이션된 웹 ID 공급자(Microsoft Entra ID)를 사용합니다. 역할은 해당 리소스에 대한 액세스 권한을 부여하는 권한 정책으로 구성됩니다.
S3 커넥터 연결
AWS 환경에서 다음을 수행합니다.
S3 버킷에 로그를 보내도록 AWS 서비스를 구성합니다.
알림을 제공할 SQS(Simple Queue Service) 큐를 만듭니다.
OIDC(OpenID Connect)를 통해 AWS에 사용자를 인증하기 위한 웹 ID 공급자를 만듭니다.
OIDC 웹 ID 공급자가 인증한 사용자에게 AWS 리소스에 액세스할 수 있는 권한을 부여하려면 가정된 역할을 만듭니다.
적절한 IAM 권한 정책을 연결하여 위임된 역할에 적절한 리소스(S3 버킷, SQS)에 대한 액세스 권한을 부여합니다.
이 프로세스의 AWS 쪽을 자동화하는 스크립트를 GitHub 리포지토리에서 사용할 수 있습니다. 이 문서의 뒷부분에 있는 자동 설정 지침을 참조하세요.
Microsoft Sentinel에서 다음을 수행합니다.
- Microsoft Sentinel 포털에서 AWS S3 커넥터를 사용하도록 설정하고 구성합니다. 아래 지침을 참조하세요.
자동 설정
온보딩 프로세스를 간소화하기 위해 Microsoft Sentinel은 필요한 AWS 리소스, 자격 증명, 권한을 비롯한 커넥터 AWS 쪽의 설정을 자동화하는 PowerShell 스크립트를 제공했습니다.
이 스크립트는 다음 작업을 수행합니다.
Microsoft Entra ID 사용자를 AWS에 인증하기 위해 OIDC 웹 ID 공급자를 만듭니다.
OIDC 인증 사용자에게 지정된 S3 버킷 및 SQS 큐의 로그에 대한 액세스 권한을 부여하기 위해 필요한 최소한의 권한으로 IAM 위임 역할을 만듭니다.
지정한 AWS 서비스가 해당 S3 버킷에 로그를 보내고 해당 SQS 큐에 알림 메시지를 보낼 수 있도록 합니다.
필요한 경우 이 목적을 위해 해당 S3 버킷과 SQS 큐를 만듭니다.
필요한 모든 IAM 권한 정책을 구성하고 위에서 만든 IAM 역할에 적용합니다.
Azure Government 클라우드의 경우 특수 스크립트는 IAM 위임 역할을 할당하는 다른 OIDC 웹 ID 공급자를 만듭니다.
자동 설치를 위한 필수 구성 요소
- 머신에 PowerShell 및 AWS CLI가 있어야 합니다.
- PowerShell 설치 지침
- AWS CLI 설치 지침(AWS 설명서 참조)
지침
스크립트를 실행하여 커넥터를 설정하려면 다음 단계를 사용합니다.
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는 커넥터 페이지에 표시됩니다. ID를 복사하여 스크립트의 프롬프트에 붙여넣습니다.
스크립트 실행이 완료되면 스크립트 출력에서 역할 ARN과 SQS URL을 복사한 다음(아래 첫 번째 스크린샷의 예제 참조), 커넥터 페이지의 2. 연결 추가 아래에 있는 해당 필드에 붙여넣습니다(아래 두 번째 스크린샷 참조).
대상 테이블 드롭다운 목록에서 데이터 형식을 선택합니다. 이렇게 하면 커넥터에서 이 연결이 어떤 AWS 서비스의 로그를 수집하기 위해 설정되는지와 수집된 데이터를 어떤 Log Analytics 테이블에 저장할지 알 수 있습니다. 연결 추가를 선택합니다.
참고 항목
스크립트 실행을 완료하는 데 최대 30분이 걸릴 수 있습니다.
수동 설치
자동 설정 스크립트를 사용하여 이 커넥터를 배포하는 것이 좋습니다. 어떤 이유로든 이 편리한 기능을 활용하지 않으려는 경우 아래 단계에 따라 커넥터를 수동으로 설정합니다.
- AWS 리소스 준비
- AWS 가정된 역할 만들기 및 AWS Sentinel 계정에 액세스 권한 부여
- S3 데이터 커넥터에 AWS 역할 및 큐 정보 추가
- 로그를 S3 버킷으로 내보내도록 AWS 서비스 구성
AWS 리소스 준비
AWS 서비스(VPC, GuardDuty CloudTrail 또는 CloudWatch)의 로그를 전달할 S3 버킷을 만듭니다.
- AWS 설명서에서 S3 스토리지 버킷 생성 지침을 참조하세요.
S3 버킷이 알림을 게시할 표준 SQS(Simple Queue Service) 메시지 큐를 만듭니다.
- AWS 설명서에서 표준 SQS(Simple Queue Service) 큐 생성 지침을 참조하세요.
SQS 큐에 알림 메시지를 보내도록 S3 버킷을 구성합니다.
- AWS 설명서의 SQS 큐에 알림을 게시하는 지침을 참조하세요.
AWS 데이터 커넥터 설치 및 환경 준비
Microsoft Sentinel의 탐색 메뉴에서 데이터 커넥터를 선택합니다.
데이터 커넥터 갤러리에서 Amazon Web Services S3을 선택합니다.
커넥터가 표시되지 않으면 Microsoft Sentinel의 콘텐츠 허브에서 Amazon Web Services 솔루션을 설치합니다. 자세한 내용은 Microsoft Sentinel 기본 제공 콘텐츠 검색 및 관리를 참조하세요.
커넥터의 세부 정보 창에서 커넥터 페이지 열기를 선택합니다.
구성에서 PowerShell 스크립트로 설정(권장)을 확장한 다음, 외부 ID(작업 영역 ID)를 클립보드에 복사합니다.
OIDC(Open ID Connect) 웹 ID 공급자 및 AWS 위임 역할 만들기
다른 브라우저 창 또는 탭에서 AWS 콘솔을 엽니다.
웹 ID 공급자를 만듭니다. AWS 설명서에서 다음 지침을 따릅니다.
OIDC(OpenID Connect) 자격 증명 공급자 생성매개 변수 선택/값 설명 클라이언트 ID - 무시합니다. 이미 있습니다. 아래 대상 그룹 줄을 참조하세요. 공급자 유형 OpenID Connect 기본 SAML 대신 공급자 URL 상업용: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
정부:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
지문 626d44e704d1ceabe3bf0d53397464ac8080142c
IAM 콘솔에서 만든 경우 지문 가져오기를 선택하면 다음과 같은 결과가 나타납니다. 대상 상업용: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
정부:api://d4230588-5f84-4281-a9c7-2c15194b28f7
IAM 위임 역할을 만듭니다. AWS 설명서에서 다음 지침을 따릅니다.
웹 ID 또는 OpenID Connect 페더레이션을 위한 역할 생성매개 변수 선택/값 설명 신뢰할 수 있는 엔터티 유형 웹 ID 기본 AWS 서비스 대신. ID 공급자 상업용: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
정부:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
이전 단계에서 만든 공급자입니다. 대상 상업용: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
정부:api://d4230588-5f84-4281-a9c7-2c15194b28f7
이전 단계에서 ID 공급자에 대해 정의한 대상 그룹입니다. 할당할 권한 AmazonSQSReadOnlyAccess
AWSLambdaSQSQueueExecutionRole
AmazonS3ReadOnlyAccess
ROSAKMSProviderPolicy
- 다양한 유형의 AWS 서비스 로그를 수집하기 위한 추가 정책
이러한 정책에 대한 자세한 내용은 Microsoft Sentinel GitHub 리포지토리의 관련 AWS S3 커넥터 권한 정책 페이지를 참조하세요. 이름 "OIDC_MicrosoftSentinelRole" Microsoft Sentinel에 대한 참조를 포함하는 의미 있는 이름을 선택합니다.
이름에는 정확한 접두사OIDC_
가 포함되어야 합니다. 그렇지 않으면 커넥터가 제대로 작동하지 않습니다.새 역할의 신뢰 정책을 편집하고 다른 조건을 추가합니다.
"sts:RoleSessionName": "MicrosoftSentinel_{WORKSPACE_ID)"
Important
sts:RoleSessionName
매개 변수의 값에는 정확한 접두사MicrosoftSentinel_
이 있어야 합니다. 그렇지 않으면 커넥터가 제대로 작동하지 않습니다.완성된 신뢰 정책은 다음과 같습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::XXXXXXXXXXXX:oidc-provider/sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/:aud": "api://d4230588-5f84-4281-a9c7-2c15194b28f7", "sts:RoleSessionName": "MicrosoftSentinel_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" } } } ] }
XXXXXXXXXXXX
는 AWS 계정 ID입니다.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
는 Microsoft Sentinel 작업 영역 ID입니다.
편집이 완료되면 정책을 업데이트(저장)합니다.
S3 데이터 커넥터에 AWS 역할 및 큐 정보 추가
AWS 콘솔에 열려 있는 브라우저 탭에서 IAM(ID 및 액세스 관리) 서비스를 입력하고 역할 목록으로 이동합니다. 위에서 만든 역할을 선택합니다.
ARN을 클립보드에 복사합니다.
Simple Queue Service를 입력하고 만든 SQS 큐를 선택한 다음, 큐의 URL을 클립보드에 복사합니다.
Microsoft Sentinel 브라우저 탭으로 돌아가면 Amazon Web Services S3(미리 보기) 데이터 커넥터 페이지가 열려 있습니다. 2. 연결 추가:
- 두 단계 전에 복사한 IAM 역할 ARN을 추가할 역할 필드에 붙여넣습니다.
- 마지막 단계에서 복사한 SQS 큐의 URL을 SQS URL 필드에 붙여넣습니다.
- 대상 테이블 드롭다운 목록에서 데이터 형식을 선택합니다. 이렇게 하면 커넥터에서 이 연결이 어떤 AWS 서비스의 로그를 수집하기 위해 설정되는지와 수집된 데이터를 어떤 Log Analytics 테이블에 저장할지 알 수 있습니다.
- 연결 추가를 선택합니다.
로그를 S3 버킷으로 내보내도록 AWS 서비스 구성
각 유형의 로그를 S3 버킷으로 보내는 지침은 Amazon Web Services 설명서(아래 링크)를 참조하세요.
-
참고 항목
로그 형식을 사용자 지정하는 경우 Log Analytics 작업 영역의 TimeGenerated 필드에 매핑되는 start 특성을 포함해야 합니다. 그러지 않으면 TimeGenerated 필드에 로그 이벤트를 정확하게 설명하지 않는 이벤트 수집 시간이 채워집니다.
-
참고 항목
AWS에서 결과는 기본적으로 6시간마다 내보내집니다. 환경 요구 사항에 따라 업데이트된 활성 결과의 내보내기 빈도를 조정합니다. 프로세스를 신속하게 진행하기 위해 15분마다 결과를 내보내도록 기본 설정을 수정할 수 있습니다. 업데이트된 활성 결과 내보내기 빈도 설정을 참조하세요.
TimeGenerated 필드에 결과의 업데이트 시간 값이 채워집니다.
AWS CloudTrail 내역은 기본적으로 S3 버킷에 저장됩니다.
알려진 문제 및 문제 해결
알려진 문제
여러 유형의 로그를 동일한 S3 버킷에 저장할 수 있지만 동일한 경로에 저장해서는 안 됩니다.
각 SQS 큐가 하나의 메시지 유형을 가리켜야 하므로 GuardDuty 결과 및 VPC 흐름 로그를 수집하려는 경우 각 유형에 대해 별도의 큐를 설정해야 합니다.
마찬가지로, 단일 SQS 큐는 S3 버킷의 경로 하나만 처리할 수 있으므로 어떤 이유로든 여러 경로에 로그를 저장하는 경우 각 경로에 전용 SQS 큐가 필요합니다.
문제 해결
Amazon Web Services S3 커넥터 문제 해결 방법을 알아보세요.
다음 단계
이 문서에서는 AWS 리소스에 연결하여 해당 로그를 Microsoft Sentinel로 수집하는 방법을 알아보았습니다. Microsoft Sentinel에 대해 자세히 알아보려면 다음 문서를 참조하세요.
- 데이터에 대한 가시성을 얻고 재적 위협을 확인하는 방법을 알아봅니다.
- Microsoft Sentinel을 사용하여 위협 탐지에서 시작합니다.
- 통합 문서를 사용하여 데이터를 모니터링합니다.