AWS EC2 인스턴스 로그 수집
이 문서에서는 모니터링 및 분석을 위해 AWS EC2 인스턴스 로그를 Google Security Operations로 구성하는 방법을 설명합니다. 파서는 인스턴스 예약 JSON 로그에서 데이터를 추출하고, UDM을 준수하도록 필드를 재구성 및 이름을 바꾸며, 네트워크 인터페이스, 그룹, 태그를 비롯한 다양한 데이터 유형과 중첩된 구조를 처리하는 동시에 애셋 관계 및 메타데이터를 생성합니다. 또한 오류 처리를 실행하고 잘못된 형식의 JSON 메시지를 삭제합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- AWS에 대한 권한이 있는지 확인합니다.
AWS IAM 및 S3 구성
- 버킷 만들기 사용자 가이드에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 사용할 수 있도록 버킷 이름 및 리전을 저장합니다.
- IAM 사용자 만들기 사용자 가이드에 따라 사용자를 만듭니다.
- 만든 사용자를 선택합니다.
- 보안 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키와 비밀 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- 권한 정책 섹션에서 권한 추가를 클릭합니다.
- 권한 추가를 선택합니다.
- Attach policies directly(정책 직접 연결)를 선택합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
로그를 CloudWatch Logs로 전송하도록 EC2 구성
SSH를 사용하여 EC2 인스턴스에 연결하고 인증을 위해 키 쌍을 제공합니다.
ssh -i your-key.pem ec2-user@your-ec2-public-ip
CloudWatch Logs 에이전트를 설치합니다.
- Amazon Linux에 CloudWatch Logs 에이전트를 설치하려면 다음 명령어를 사용합니다.
sudo yum install -y awslogs
- Ubuntu에 CloudWatch Logs 에이전트를 설치하려면 다음 명령어를 사용합니다.
sudo apt-get install -y awslogs
CloudWatch Logs 구성 파일을 엽니다.
sudo vi /etc/awslogs/awslogs.conf
이 로그 인스턴스 메타데이터를 가져와 파일에 쓰는 스크립트를 만듭니다.
#!/bin/bash echo "Architecture: $(curl -s http://169.254.169.254/latest/meta-data/architecture)" >> /var/log/instance_metadata.log echo "AmiLaunchIndex: $(curl -s http://169.254.169.254/latest/meta-data/ami-launch-index)" >> /var/log/instance_metadata.log echo "BootMode: $(curl -s http://169.254.169.254/latest/meta-data/boot-mode)" >> /var/log/instance_metadata.log
스크립트를
/etc/init.d/metadata_script.sh
로 저장하고 crontab 또는rc.local
을 사용하여 인스턴스 시작 시 실행합니다.CloudWatch Logs 에이전트의 구성 파일을 엽니다.
sudo vi /etc/awslogs/awslogs.conf
구성 파일에 다음을 추가합니다.
[/var/log/messages] file = /var/log/messages log_group_name = /ec2/system/logs log_stream_name = {instance_id} [/var/log/secure] file = /var/log/secure log_group_name = /ec2/security/logs log_stream_name = {instance_id} [/var/log/auth.log] file = /var/log/auth.log log_group_name = /ec2/auth/logs log_stream_name = {instance_id} [/var/log/httpd/access_log] file = /var/log/httpd/access_log log_group_name = /ec2/application/apache/access_logs log_stream_name = {instance_id} [/var/log/httpd/error_log] file = /var/log/httpd/error_log log_group_name = /ec2/application/apache/error_logs log_stream_name = {instance_id}
구성을 저장하고 편집기를 종료합니다.
CloudWatch Logs 에이전트를 시작합니다.
- Amazon Linux의 경우:
sudo service awslogs start
- Ubuntu:
sudo service awslogs start
에이전트가 실행 중인지 확인합니다.
sudo service awslogs status
Lambda 및 S3의 IAM 권한 구성
AWS IAM 콘솔에서 다음 권한이 있는 새 IAM 역할을 만듭니다.
logs:PutSubscriptionFilter
logs:DescribeLogGroups
logs:GetLogEvents
s3:PutObject
로그를 S3로 내보내는 Lambda 함수에 이 역할을 연결합니다.
S3로 로그를 내보내도록 Lambda 구성
Lambda 콘솔로 이동하여 새 함수를 만듭니다.
import boto3 import gzip from io import BytesIO s3 = boto3.client('s3') logs = boto3.client('logs') def lambda_handler(event, context): log_group = event['logGroup'] log_stream = event['logStream'] log_events = logs.get_log_events( logGroupName=log_group, logStreamName=log_stream, startFromHead=True ) log_data = "\n".join([event['message'] for event in log_events['events']]) # Compress and upload to S3 compressed_data = gzip.compress(log_data.encode('utf-8')) s3.put_object( Bucket='your-s3-bucket-name', Key='logs/ec2-log.gz', Body=compressed_data ) ```
your-s3-bucket-name
을 S3 버킷의 실제 이름으로 바꿉니다.
앞에서 만든 Lambda 함수에 IAM 역할을 연결합니다.
CloudWatch 콘솔에서 로그 섹션으로 이동합니다.
로그 그룹을 선택합니다(예:
/ec2/system/logs
).작업 > 구독 필터 만들기를 클릭합니다.
대상을 이전에 만든 람다 함수로 설정합니다.
AWS EC2 인스턴스 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다(예: AWS EC2 인스턴스 로그).
- 소스 유형으로 Amazon S3를 선택합니다.
- 로그 유형으로 AWS EC2 인스턴스를 선택합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
- 리전: Amazon S3 버킷이 있는 리전입니다.
- S3 URI: 버킷 URI입니다.
s3://your-log-bucket-name/
your-log-bucket-name
을 버킷의 실제 이름으로 바꿉니다.
- URI: 디렉터리 또는 하위 디렉터리가 포함된 디렉터리를 선택합니다.
소스 삭제 옵션: 원하는 삭제 옵션을 선택합니다.
액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
애셋 네임스페이스: 애셋 네임스페이스입니다.
수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
Architecture |
entity.entity.asset.attribute.labels.key=instances_set_architecture , entity.entity.asset.attribute.labels.value |
이 값은 원시 로그의 Instances.Architecture 필드에서 직접 가져옵니다. |
AmiLaunchIndex |
entity.entity.asset.attribute.labels.key=instances_set_ami_launch_index , entity.entity.asset.attribute.labels.value |
이 값은 원시 로그의 Instances.AmiLaunchIndex 필드에서 직접 가져옵니다. |
BlockDeviceMapping.Ebs.AttachTime |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_attach_time , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.BlockDeviceMapping.Ebs.AttachTime 에서 가져옵니다. |
BlockDeviceMapping.Ebs.DeleteOnTermination |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_delete_on_termination , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.BlockDeviceMapping.Ebs.DeleteOnTermination 에서 가져옵니다. |
BlockDeviceMapping.Ebs.Status |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_volume_status , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.BlockDeviceMapping.Ebs.Status 에서 가져옵니다. |
BlockDeviceMapping.Ebs.VolumeID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=VOLUME |
값은 Instances.BlockDeviceMapping.Ebs.VolumeID 에서 가져옵니다. |
BlockDeviceMapping.Name |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_device_name , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.BlockDeviceMapping.Name 에서 가져옵니다. |
BootMode |
entity.entity.asset.attribute.labels.key=instances_set_boot_mode , entity.entity.asset.attribute.labels.value |
값은 Instances.BootMode 에서 가져옵니다. |
CapacityReservationID |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_id , entity.entity.asset.attribute.labels.value |
값은 Instances.CapacityReservationID 에서 가져옵니다. |
CapacityReservationSpecification.CapacityReservationPreference |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_specification_capacity_reservation_preference , entity.entity.asset.attribute.labels.value |
값은 Instances.CapacityReservationSpecification.CapacityReservationPreference 에서 가져옵니다. |
CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationID |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_specification_capacity_reservation_target_capacity_reservation_id , entity.entity.asset.attribute.labels.value |
값은 Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationID 에서 가져옵니다. |
CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Capacity Reservation Arn |
값은 Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn 에서 가져옵니다. |
ClientToken |
entity.entity.asset.attribute.labels.key=instances_set_client_token , entity.entity.asset.attribute.labels.value |
값은 Instances.ClientToken 에서 가져옵니다. |
CPU.AmdSevSnp |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_amd_sev_snp , entity.entity.asset.attribute.labels.value |
값은 Instances.CPU.AmdSevSnp 에서 가져옵니다. |
CPU.CoreCount |
entity.entity.asset.hardware.cpu_number_cores |
값은 Instances.CPU.CoreCount 에서 가져옵니다. |
CPU.ThreadsPerCore |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_threads_per_core , entity.entity.asset.attribute.labels.value |
값은 Instances.CPU.ThreadsPerCore 에서 가져옵니다. |
CurrentInstanceBootMode |
entity.entity.asset.attribute.labels.key=instances_set_current_instance_boot_mode , entity.entity.asset.attribute.labels.value |
값은 Instances.CurrentInstanceBootMode 에서 가져옵니다. |
DNSName |
entity.entity.network.dns_domain |
값은 Instances.DNSName 에서 가져옵니다. |
EbsOptimized |
entity.entity.asset.attribute.labels.key=instances_set_ebs_optimized , entity.entity.asset.attribute.labels.value |
값은 Instances.EbsOptimized 에서 가져옵니다. |
ElasticGpuAssociationSet.ElasticGpuAssociationID |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_id , entity.entity.asset.attribute.labels.value |
값은 Instances.ElasticGpuAssociationSet.ElasticGpuAssociationID 에서 가져옵니다. |
ElasticGpuAssociationSet.ElasticGpuAssociationState |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_state , entity.entity.asset.attribute.labels.value |
값은 Instances.ElasticGpuAssociationSet.ElasticGpuAssociationState 에서 가져옵니다. |
ElasticGpuAssociationSet.ElasticGpuAssociationTime |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_time , entity.entity.asset.attribute.labels.value |
값은 Instances.ElasticGpuAssociationSet.ElasticGpuAssociationTime 에서 가져옵니다. |
ElasticGpuAssociationSet.ElasticGpuID |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_id , entity.entity.asset.attribute.labels.value |
값은 Instances.ElasticGpuAssociationSet.ElasticGpuID 에서 가져옵니다. |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Elastic Interface Accelerator Arn |
값은 Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorArn 에서 가져옵니다. |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationID |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_id , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationID 에서 가져옵니다. |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationState |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_state , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationState 에서 가져옵니다. |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationTime |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_time , entity.entity.resource_ancestors.attribute.labels.value |
값은 Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationTime 에서 가져옵니다. |
EnaSupport |
entity.entity.asset.attribute.labels.key=instances_set_ena_support , entity.entity.asset.attribute.labels.value |
값은 Instances.EnaSupport 에서 가져옵니다. |
EnclaveOptions.Enabled |
entity.entity.asset.attribute.labels.key=instances_set_enclave_options_enabled , entity.entity.asset.attribute.labels.value |
값은 Instances.EnclaveOptions.Enabled 에서 가져옵니다. |
GroupSet.GroupID |
entity.entity.group.product_object_id , entity.entity.group.attribute.labels.key=group_set_group_id , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_group_set_group_id , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_id , entity.entity.group.attribute.labels.value |
값은 GroupSet.GroupID 에서 가져옵니다. 배열의 첫 번째 GroupID 는 entity.entity.group.product_object_id 에 매핑됩니다. 후속 GroupID 값은 라벨로 매핑됩니다. |
GroupSet.GroupName |
entity.entity.group.group_display_name , entity.entity.group.attribute.labels.key=group_set_group_name , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_group_set_group_name , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_name , entity.entity.group.attribute.labels.value |
값은 GroupSet.GroupName 에서 가져옵니다. 배열의 첫 번째 GroupName 는 entity.entity.group.group_display_name 에 매핑됩니다. 후속 GroupName 값은 라벨로 매핑됩니다. |
HibernationOptions |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options , entity.entity.asset.attribute.labels.value |
값은 Instances.HibernationOptions 에서 가져옵니다. |
HibernationOptions.Configured |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options_configured , entity.entity.asset.attribute.labels.value |
값은 Instances.HibernationOptions.Configured 에서 가져옵니다. |
Hypervisor |
entity.entity.asset.attribute.labels.key=instances_set_hypervisor , entity.entity.asset.attribute.labels.value |
값은 Instances.Hypervisor 에서 가져옵니다. |
IamInstanceProfile.Arn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Instance Profile Arn |
값은 Instances.IamInstanceProfile.Arn 에서 가져옵니다. |
IamInstanceProfile.ID |
entity.entity.resource_ancestors.product_object_id |
값은 Instances.IamInstanceProfile.ID 에서 가져옵니다. |
ImageID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=IMAGE |
값은 Instances.ImageID 에서 가져옵니다. |
InstanceID |
entity.metadata.product_entity_id , entity.entity.asset.asset_id |
값은 Instances.InstanceID 에서 가져옵니다. |
InstanceLifecycle |
entity.entity.asset.attribute.labels.key=instances_set_instance_lifecycle , entity.entity.asset.attribute.labels.value |
값은 Instances.InstanceLifecycle 에서 가져옵니다. |
InstanceState.Code |
entity.entity.asset.attribute.labels.key=instances_set_instance_state_code , entity.entity.asset.attribute.labels.value |
값은 Instances.InstanceState.Code 에서 가져옵니다. |
InstanceState.Name |
entity.entity.asset.deployment_status |
값은 Instances.InstanceState.Name 에서 가져옵니다. 값이 running 이면 UDM 필드가 ACTIVE 로 설정됩니다. 값이 shutting-down 또는 stopping 인 경우 UDM 필드가 PENDING_DECOMMISSION 로 설정됩니다. 값이 stopped 또는 terminated 인 경우 UDM 필드가 DECOMMISSIONED 로 설정됩니다. |
InstanceType |
entity.entity.asset.category |
값은 Instances.InstanceType 에서 가져옵니다. |
IPAddress |
entity.entity.asset.ip |
값은 Instances.IPAddress 에서 가져옵니다. |
Ipv6Address |
entity.entity.asset.ip |
값은 Instances.Ipv6Address 에서 가져옵니다. |
KernelID |
entity.entity.asset.attribute.labels.key=instances_set_kernel_id , entity.entity.asset.attribute.labels.value |
값은 Instances.KernelID 에서 가져옵니다. |
KeyName |
entity.entity.asset.attribute.labels.key=instances_set_key_name , entity.entity.asset.attribute.labels.value |
값은 Instances.KeyName 에서 가져옵니다. |
LaunchTime |
entity.metadata.creation_timestamp |
값은 Instances.LaunchTime 에서 가져옵니다. |
LicenseSet.LicenseConfigurationArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=License Configuration Arn |
값은 Instances.LicenseSet.LicenseConfigurationArn 에서 가져옵니다. |
MaintenanceOptions |
entity.entity.asset.attribute.labels.key=instances_set_maintenance_options_auto_recovery , entity.entity.asset.attribute.labels.value |
값은 Instances.MaintenanceOptions 에서 가져옵니다. |
MetadataOptions.HTTPEndpoint |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_endpoint , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.HTTPEndpoint 에서 가져옵니다. |
MetadataOptions.HTTPProtocolIpv6 |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_protocol_ipv6 , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.HTTPProtocolIpv6 에서 가져옵니다. |
MetadataOptions.HTTPPutResponseHopLimit |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_put_response_hop_limit , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.HTTPPutResponseHopLimit 에서 가져옵니다. |
MetadataOptions.HTTPTokens |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_tokens , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.HTTPTokens 에서 가져옵니다. |
MetadataOptions.InstanceMetadataTags |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_instance_metadata_tags , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.InstanceMetadataTags 에서 가져옵니다. |
MetadataOptions.State |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_state , entity.entity.asset.attribute.labels.value |
값은 Instances.MetadataOptions.State 에서 가져옵니다. |
Monitoring.State |
entity.entity.asset.attribute.labels.key=instances_set_monitoring_state , entity.entity.asset.attribute.labels.value |
값은 Instances.Monitoring.State 에서 가져옵니다. |
NetworkInterfaceSet.Association.CarrierIP |
entity.entity.asset.nat_ip |
값은 Instances.NetworkInterfaceSet.Association.CarrierIP 에서 가져옵니다. |
NetworkInterfaceSet.Association.CustomerOwnedIP |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_customer_owned_ip , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Association.CustomerOwnedIP 에서 가져옵니다. |
NetworkInterfaceSet.Association.IPOwnerID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_ip_owner_id , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_association_ip_owner_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Association.IPOwnerID 에서 가져옵니다. |
NetworkInterfaceSet.Association.PublicDNSName |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_public_dns_name , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_association_public_dns_name , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Association.PublicDNSName 에서 가져옵니다. |
NetworkInterfaceSet.Association.PublicIP |
entity.entity.asset.ip |
값은 Instances.NetworkInterfaceSet.Association.PublicIP 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.AttachTime |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_attach_time , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.AttachTime 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.AttachmentID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_attachment_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.AttachmentID 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.DeleteOnTermination |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_delete_on_termination , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.DeleteOnTermination 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.DeviceIndex |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_device_index , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.DeviceIndex 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.NetworkCardIndex |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_network_card_index , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.NetworkCardIndex 에서 가져옵니다. |
NetworkInterfaceSet.Attachment.Status |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_status , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Attachment.Status 에서 가져옵니다. |
NetworkInterfaceSet.Description |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_description , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Description 에서 가져옵니다. |
NetworkInterfaceSet.GroupSet.GroupID |
entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_id , entity.entity.group.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.GroupSet.GroupID 에서 가져옵니다. |
NetworkInterfaceSet.GroupSet.GroupName |
entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_name , entity.entity.group.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.GroupSet.GroupName 에서 가져옵니다. |
NetworkInterfaceSet.InterfaceType |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_interface_type , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.InterfaceType 에서 가져옵니다. |
NetworkInterfaceSet.Ipv6AddressesSet.Ipv6Address |
entity.entity.asset.ip |
값은 Instances.NetworkInterfaceSet.Ipv6AddressesSet.Ipv6Address 에서 가져옵니다. |
NetworkInterfaceSet.Ipv6AddressesSet.IsPrimaryIpv6 |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_ipv6_addresses_set_is_primary_ipv6 , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Ipv6AddressesSet.IsPrimaryIpv6 에서 가져옵니다. |
NetworkInterfaceSet.MacAddress |
entity.entity.asset.mac |
값은 Instances.NetworkInterfaceSet.MacAddress 에서 가져옵니다. |
NetworkInterfaceSet.NetworkInterfaceID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_network_interface_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.NetworkInterfaceID 에서 가져옵니다. |
NetworkInterfaceSet.OwnerID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_owner_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.OwnerID 에서 가져옵니다. |
NetworkInterfaceSet.PrivateDNSName |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_dns_name , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_private_dns_name , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.PrivateDNSName 에서 가져옵니다. |
NetworkInterfaceSet.PrivateIPAddress |
entity.entity.asset.ip |
값은 Instances.NetworkInterfaceSet.PrivateIPAddress 에서 가져옵니다. |
NetworkInterfaceSet.PrivateIPAddressesSet.Primary |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_primary , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.PrivateIPAddressesSet.Primary 에서 가져옵니다. |
NetworkInterfaceSet.PrivateIPAddressesSet.PrivateIPAddress |
entity.entity.asset.ip |
값은 Instances.NetworkInterfaceSet.PrivateIPAddressesSet.PrivateIPAddress 에서 가져옵니다. |
NetworkInterfaceSet.SourceDestCheck |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_source_dest_check , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.SourceDestCheck 에서 가져옵니다. |
NetworkInterfaceSet.Status |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_status , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.Status 에서 가져옵니다. |
NetworkInterfaceSet.SubnetID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_subnet_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.SubnetID 에서 가져옵니다. |
NetworkInterfaceSet.VpcID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_vpc_id , entity.entity.asset.attribute.labels.value |
값은 Instances.NetworkInterfaceSet.VpcID 에서 가져옵니다. |
OutpostArn |
entity.relations.entity.asset.product_object_id |
값은 Instances.OutpostArn 에서 가져옵니다. |
Placement.Affinity |
entity.entity.asset.attribute.labels.key=instances_set_placement_affinity , entity.entity.asset.attribute.labels.value |
값은 Instances.Placement.Affinity 에서 가져옵니다. |
Placement.AvailabilityZone |
entity.entity.asset.attribute.cloud.availability_zone |
값은 Instances.Placement.AvailabilityZone 에서 가져옵니다. |
Placement.GroupID |
entity.entity.group.attribute.labels.key=instances_set_placement_group_id , entity.entity.group.attribute.labels.value |
값은 Instances.Placement.GroupID 에서 가져옵니다. |
Placement.GroupName |
entity.entity.group.attribute.labels.key=instances_set_placement_group_name , entity.entity.group.attribute.labels.value |
값은 Instances.Placement.GroupName 에서 가져옵니다. |
Placement.HostID |
entity.relations.entity.asset.asset_id |
값은 Instances.Placement.HostID 에서 가져옵니다. |
Placement.HostResourceGroupArn |
entity.relations.entity.asset.attribute.labels.key=instances_set_placement_host_resource_group_arn , entity.relations.entity.asset.attribute.labels.value |
값은 Instances.Placement.HostResourceGroupArn 에서 가져옵니다. |
Placement.PartitionNumber |
entity.entity.asset.attribute.labels.key=instances_set_placement_partition_number , entity.entity.asset.attribute.labels.value |
값은 Instances.Placement.PartitionNumber 에서 가져옵니다. |
Placement.SpreadDomain |
entity.entity.asset.attribute.labels.key=instances_set_placement_spread_domain , entity.entity.asset.attribute.labels.value |
값은 Instances.Placement.SpreadDomain 에서 가져옵니다. |
Placement.Tenancy |
entity.entity.asset.attribute.labels.key=instances_set_placement_tenancy , entity.entity.asset.attribute.labels.value |
값은 Instances.Placement.Tenancy 에서 가져옵니다. |
PlatformDetails |
entity.entity.asset.attribute.labels.key=instances_set_platform_details , entity.entity.asset.attribute.labels.value |
값은 Instances.PlatformDetails 에서 가져옵니다. |
PrivateDNSName |
entity.entity.network.dns.questions.name |
값은 Instances.PrivateDNSName 에서 가져옵니다. |
PrivateDNSNameOptions.EnableResourceNameDnsAAAARecord |
entity.entity.network.dns.questions.type |
값이 true 이면 UDM 필드가 28로 설정됩니다. |
PrivateDNSNameOptions.EnableResourceNameDnsARecord |
entity.entity.network.dns.questions.type |
값이 true 이면 UDM 필드가 1로 설정됩니다. |
PrivateDNSNameOptions.HostnameType |
entity.entity.asset.attribute.labels.key=instances_set_private_dns_name_options_hostname_type , entity.entity.asset.attribute.labels.value |
값은 Instances.PrivateDNSNameOptions.HostnameType 에서 가져옵니다. |
PrivateIPAddress |
entity.entity.asset.ip |
값은 Instances.PrivateIPAddress 에서 가져옵니다. |
ProductCodes.ProductCode |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_product_code , entity.entity.asset.attribute.labels.value |
값은 Instances.ProductCodes.ProductCode 에서 가져옵니다. |
ProductCodes.Type |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_type , entity.entity.asset.attribute.labels.value |
값은 Instances.ProductCodes.Type 에서 가져옵니다. |
RamdiskID |
entity.entity.asset.attribute.labels.key=instances_set_ramdisk_id , entity.entity.asset.attribute.labels.value |
값은 Instances.RamdiskID 에서 가져옵니다. |
Reason |
entity.entity.asset.attribute.labels.key=instances_set_reason , entity.entity.asset.attribute.labels.value |
값은 Instances.Reason 에서 가져옵니다. |
ReservationID |
entity.additional.fields.key=reservation_id , entity.additional.fields.value.string_value |
값은 ReservationID 에서 가져옵니다. |
RequesterID |
entity.additional.fields.key=requester_id , entity.additional.fields.value.string_value |
값은 RequesterID 에서 가져옵니다. |
RootDeviceName |
entity.entity.asset.attribute.labels.key=instances_set_root_device_name , entity.entity.asset.attribute.labels.value |
값은 Instances.RootDeviceName 에서 가져옵니다. |
RootDeviceType |
entity.entity.asset.attribute.labels.key=instances_set_root_device_type , entity.entity.asset.attribute.labels.value |
값은 Instances.RootDeviceType 에서 가져옵니다. |
SourceDestCheck |
entity.entity.asset.attribute.labels.key=instances_set_source_dest_check , entity.entity.asset.attribute.labels.value |
값은 Instances.SourceDestCheck 에서 가져옵니다. |
SpotInstanceRequestID |
entity.entity.asset.attribute.labels.key=instances_set_spot_instance_request_id , entity.entity.asset.attribute.labels.value |
값은 Instances.SpotInstanceRequestID 에서 가져옵니다. |
SriovNetSupport |
entity.entity.asset.attribute.labels.key=instances_set_sriov_net_support , entity.entity.asset.attribute.labels.value |
값은 Instances.SriovNetSupport 에서 가져옵니다. |
StateReason |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code , entity.entity.asset.attribute.labels.value |
값은 Instances.StateReason 에서 가져옵니다. |
StateReason.Code |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code , entity.entity.asset.attribute.labels.value |
값은 Instances.StateReason.Code 에서 가져옵니다. |
StateReason.Message |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_message , entity.entity.asset.attribute.labels.value |
값은 Instances.StateReason.Message 에서 가져옵니다. |
SubnetID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=SUBNET |
값은 Instances.SubnetID 에서 가져옵니다. |
TagSet.Key |
entity.entity.asset.attribute.labels.key |
값은 Instances.TagSet.Key 에서 가져옵니다. |
TagSet.Value |
entity.entity.asset.attribute.labels.value |
값은 Instances.TagSet.Value 에서 가져옵니다. |
TpmSupport |
entity.entity.asset.attribute.labels.key=instances_set_tpm_support , entity.entity.asset.attribute.labels.value |
값은 Instances.TpmSupport 에서 가져옵니다. |
UsageOperation |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation , entity.entity.asset.attribute.labels.value |
값은 Instances.UsageOperation 에서 가져옵니다. |
UsageOperationUpdateTime |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation_update_time , entity.entity.asset.attribute.labels.value |
값은 Instances.UsageOperationUpdateTime 에서 가져옵니다. |
VirtualizationType |
entity.entity.asset.attribute.labels.key=instances_set_virtualization_type , entity.entity.asset.attribute.labels.value |
값은 Instances.VirtualizationType 에서 가져옵니다. |
VpcID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=VPC_NETWORK |
값은 Instances.VpcID 에서 가져옵니다. |
collection_time |
entity.metadata.collected_timestamp |
이 값은 원시 로그의 collection_time 필드에서 직접 가져옵니다. AMAZON_WEB_SERVICES 로 하드코딩되었습니다. IMAGE, VOLUME, SUBNET, VPC_NETWORK, Instance Profile Arn, Capacity Reservation Arn, Elastic Interface Accelerator Arn, License Configuration Arn 리소스 유형의 경우 AMAZON_WEB_SERVICES 로 하드코딩됩니다. SERVER 로 하드코딩되었습니다. Amazon EC2 로 하드코딩되었습니다. AWS 로 하드코딩되었습니다. Instances.Placement.HostID 가 있고 비어 있지 않은 경우 ASSET 로 하드코딩됩니다. Instances.Placement.HostID 가 있고 비어 있지 않은 경우 EXECUTES 로 하드코딩됩니다. ASSET으로 하드코딩됩니다. |
변경사항
2024-01-31
- 새 스키마 지원을 추가했습니다.
2023-12-14
- 파서를 새로 만들었습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.