AWS CloudTrail 로그 수집
이 문서에서는 AWS CloudTrail 로그 및 문맥 데이터를 Google Security Operations로 수집하는 구성 단계를 자세히 설명합니다. 이 단계는 AWS GuardDuty, AWS VPC Flow, AWS CloudWatch, AWS Security Hub와 같은 다른 AWS 서비스의 로그 수집에도 적용됩니다.
이벤트 로그를 수집하기 위해 이 구성은 CloudTrail 로그를 Amazon Simple Storage Service (Amazon S3) 버킷으로 전달합니다. 피드 소스 유형으로 Amazon Simple Queue Service (Amazon SQS) 또는 Amazon S3를 선택할 수 있습니다.
이 문서의 첫 번째 섹션에서는 Amazon S3를 피드 소스 유형으로 사용하거나, Amazon SQS와 함께 Amazon S3를 피드 소스 유형으로 사용하여 로그를 수집하는 간단한 단계를 제공합니다.
두 번째 섹션에서는 Amazon S3를 피드 소스 유형으로 사용하기 위한 스크린샷이 포함된 보다 자세한 단계를 제공합니다. 이 섹션에서는 Amazon SQS를 다루지 않습니다.
세 번째 섹션에서는 호스트, 서비스, VPC 네트워크, 사용자의 AWS 문맥 데이터를 수집하는 방법을 설명합니다.
SQS 유무와 관계없이 S3에서 로그를 수집하는 기본 단계
이 섹션에서는 AWS CloudTrail 로그를 Google SecOps 인스턴스로 수집하기 위한 기본 단계를 설명합니다. 이 단계에서는 Amazon SQS와 함께 Amazon S3를 피드 소스 유형으로 사용하거나 선택적으로 Amazon S3를 피드 소스 유형으로 사용하여 이를 수행하는 방법을 설명합니다.
AWS CloudTrail 및 S3 구성
이 절차에서는 AWS CloudTrail 로그가 S3 버킷에 기록되도록 구성합니다.
- AWS 콘솔에서 CloudTrail을 검색합니다.
- 추적 만들기를 클릭합니다.
- 추적 이름을 제공합니다.
- 새 S3 버킷 만들기를 선택합니다. 기존 S3 버킷을 사용하도록 선택할 수도 있습니다.
- AWS KMS 별칭 이름을 입력하거나 기존 AWS KMS 키를 선택합니다.
- 다른 설정을 기본값으로 두고 다음을 클릭합니다.
- 이벤트 유형을 선택하고 필요에 따라 데이터 이벤트를 추가한 후 다음을 클릭합니다.
- 검토 및 만들기에서 설정을 검토하고 트레일 만들기를 클릭합니다.
- AWS 콘솔에서 Amazon S3 버킷을 검색합니다.
- 새로 만든 로그 버킷을 클릭하고 AWSLogs 폴더를 선택합니다. 그런 다음 S3 URI 복사를 클릭하고 다음 단계에서 사용할 수 있도록 저장합니다.
SQS 큐 만들기
SQS 큐를 사용하는 것이 좋습니다. SQS 큐를 사용하는 경우 FIFO 큐가 아닌 표준 큐여야 합니다.
SQS 큐를 만드는 방법에 대한 자세한 내용은 Amazon SQS 시작하기를 참조하세요.
SQS 큐에 알림 설정
SQS 큐를 사용하는 경우 S3 버킷에서 알림을 설정하여 SQS 큐에 씁니다. 액세스 정책을 연결해야 합니다.
AWS IAM 사용자 구성
SQS 큐 (사용된 경우) 및 S3 버킷 모두에 액세스하기 위해 Google SecOps에 사용될 AWS IAM 사용자를 구성합니다.
- AWS 콘솔에서 IAM을 검색합니다.
- 사용자를 클릭한 후 다음 화면에서 사용자 추가를 클릭합니다.
- 사용자 이름(예: chronicle-feed-user)을 입력하고 AWS 사용자 인증 정보 유형 선택을 액세스 키 - 프로그래매틱 액세스로 선택한 후 다음: 권한을 클릭합니다.
- 다음 단계에서 기존 정책 직접 연결을 선택하고 필요에 따라 AmazonS3ReadOnlyAccess 또는 AmazonS3FullAccess를 선택합니다. Google SecOps가 AWS S3 스토리지 비용을 최적화하기 위해 로그를 읽은 후 S3 버킷을 지워야 하는 경우 AmazonS3FullAccess가 사용됩니다.
- 이전 단계에 대한 권장 대안으로 커스텀 정책을 생성하여 지정된 S3 버킷에 대한 액세스만 추가로 제한할 수 있습니다. 정책 만들기를 클릭하고 AWS 문서에 따라 커스텀 정책을 만듭니다.
- 정책을 적용할 때
sqs:DeleteMessage
가 포함되었는지 확인합니다.sqs:DeleteMessage
권한이 SQS 큐에 연결되지 않았으면 Google SecOps가 메시지를 삭제할 수 없습니다. 모든 메시지가 AWS 측에 누적되어 Google SecOps가 동일한 파일을 전송하려고 반복적으로 시도할 때 지연이 발생합니다. - 다음: 태그를 클릭합니다.
- 필요한 경우 태그를 추가하고 다음 > 검토를 클릭합니다.
- 구성을 검토하고 사용자 만들기를 클릭합니다.
- 다음 단계에서 사용하도록 생성된 사용자의 액세스 키 ID 및 보안 비밀 액세스 키를 복사합니다.
피드 설정
Google SecOps 플랫폼에서 피드를 설정하는 두 가지 진입점이 있습니다.
- SIEM 설정 > 피드
- 콘텐츠 허브 > 콘텐츠 팩
SIEM 설정 > 피드에서 피드 설정
위 절차를 완료한 후 Amazon S3 버킷의 AWS 로그를 Google SecOps 인스턴스로 수집하는 피드를 만듭니다. SQS 큐를 사용하지 않는 경우 다음 절차에서 피드 소스 유형에 Amazon SQS 대신 Amazon S3를 선택합니다.
이 제품군 내에서 여러 로그 유형에 대해 여러 피드를 구성하려면 제품별 피드 구성을 참고하세요.
단일 피드를 구성하려면 다음 단계를 따르세요.
- SIEM 설정 > 피드로 이동합니다.
- 새 피드 추가를 클릭합니다.
- 다음 페이지에서 단일 피드 구성을 클릭합니다.
- 소스 유형 대화상자에서 Amazon S3를 선택합니다.
- 로그 유형 메뉴에서 AWS CloudTrail(또는 다른 AWS 서비스)을 선택합니다.
- 다음을 클릭합니다.
필드에 피드의 입력 매개변수를 입력합니다.
피드 소스 유형이 Amazon S3인 경우 다음을 실행합니다.리전을 선택하고 이전에 복사한 Amazon S3 버킷의 S3 URI를 제공합니다. 변수를 사용하여 S3 URI를 추가할 수도 있습니다.
다음 예시에서 Google Security Operations는 특정 날짜에 대해서만 로그를 매번 스캔합니다.{{datetime("yyyy/MM/dd")}}
s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
URI IS A에서 하위 디렉터리 포함 디렉터리를 선택합니다. 소스 삭제 옵션에서 적절한 옵션을 선택합니다. 이전에 만든 IAM 사용자 계정의 권한과 일치하는지 확인합니다.
이전에 만든 IAM 사용자 계정의 액세스 키 ID 및 보안 비밀 액세스 키를 입력합니다.
다음, 마침을 차례로 클릭합니다.
Content Hub에서 피드 설정하기
Google SecOps에서 Amazon SQS (권장) 또는 Amazon S3를 사용하여 수집 피드를 구성할 수 있습니다.
다음 필드의 값을 지정합니다.
- 리전: 이전에 복사한 Amazon S3 버킷의 S3 URI를 입력합니다. 변수를 사용하여 S3 URI를 추가할 수도 있습니다.
다음 예시에서 Google SecOps는 특정 날짜에 대해서만 로그를 매번 스캔합니다.{{datetime("yyyy/MM/dd")}}
s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
- URI IS A: 하위 디렉터리 포함 디렉터리를 선택합니다.
- 소스 삭제 옵션: 이전에 만든 IAM 사용자 계정의 권한과 일치하는 적절한 옵션을 선택합니다.
- 이전에 만든 IAM 사용자 계정의 액세스 키 ID 및 보안 비밀 액세스 키를 입력합니다.
고급 옵션
- 피드 이름: 피드를 식별하는 미리 입력된 값입니다.
- 소스 유형: Google SecOps로 로그를 수집하는 데 사용되는 방법입니다.
- 애셋 네임스페이스: 피드와 연결된 네임스페이스입니다.
- 수집 라벨: 이 피드의 모든 이벤트에 적용되는 라벨입니다.
S3에서 로그를 수집하는 세부 단계
AWS CloudTrail(또는 기타 서비스) 구성
다음 단계를 완료하여 AWS CloudTrail 로그를 구성하고 이전 절차에서 만든 AWS S3 버킷에 이러한 로그를 기록하도록 지시합니다.
- AWS 콘솔에서 CloudTrail을 검색합니다.
추적 만들기를 클릭합니다.
추적 이름을 제공합니다.
새 S3 버킷 만들기를 선택합니다. 기존 S3 버킷을 사용하도록 선택할 수도 있습니다.
AWS KMS 별칭 이름을 입력하거나 기존 AWS KMS 키를 선택합니다.
다른 설정을 기본값으로 두고 다음을 클릭합니다.
이벤트 유형을 선택하고 필요에 따라 데이터 이벤트를 추가한 후 다음을 클릭합니다.
검토 및 만들기에서 설정을 검토하고 트레일 만들기를 클릭합니다.
AWS 콘솔에서 Amazon S3 버킷을 검색합니다.
새로 만든 로그 버킷을 클릭하고 AWSLogs 폴더를 선택합니다. 그런 다음 S3 URI 복사를 클릭하고 다음 단계에서 사용할 수 있도록 저장합니다.
AWS IAM 사용자 구성
이 단계에서는 Google SecOps에서 AWS에서 로그 피드를 가져오는 데 사용할 AWS IAM 사용자를 구성합니다.
AWS 콘솔에서 IAM을 검색합니다.
사용자를 클릭한 후 다음 화면에서 사용자 추가를 클릭합니다.
사용자 이름(예: chronicle-feed-user)을 입력하고 AWS 사용자 인증 정보 유형 선택을 액세스 키 - 프로그래매틱 액세스로 선택한 후 다음: 권한을 클릭합니다.
다음 단계에서 기존 정책 직접 연결을 선택하고 필요에 따라 AmazonS3ReadOnlyAccess 또는 AmazonS3FullAccess를 선택합니다. Google SecOps가 AWS S3 스토리지 비용을 최적화하기 위해 로그를 읽은 후 S3 버킷을 지워야 하는 경우 AmazonS3FullAccess가 사용됩니다. 다음: 태그를 클릭합니다.
이전 단계에 대한 권장 대안으로 커스텀 정책을 생성하여 지정된 S3 버킷에 대한 액세스만 추가로 제한할 수 있습니다. 정책 만들기를 클릭하고 AWS 문서에 따라 커스텀 정책을 만듭니다.
필요한 경우 태그를 추가하고 다음 > 검토를 클릭합니다.
구성을 검토하고 사용자 만들기를 클릭합니다.
다음 단계에서 사용하도록 생성된 사용자의 액세스 키 ID 및 보안 비밀 액세스 키를 복사합니다.
Google SecOps에서 AWS 로그를 수집하도록 피드 구성
- Google Security Operations 설정으로 이동하고 피드를 클릭합니다.
- 새로 추가를 클릭합니다.
- 피드 소스 유형으로 Amazon S3를 선택합니다.
- 로그 유형에 AWS CloudTrail(또는 기타 AWS 서비스)을 선택합니다.
- 다음을 클릭합니다.
리전을 선택하고 이전에 복사한 Amazon S3 버킷의 S3 URI를 제공합니다. 또한 다음을 사용하여 S3 URI를 추가할 수 있습니다.
{{datetime("yyyy/MM/dd","+8H")}}
다음 예와 같이 Google SecOps는 특정 날짜에 대해서만 로그를 매번 검색합니다.
s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd","+8H")}}/
URI IS A 아래에서 하위 디렉터리 포함 디렉터리를 선택합니다. 소스 삭제 옵션에서 적절한 옵션을 선택합니다. 이 옵션은 이전에 만든 IAM 사용자 계정의 권한과 일치해야 합니다.
이전에 만든 IAM 사용자 계정의 액세스 키 ID 및 보안 비밀 액세스 키를 제공합니다.
다음, 마침을 차례로 클릭합니다.
AWS 문맥 데이터 수집 단계
AWS 항목(예: 호스트, 인스턴스, 사용자)에 대한 문맥 데이터를 수집하기 위해 설명 및 수집 라벨별로 나열된 다음 각 로그 유형에 대한 피드를 만듭니다.
- AWS EC2 호스트(
AWS_EC2_HOSTS
) - AWS EC2 인스턴스(
AWS_EC2_INSTANCES
) - AWS EC2 VPCS(
AWS_EC2_VPCS
) - AWS Identity and Access Management(IAM)(
AWS_IAM
)
이러한 로그 유형별로 피드를 만들려면 다음 단계를 따르세요.
- 탐색 메뉴에서 SIEM 설정 > 피드를 선택합니다.
- 피드 페이지에서 새 피드 추가를 클릭합니다. 피드 추가 대화상자가 표시됩니다.
- 소스 유형 메뉴에서 서드 파티 API를 선택합니다.
- 로그 유형 메뉴에서 AWS EC2 호스트를 선택합니다.
- 다음을 클릭합니다.
- 필드에 피드의 입력 매개변수를 입력합니다.
- 다음을 클릭한 후 마침을 클릭합니다.
각 로그 유형의 피드 설정에 대한 자세한 내용은 다음 피드 관리 문서를 참조하세요.
- AWS EC2 호스트(
AWS_EC2_HOSTS
) - AWS EC2 인스턴스(
AWS_EC2_INSTANCES
) - AWS EC2 VPCS(
AWS_EC2_VPCS
) - AWS Identity and Access Management(IAM)(
AWS_IAM
)
피드 만들기에 대한 일반적인 정보는 피드 관리 사용자 가이드 또는 피드 관리 API를 참조하세요.
필드 매핑 참조
이 파서 코드는 JSON 형식의 AWS CloudTrail 로그를 처리합니다. 먼저 원시 로그 메시지를 추출하고 구조화한 다음 '레코드' 배열의 각 레코드를 반복하여 단일 이벤트를 다중 이벤트와 동일한 형식으로 정규화합니다. 마지막으로 추출된 필드를 Google Security Operations UDM 스키마에 매핑하여 추가 컨텍스트 및 보안 관련 정보로 데이터를 보강합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
Records.0.additionalEventData .AuthenticationMethod |
additional.fields .AuthenticationMethod.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .CipherSuite |
additional.fields .CipherSuite.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .LoginTo |
additional.fields .LoginTo.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .MFAUsed |
extensions.auth.auth_details | 값이 '예'인 경우 UDM 필드는 'MFAUsed: Yes'로 설정됩니다. 그렇지 않으면 'MFAUsed: No'로 설정됩니다. |
Records.0.additionalEventData .MobileVersion |
additional.fields .MobileVersion.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .SamlProviderArn |
additional.fields .SamlProviderArn.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .SignatureVersion |
additional.fields .SignatureVersion.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.additionalEventData .bytesTransferredIn |
network.received_bytes | 원시 로그 필드에서 직접 매핑되며 부호 없는 정수로 변환됩니다. |
Records.0.additionalEventData .bytesTransferredOut |
network.sent_bytes | 원시 로그 필드에서 직접 매핑되며 부호 없는 정수로 변환됩니다. |
Records.0.additionalEventData .x-amz-id-2 |
additional.fields .x-amz-id-2.value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.awsRegion | principal.location.name | 원시 로그 필드에서 직접 매핑 |
Records.0.awsRegion | target.location.name | 원시 로그 필드에서 직접 매핑 |
Records.0.errorCode | security_result.rule_id | 원시 로그 필드에서 직접 매핑 |
Records.0.errorMessage | security_result.description | UDM 필드는 원시 로그 필드의 값과 연결된 'Reason: '으로 설정됩니다. |
Records.0.eventCategory | security_result.category_details | 원시 로그 필드에서 직접 매핑 |
Records.0.eventID | metadata.product_log_id | 원시 로그 필드에서 직접 매핑 |
Records.0.eventName | metadata.product_event_type | 원시 로그 필드에서 직접 매핑 |
Records.0.eventName | _metadata.event_type | 원시 로그 필드의 값을 기반으로 매핑됩니다. 특정 매핑은 파서 코드를 참고하세요. |
Records.0.eventSource | target.application | 원시 로그 필드에서 직접 매핑 |
Records.0.eventSource | metadata.ingestion_labels.EventSource | 원시 로그 필드에서 직접 매핑 |
Records.0.eventTime | metadata.event_timestamp | 원시 로그 필드의 직접 매핑으로, ISO8601 타임스탬프로 파싱됩니다. |
Records.0.eventVersion | metadata.product_version | 원시 로그 필드에서 직접 매핑 |
Records.0.managementEvent | additional.fields.ManagementEvent .value.string_value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.readOnly | additional.fields.ReadOnly .value.string_value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.recipientAccountId | principal.user.group_identifiers | 원시 로그 필드에서 직접 매핑 |
Records.0.recipientAccountId | target.resource.attribute .labels.Recipient Account Id.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestID | target.resource.attribute .labels.Request ID.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters | target.resource.attribute .labels |
requestParameters 내의 다양한 필드는 대상 리소스 속성 내 라벨에 매핑됩니다. 특정 매핑은 파서 코드를 참고하세요. |
Records.0.requestParameters> .AccessControlPolicy.AccessControlList .Grant.0.Grantee.URI |
target.resource.attribute .labels.AccessControlList Grantee URI.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .AccessControlPolicy.AccessControlList .Grant.1.Grantee.URI |
target.resource.attribute .labels.AccessControlList Grantee URI.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .AccessControlPolicy.AccessControlList .Grant.2.Grantee.URI |
target.resource.attribute .labels.AccessControlList Grantee URI.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .AccessControlPolicy.AccessControlList .Grant.3.Grantee.URI |
target.resource.attribute .labels.AccessControlList Grantee URI.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .AccessControlPolicy.AccessControlList .Grant.4.Grantee.URI |
target.resource.attribute .labels.AccessControlList Grantee URI.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .CreateAccessPointRequest. PublicAccessBlockConfiguration.BlockPublicAcls |
target.resource.attribute .labels.BlockPublicAcls.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .CreateAccessPointRequest. PublicAccessBlockConfiguration.BlockPublicPolicy |
target.resource.attribute .labels.BlockPublicPolicy.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .CreateAccessPointRequest. PublicAccessBlockConfiguration.IgnorePublicAcls |
target.resource.attribute .labels.IgnorePublicAcls.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .CreateAccessPointRequest. PublicAccessBlockConfiguration.RestrictPublicBuckets |
target.resource.attribute .labels.RestrictPublicBuckets.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .PublicAccessBlockConfiguration.BlockPublicAcls |
target.resource.attribute .labels.BlockPublicAcls.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .PublicAccessBlockConfiguration.BlockPublicPolicy |
target.resource.attribute .labels.BlockPublicPolicy.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .PublicAccessBlockConfiguration.IgnorePublicAcls |
target.resource.attribute .labels.IgnorePublicAcls.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .PublicAccessBlockConfiguration.RestrictPublicBuckets |
target.resource.attribute .labels.RestrictPublicBuckets.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters.accessKeyId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.allocationId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.associationId | target.resource.attribute .labels.requestParameters associationId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.certificateId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .configurationRecorder.name |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .configurationRecorderName |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .createVolumePermission.add.items.0.group |
target.resource.attribute .labels.Add Items Group.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .createVolumePermission.add.items.0.userId |
target.resource.attribute .labels.Add Items UserId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .createVolumePermission.remove.items.0.userId |
target.resource.attribute .labels.Remove Items UserId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.detectorId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.destinationId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.directoryId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.documentName | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.egress | target.resource.attribute .labels.requestParameters egress.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.emailIdentity | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.enabled | target.resource.attribute .labels.Request Enabled.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .filterSet.items.0 .valueSet.items.0.value |
target.resource.attribute .labels.requestParameters .filterSet.items.0.valueSet .items.0.value.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.functionName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .granteePrincipal |
principal.hostname | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .granteePrincipal |
principal.asset.hostname | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.groupId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.groupName | target.group.group_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.imageId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.instanceId | target.resource_ancestors.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .instanceProfileName |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.instanceType | target.resource.attribute .labels.Instance Type.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .instancesSet.items.0.instanceId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .instancesSet.items.0.maxCount |
target.resource.attribute .labels.Instance Set Max Count.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .instancesSet.items.0.minCount |
target.resource.attribute .labels.Instance Set Min Count.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters .ipPermissions.items.0 .ipRanges.items.0.cidrIp |
target.resource.attribute .labels.ipPermissions cidrIp.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .ipPermissions.items.0 .ipv6Ranges.items.0.cidrIpv6 |
target.resource.attribute .labels.ipPermissions cidrIpv6.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .ipPermissions.items.1 .ipv6Ranges.items.0.cidrIpv6 |
target.resource.attribute .labels.ipPermissions cidrIpv6.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.keyId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters. launchPermission.add.items.0.group |
target.resource.attribute .labels.Add Items Group.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters. launchPermission.add.items .0.organizationalUnitArn |
target.resource.attribute.labels .Add Items OrganizationalUnitArn .value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters. launchPermission.add.items .0.userId |
target.resource.attribute .labels.Add Items UserId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters. launchPermission.remove.items .0.organizationalUnitArn |
target.resource.attribute.labels .Remove Items OrganizationalUnitArn .value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters. launchPermission.remove.items .0.userId |
target.resource.attribute .labels.Remove Items UserId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.loadBalancerArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.logGroupIdentifier | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.logGroupName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.name | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.name | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.networkAclId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .networkInterfaceId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.parentId | target.resource_ancestors.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.policyArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .policyArns.0.arn |
target.resource.attribute .labels.Policy ARN 0.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .policyArns.1.arn |
target.resource.attribute .labels.Policy ARN 1.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.policyName | target.resource.attribute .permissions.name |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.policyName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.principalArn | principal.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.publicKeyId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.RegionName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.RegionName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.roleName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.sAMLProviderArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.secretId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.serialNumber | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .serviceSpecificCredentialId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.sendingEnabled | target.resource.attribute .labels.Request Sending Enabled.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.requestParameters.snapshotId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.sSHPublicKeyId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.stackName | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.status | target.resource.attribute .labels.Request Parameter Status.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.subnetId | target.resource.attribute .labels.Subnet Id.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .targets.0.InstanceIds |
target.resource.attribute .labels.requestParameters.targets .0.InstanceIds.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters .targets.0.key |
target.resource.attribute .labels.requestParameters.targets.0.key.value |
원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.trailName | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.userName | target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.volumeId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.requestParameters.withDecryption | security_result.detection_fields .withDecryption.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.responseElements | target.resource.attribute.labels | responseElements 내의 다양한 필드는 대상 리소스 속성 내 라벨에 매핑됩니다. 특정 매핑은 파서 코드를 참고하세요. |
Records.0.responseElements.accessKey.accessKeyId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.accessKey.status | target.resource.attribute .labels.Response Access Key Status.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.accessKey.userName | target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.allocationId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .certificate.certificateId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .certificate.status |
target.resource.attribute .labels.Certificate Status.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .certificate.userName |
target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .credentials.accessKeyId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .credentials.sessionToken |
security_result.detection_fields .sessionToken.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createAccountStatus.accountId |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createAccountStatus.accountName |
target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createAccountStatus.accountName |
target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createAccountStatus.accountName |
target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createCollectionDetail.arn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .createCollectionDetail.id |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .deleteCollectionDetail.id |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.description | target.resource.attribute .labels.Response Elements Description.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.destinationId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.detectorId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.directoryId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .domainStatus.aRN |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .domainStatus.domainId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .federatedUser.arn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .federatedUser.federatedUserId |
target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .firewall.firewallArn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .firewall.firewallId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .firewall.firewallName |
target.resource.attribute .labels.Firewall Name.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .flowLogIdSet.item |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.functionArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .group.arn |
target.group.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .group.groupName |
target.group.group_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .iamInstanceProfileAssociation.instanceId |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .iamInstanceProfileAssociation.instanceId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .image.imageId.imageDigest |
src.file.sha256 | UDM 필드는 원시 로그 필드의 'sha256:' 뒤에 오는 값으로 설정됩니다. |
Records.0.responseElements .image.imageManifestMediaType |
src.file.mime_type | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.instanceArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .instanceProfile.arn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .instancesSet.items.0.instanceId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.keyId | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .keyMetadata.arn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .keyMetadata.encryptionAlgorithms |
security_result.detection_fields .encryptionAlgorithm.value |
UDM 필드는 원시 로그 필드의 배열에 있는 각 요소의 값으로 설정됩니다. |
Records.0.responseElements .keyMetadata.keyId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.keyPairId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .listeners.0.listenerArn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .listeners.0.loadBalancerArn |
target.resource.ancestors.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .loadBalancers.0.loadBalancerArn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.newAssociationId | target.resource.attribute.labels .responseElements newAssociationId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.packedPolicySize | security_result.detection_fields .packedPolicySize.value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.0.responseElements .publicKey.publicKeyId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.sAMLProviderArn | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .sSHPublicKey.sSHPublicKeyId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .sSHPublicKey.status |
target.resource.attribute .labels.SSH Public Key Status.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .securityGroupRuleSet.items.0.groupId |
security_result.rule_labels.Group Id.value | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .securityGroupRuleSet.items.0.ipProtocol |
network.ip_protocol | 원시 로그 필드의 직접 매핑으로, 대문자로 변환됩니다. |
Records.0.responseElements .securityGroupRuleSet.items.0.isEgress |
network.direction | 값이 'false'인 경우 UDM 필드가 'INBOUND'로 설정됩니다. 그렇지 않으면 'OUTBOUND'로 설정됩니다. |
Records.0.responseElements .securityGroupRuleSet.items.0.securityGroupRuleId |
security_result.rule_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .serviceSpecificCredential.serviceName |
target.resource.attribute.labels .특정 사용자 인증 정보 서비스 이름 .값 |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .serviceSpecificCredential.serviceSpecificCredentialId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .serviceSpecificCredential.serviceUserName |
target.resource.attribute.labels .특정 사용자 인증 정보 서비스 사용자 이름 .값 |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .serviceSpecificCredential.status |
target.resource.attribute .labels.Specific Credential Status.value |
원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .serviceSpecificCredential.userName |
target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.snapshotId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.stackId | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .tableDescription.tableArn |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .tableDescription.tableId |
target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.trailARN | target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .user.arn |
target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .user.userId |
target.user.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .user.userName |
target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements .virtualMFADevice.serialNumber |
target.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.responseElements.volumeId | target.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.resources | target.resource | 리소스 배열의 첫 번째 요소는 타겟 리소스에 매핑됩니다. 다른 요소는 about 필드에 매핑됩니다. |
Records.0.sharedEventID | additional.fields.SharedEventID .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.sourceIPAddress | principal.asset.ip | 원시 로그 필드에서 직접 매핑 |
Records.0.sourceIPAddress | principal.ip | 원시 로그 필드에서 직접 매핑 |
Records.0.sourceIPAddress | src_ip | 원시 로그 필드에서 직접 매핑 |
Records.0.tlsDetails.cipherSuite | network.tls.cipher | 원시 로그 필드에서 직접 매핑 |
Records.0.tlsDetails.clientProvidedHostHeader | security_result.detection_fields .clientProvidedHostHeader.value |
원시 로그 필드에서 직접 매핑 |
Records.0.tlsDetails.tlsVersion | network.tls.version | 원시 로그 필드에서 직접 매핑 |
Records.0.userAgent | network.http.user_agent | 원시 로그 필드에서 직접 매핑 |
Records.0.userAgent | network.http.parsed_user_agent | 원시 로그 필드의 직접 매핑으로, 사용자 에이전트 문자열로 파싱됩니다. |
Records.0.userIdentity.accessKeyId | additional.fields.accessKeyId .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.accountId | principal.resource.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.accountId | principal.user.group_identifiers | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.arn | principal.resource.name | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.arn | principal.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.arn | target.user.attribute .labels.ARN.value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.invokedBy | principal.user.userid | UDM 필드는 원시 로그 필드에서 '.amazonaws.com' 앞에 있는 값으로 설정됩니다. |
Records.0.userIdentity.principalId | principal.user.product_object_id | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.principalId | principal.user.attribute .labels.principalId.value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity .sessionContext.attributes.mfaAuthenticated |
principal.user.attribute .labels.mfaAuthenticated.value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity .sessionContext.sessionIssuer.arn |
target.user.attribute .labels.ARN.value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity .sessionContext.sessionIssuer.principalId |
target.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity .sessionContext.sessionIssuer.type |
target.user.attribute .labels.Type.value |
원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity .sessionContext.sessionIssuer.userName |
target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.type | principal.resource.resource_subtype | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.type | principal.resource.type | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.userName | principal.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.userName | src.user.userid | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.userName | src.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.0.userIdentity.userName | target.user.user_display_name | 원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .AuthenticationMethod |
additional.fields.AuthenticationMethod .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .CipherSuite |
additional.fields.CipherSuite .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .LoginTo |
additional.fields.LoginTo .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .MFAUsed |
extensions.auth.auth_details | 값이 '예'인 경우 UDM 필드는 'MFAUsed: Yes'로 설정됩니다. 그렇지 않으면 'MFAUsed: No'로 설정됩니다. |
Records.1.additionalEventData .MobileVersion |
additional.fields.MobileVersion .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .SamlProviderArn |
additional.fields.SamlProviderArn .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .SignatureVersion |
additional.fields.SignatureVersion .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.additionalEventData .bytesTransferredIn |
network.received_bytes | 원시 로그 필드에서 직접 매핑되며 부호 없는 정수로 변환됩니다. |
Records.1.additionalEventData .bytesTransferredOut |
network.sent_bytes | 원시 로그 필드에서 직접 매핑되며 부호 없는 정수로 변환됩니다. |
Records.1.additionalEventData .x-amz-id-2 |
additional.fields.x-amz-id-2 .value.string_value |
원시 로그 필드에서 직접 매핑 |
Records.1.awsRegion | principal.location.name | 원시 로그 필드에서 직접 매핑 |
Records.1.awsRegion | target.location.name | 원시 로그 필드에서 직접 매핑 |
Records.1.errorCode | security_result.rule_id | 원시 로그 필드에서 직접 매핑 |
Records.1.errorMessage | security_result.description | UDM 필드는 원시 로그 필드의 값과 연결된 'Reason: '으로 설정됩니다. |
Records.1.eventCategory | security_result.category_details | 원시 로그 필드에서 직접 매핑 |
Records.1.eventID | metadata.product_log_id | 원시 로그 필드에서 직접 매핑 |
Records.1.eventName | metadata.product_event_type | 원시 로그 필드에서 직접 매핑 |
Records.1.eventName | _metadata.event_type | 원시 로그 필드의 값을 기반으로 매핑됩니다. 특정 매핑은 파서 코드를 참고하세요. |
Records.1.eventSource | target.application | 원시 로그 필드에서 직접 매핑 |
Records.1.eventSource | metadata.ingestion_labels.EventSource | 원시 로그 필드에서 직접 매핑 |
Records.1.eventTime | metadata.event_timestamp | 원시 로그 필드의 직접 매핑으로, ISO8601 타임스탬프로 파싱됩니다. |
Records.1.eventVersion | metadata.product_version | 원시 로그 필드에서 직접 매핑 |
Records.1.managementEvent | additional.fields.ManagementEvent .value.string_value |
원시 로그 필드의 직접 매핑으로, 문자열로 변환됩니다. |
Records.1.readOnly | additional.fields.ReadOnly .value |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받아 보세요.