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 버킷에 기록되도록 구성합니다.

  1. AWS 콘솔에서 CloudTrail을 검색합니다.
  2. 추적 만들기를 클릭합니다.
  3. 추적 이름을 제공합니다.
  4. 새 S3 버킷 만들기를 선택합니다. 기존 S3 버킷을 사용하도록 선택할 수도 있습니다.
  5. AWS KMS 별칭 이름을 입력하거나 기존 AWS KMS 키를 선택합니다.
  6. 다른 설정을 기본값으로 두고 다음을 클릭합니다.
  7. 이벤트 유형을 선택하고 필요에 따라 데이터 이벤트를 추가한 후 다음을 클릭합니다.
  8. 검토 및 만들기에서 설정을 검토하고 트레일 만들기를 클릭합니다.
  9. AWS 콘솔에서 Amazon S3 버킷을 검색합니다.
  10. 새로 만든 로그 버킷을 클릭하고 AWSLogs 폴더를 선택합니다. 그런 다음 S3 URI 복사를 클릭하고 다음 단계에서 사용할 수 있도록 저장합니다.

SQS 큐 만들기

SQS 큐를 사용하는 것이 좋습니다. SQS 큐를 사용하는 경우 FIFO 큐가 아닌 표준 큐여야 합니다.

SQS 큐를 만드는 방법에 대한 자세한 내용은 Amazon SQS 시작하기를 참조하세요.

SQS 큐에 알림 설정

SQS 큐를 사용하는 경우 S3 버킷에서 알림을 설정하여 SQS 큐에 씁니다. 액세스 정책을 연결해야 합니다.

AWS IAM 사용자 구성

SQS 큐 (사용된 경우) 및 S3 버킷 모두에 액세스하기 위해 Google SecOps에 사용될 AWS IAM 사용자를 구성합니다.

  1. AWS 콘솔에서 IAM을 검색합니다.
  2. 사용자를 클릭한 후 다음 화면에서 사용자 추가를 클릭합니다.
  3. 사용자 이름(예: chronicle-feed-user)을 입력하고 AWS 사용자 인증 정보 유형 선택액세스 키 - 프로그래매틱 액세스로 선택한 후 다음: 권한을 클릭합니다.
  4. 다음 단계에서 기존 정책 직접 연결을 선택하고 필요에 따라 AmazonS3ReadOnlyAccess 또는 AmazonS3FullAccess를 선택합니다. Google SecOps가 AWS S3 스토리지 비용을 최적화하기 위해 로그를 읽은 후 S3 버킷을 지워야 하는 경우 AmazonS3FullAccess가 사용됩니다.
  5. 이전 단계에 대한 권장 대안으로 커스텀 정책을 생성하여 지정된 S3 버킷에 대한 액세스만 추가로 제한할 수 있습니다. 정책 만들기를 클릭하고 AWS 문서에 따라 커스텀 정책을 만듭니다.
  6. 정책을 적용할 때 sqs:DeleteMessage가 포함되었는지 확인합니다. sqs:DeleteMessage 권한이 SQS 큐에 연결되지 않았으면 Google SecOps가 메시지를 삭제할 수 없습니다. 모든 메시지가 AWS 측에 누적되어 Google SecOps가 동일한 파일을 전송하려고 반복적으로 시도할 때 지연이 발생합니다.
  7. 다음: 태그를 클릭합니다.
  8. 필요한 경우 태그를 추가하고 다음 > 검토를 클릭합니다.
  9. 구성을 검토하고 사용자 만들기를 클릭합니다.
  10. 다음 단계에서 사용하도록 생성된 사용자의 액세스 키 ID보안 비밀 액세스 키를 복사합니다.

피드 설정

Google SecOps 플랫폼에서 피드를 설정하는 두 가지 진입점이 있습니다.

  • SIEM 설정 > 피드
  • 콘텐츠 허브 > 콘텐츠 팩

SIEM 설정 > 피드에서 피드 설정

위 절차를 완료한 후 Amazon S3 버킷의 AWS 로그를 Google SecOps 인스턴스로 수집하는 피드를 만듭니다. SQS 큐를 사용하지 않는 경우 다음 절차에서 피드 소스 유형에 Amazon SQS 대신 Amazon S3를 선택합니다.

이 제품군 내에서 여러 로그 유형에 대해 여러 피드를 구성하려면 제품별 피드 구성을 참고하세요.

단일 피드를 구성하려면 다음 단계를 따르세요.

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 소스 유형 대화상자에서 Amazon S3를 선택합니다.
  5. 로그 유형 메뉴에서 AWS CloudTrail(또는 다른 AWS 서비스)을 선택합니다.
  6. 다음을 클릭합니다.
  7. 필드에 피드의 입력 매개변수를 입력합니다.
    피드 소스 유형이 Amazon S3인 경우 다음을 실행합니다.

    1. 리전을 선택하고 이전에 복사한 Amazon S3 버킷의 S3 URI를 제공합니다. 변수를 사용하여 S3 URI를 추가할 수도 있습니다.

       {{datetime("yyyy/MM/dd")}}
       
      다음 예시에서 Google Security Operations는 특정 날짜에 대해서만 로그를 매번 스캔합니다.
       s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
       

    2. URI IS A에서 하위 디렉터리 포함 디렉터리를 선택합니다. 소스 삭제 옵션에서 적절한 옵션을 선택합니다. 이전에 만든 IAM 사용자 계정의 권한과 일치하는지 확인합니다.

    3. 이전에 만든 IAM 사용자 계정의 액세스 키 ID보안 비밀 액세스 키를 입력합니다.

  8. 다음, 마침을 차례로 클릭합니다.

