AWS 키 관리 서비스 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 문서에서는 AWS Key Management Service (KMS) 로그를 Google Security Operations로 수집하는 방법을 설명합니다. AWS KMS는 데이터를 암호화하는 데 사용되는 암호화 키를 생성하고 제어할 수 있는 완전 관리형 서비스입니다. 이 통합은 암호화 키의 사용을 모니터링하고 감사하는 데 도움이 됩니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- AWS에 대한 권한이 있는지 확인합니다.
Amazon S3 및 IAM 구성
- 버킷 만들기 사용자 가이드에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 사용할 수 있도록 버킷 이름 및 리전을 저장합니다.
- IAM 사용자 만들기 사용자 가이드에 따라 사용자를 만듭니다.
- 만든 사용자를 선택합니다.
- 보안 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키 및 비밀 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- 권한 정책 섹션에서 권한 추가를 클릭합니다.
- 권한 추가를 선택합니다.
- Attach policies directly(정책 직접 연결)를 선택합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
AWS KMS용 CloudTrail 구성
- AWS 관리 콘솔에 로그인합니다.
- 검색창에 CloudTrail을 입력하고 서비스 목록에서 선택합니다.
- 트레일 만들기를 클릭합니다.
- 트레일 이름을 입력합니다 (예: KMS-Activity-Trail).
- 조직의 모든 계정에 사용 설정 체크박스를 선택합니다.
- 앞에서 만든 S3 버킷 URI (
s3://your-log-bucket-name/
형식)를 입력하거나 새 S3 버킷을 만듭니다. - SSE-KMS가 사용 설정된 경우 AWS KMS 별칭 이름을 입력하거나 기존 AWS KMS 키를 선택합니다.
- 다른 설정은 기본값으로 두면 됩니다.
- 다음을 클릭합니다.
- 이벤트 유형에서 관리 이벤트 및 데이터 이벤트를 선택합니다.
- 다음을 클릭합니다.
- 검토 및 만들기에서 설정을 검토합니다.
- 트레일 만들기를 클릭합니다.
- 선택사항: 새 버킷을 만든 경우 다음 프로세스를 계속 진행합니다.
- S3로 이동합니다.
- 새로 만든 로그 버킷을 찾아 선택합니다.
- AWSLogs 폴더를 선택합니다.
- S3 URI 복사를 클릭하고 저장합니다.
AWS KMS 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: AWS KMS 로그).
- 소스 유형으로 Amazon S3를 선택합니다.
- 로그 유형으로 AWS KMS를 선택합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
- 리전: Amazon S3 버킷이 있는 리전입니다.
- S3 URI: 버킷 URI입니다.
s3://your-log-bucket-name/
your-log-bucket-name
을 버킷의 실제 이름으로 바꿉니다.
- URI: 디렉터리 또는 하위 디렉터리가 포함된 디렉터리를 선택합니다.
소스 삭제 옵션: 원하는 삭제 옵션을 선택합니다.
액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
애셋 네임스페이스: 애셋 네임스페이스입니다.
수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
data.detail.awsRegion | principal.location.country_or_region | 원시 로그의 data.detail.awsRegion 필드에서 직접 매핑됩니다. |
data.detail.eventCategory | security_result.category_details | 원시 로그의 data.detail.eventCategory 필드에서 직접 매핑됩니다. |
data.detail.eventName | metadata.product_event_type | 원시 로그의 data.detail.eventName 필드에서 직접 매핑됩니다. 이 필드는 로직에 따라 metadata.event_type 값을 결정합니다. eventName이 'Decrypt' 또는 'Encrypt'이면 event_type은 'USER_RESOURCE_ACCESS'이고, eventName이 'GenerateDataKey'이면 event_type은 'USER_RESOURCE_CREATION'이고, 그 외의 경우에는 event_type은 'GENERIC_EVENT'입니다. |
data.detail.requestID | additional.fields.key | 값은 파서 코드에서 'requestID'로 하드 코딩됩니다. |
data.detail.requestID | additional.fields.value.string_value | 원시 로그의 data.detail.requestID 필드에서 직접 매핑됩니다. |
data.detail.requestParameters.encryptionAlgorithm | security_result.detection_fields.key | 값은 파서 코드에서 'encryptionAlgorithm'으로 하드코딩됩니다. |
data.detail.requestParameters.encryptionAlgorithm | security_result.detection_fields.value | 원시 로그의 data.detail.requestParameters.encryptionAlgorithm 필드에서 직접 매핑됩니다. |
data.detail.resources.ARN | target.resource.id | 원시 로그의 data.detail.resources.ARN 필드에서 직접 매핑됩니다. |
data.detail.resources.type | target.resource.resource_subtype | 원시 로그의 data.detail.resources.type 필드에서 직접 매핑됩니다. |
data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.key | 값은 파서 코드에서 'mfaAuthenticated'로 하드코딩되어 있습니다. |
data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.value | 원시 로그의 data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated 필드에서 직접 매핑됩니다. |
data.detail.userIdentity.sessionContext.sessionIssuer.principalId | principal.user.userid | 원시 로그의 data.detail.userIdentity.sessionContext.sessionIssuer.principalId 필드에서 직접 매핑됩니다. |
data.detail.userIdentity.sessionContext.sessionIssuer.userName | principal.user.user_display_name | 원시 로그의 data.detail.userIdentity.sessionContext.sessionIssuer.userName 필드에서 직접 매핑됩니다. |
data.detail.userIdentity.type | principal.user.attribute.roles.name | 원시 로그의 data.detail.userIdentity.type 필드에서 직접 매핑됩니다. |
data.id | metadata.product_log_id | 원시 로그의 data.id 필드에서 직접 매핑됩니다. |
data.time | metadata.event_timestamp.seconds | 원시 로그의 data.time 필드에서 파싱된 타임스탬프의 초 값입니다. |
해당 사항 없음 | metadata.event_type | 이 필드는 data.detail.eventName 의 값을 기반으로 파서 로직에 의해 파생됩니다. eventName이 'Decrypt' 또는 'Encrypt'이면 event_type은 'USER_RESOURCE_ACCESS'이고, eventName이 'GenerateDataKey'이면 event_type은 'USER_RESOURCE_CREATION'이고, 그 외의 경우에는 event_type은 'GENERIC_EVENT'입니다. |
해당 사항 없음 | metadata.log_type | 값은 파서 코드에서 'AWS_KMS'로 하드코딩되어 있습니다. |
해당 사항 없음 | metadata.product_name | 값은 파서 코드에서 'AWS Key Management Service'로 하드코딩됩니다. |
해당 사항 없음 | metadata.vendor_name | 값은 파서 코드에서 'AMAZON'으로 하드코딩되어 있습니다. |
해당 사항 없음 | principal.asset.attribute.cloud.environment | 값은 파서 코드에서 'AMAZON_WEB_SERVICES'로 하드코딩되어 있습니다. |
변경사항
2022-05-27
- 개선사항:
- metadata.product_name에 저장된 값을 'AWS Key Management Service'로 수정했습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.