Content Hub에서 피드 설정하기

Google SecOps에서 Amazon SQS (권장) 또는 Amazon S3를 사용하여 수집 피드를 구성할 수 있습니다.

다음 필드의 값을 지정합니다.

  • 리전: 이전에 복사한 Amazon S3 버킷의 S3 URI를 입력합니다. 변수를 사용하여 S3 URI를 추가할 수도 있습니다.
         {{datetime("yyyy/MM/dd")}}
         
    다음 예시에서 Google SecOps는 특정 날짜에 대해서만 로그를 매번 스캔합니다.
         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 버킷에 이러한 로그를 기록하도록 지시합니다.

  1. AWS 콘솔에서 CloudTrail을 검색합니다.
  2. 추적 만들기를 클릭합니다.

    alt_text

  3. 추적 이름을 제공합니다.

  4. 새 S3 버킷 만들기를 선택합니다. 기존 S3 버킷을 사용하도록 선택할 수도 있습니다.

  5. AWS KMS 별칭 이름을 입력하거나 기존 AWS KMS 키를 선택합니다.

    alt_text

  6. 다른 설정을 기본값으로 두고 다음을 클릭합니다.

  7. 이벤트 유형을 선택하고 필요에 따라 데이터 이벤트를 추가한 후 다음을 클릭합니다.

    alt_text

  8. 검토 및 만들기에서 설정을 검토하고 트레일 만들기를 클릭합니다.

  9. AWS 콘솔에서 Amazon S3 버킷을 검색합니다.

    alt_text

  10. 새로 만든 로그 버킷을 클릭하고 AWSLogs 폴더를 선택합니다. 그런 다음 S3 URI 복사를 클릭하고 다음 단계에서 사용할 수 있도록 저장합니다.

    alt_text

AWS IAM 사용자 구성

이 단계에서는 Google SecOps에서 AWS에서 로그 피드를 가져오는 데 사용할 AWS IAM 사용자를 구성합니다.

  1. AWS 콘솔에서 IAM을 검색합니다.

    alt_text

  2. 사용자를 클릭한 후 다음 화면에서 사용자 추가를 클릭합니다.

    alt_text

  3. 사용자 이름(예: chronicle-feed-user)을 입력하고 AWS 사용자 인증 정보 유형 선택액세스 키 - 프로그래매틱 액세스로 선택한 후 다음: 권한을 클릭합니다.

    alt_text

  4. 다음 단계에서 기존 정책 직접 연결을 선택하고 필요에 따라 AmazonS3ReadOnlyAccess 또는 AmazonS3FullAccess를 선택합니다. Google SecOps가 AWS S3 스토리지 비용을 최적화하기 위해 로그를 읽은 후 S3 버킷을 지워야 하는 경우 AmazonS3FullAccess가 사용됩니다. 다음: 태그를 클릭합니다.

    alt_text

  5. 이전 단계에 대한 권장 대안으로 커스텀 정책을 생성하여 지정된 S3 버킷에 대한 액세스만 추가로 제한할 수 있습니다. 정책 만들기를 클릭하고 AWS 문서에 따라 커스텀 정책을 만듭니다.

    alt_text

  6. 필요한 경우 태그를 추가하고 다음 > 검토를 클릭합니다.

  7. 구성을 검토하고 사용자 만들기를 클릭합니다.

    alt_text

  8. 다음 단계에서 사용하도록 생성된 사용자의 액세스 키 ID보안 비밀 액세스 키를 복사합니다.

    alt_text

Google SecOps에서 AWS 로그를 수집하도록 피드 구성

  1. Google Security Operations 설정으로 이동하고 피드를 클릭합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 소스 유형으로 Amazon S3를 선택합니다.
  4. 로그 유형AWS CloudTrail(또는 기타 AWS 서비스)을 선택합니다.

alt_text

  1. 다음을 클릭합니다.
  2. 리전을 선택하고 이전에 복사한 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")}}/
    
    
  3. URI IS A 아래에서 하위 디렉터리 포함 디렉터리를 선택합니다. 소스 삭제 옵션에서 적절한 옵션을 선택합니다. 이 옵션은 이전에 만든 IAM 사용자 계정의 권한과 일치해야 합니다.

  4. 이전에 만든 IAM 사용자 계정의 액세스 키 ID보안 비밀 액세스 키를 제공합니다. alt_text

  5. 다음, 마침을 차례로 클릭합니다.

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)

이러한 로그 유형별로 피드를 만들려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 SIEM 설정 > 피드를 선택합니다.
  2. 피드 페이지에서 새 피드 추가를 클릭합니다. 피드 추가 대화상자가 표시됩니다.
  3. 소스 유형 메뉴에서 서드 파티 API를 선택합니다.
  4. 로그 유형 메뉴에서 AWS EC2 호스트를 선택합니다.
  5. 다음을 클릭합니다.
  6. 필드에 피드의 입력 매개변수를 입력합니다.
  7. 다음을 클릭한 후 마침을 클릭합니다.

각 로그 유형의 피드 설정에 대한 자세한 내용은 다음 피드 관리 문서를 참조하세요.

피드 만들기에 대한 일반적인 정보는 피드 관리 사용자 가이드 또는 피드 관리 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 전문가의 답변을 받아 보세요.