데이터 이벤트 로깅 - AWS CloudTrail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 이벤트 로깅

이 섹션에서는 CloudTrail 콘솔AWS CLI를 사용하여 이벤트를 조회하는 방법을 설명합니다.

기본적으로 추적과 이벤트 데이터 스토어는 데이터 이벤트를 로그하지 않습니다. 데이터 이벤트에는 추가 요금이 적용됩니다. 자세한 내용은 AWS CloudTrail 요금을 참조하세요.

데이터 이벤트는 리소스 상에서, 또는 리소스 내에서 수행되는 리소스 작업에 대한 정보를 제공합니다. 이를 데이터 영역 작업이라고도 합니다. 데이터 이벤트가 대량 활동인 경우도 있습니다.

예제 데이터 이벤트에는 다음이 포함됩니다.

고급 이벤트 선택기를 사용하여 세분화된 선택기를 생성할 수 있으므로 이를 통해 사용 사례에 대한 특정 관심 이벤트만 로깅하여 비용을 제어할 수 있습니다. 예를 들어 고급 이벤트 선택기를 사용하여 eventName 필드에 필터를 추가해 특정 API 직접 호출을 로깅할 수 있습니다. 자세한 내용은 고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링 단원을 참조하십시오.

참고

추적으로 로그되는 이벤트는 Amazon EventBridge에서 사용할 수 있습니다. 예를 들어, S3 객체에 대한 데이터 이벤트는 로깅하지만 관리 이벤트는 로깅하지 않도록 추적을 선택할 경우, 해당 추적은 지정된 S3 객체에 대한 데이터 이벤트만 처리하고 로깅합니다. 이러한 S3 객체에 대한 데이터 이벤트는 Amazon EventBridge에서 사용할 수 있습니다. 자세한 내용은 Amazon EventBridge 사용 설명서AWS 서비스의 이벤트를 참조하세요.

데이터 이벤트

다음 표에는 추적 및 이벤트 데이터 스토어에 사용할 수 있는 리소스 유형이 나와 있습니다. 리소스 유형(콘솔) 열에는 콘솔에서 적절한 선택 항목이 표시됩니다. resources.type 값 열에는 AWS CLI 또는 CloudTrail APIs를 사용하여 추적 또는 이벤트 데이터 스토어에 해당 유형의 데이터 이벤트를 포함하도록 지정하는 resources.type 값이 표시됩니다.

추적의 경우 기본 또는 고급 이벤트 선택기를 사용하여 범용 버킷, Lambda 함수 및 DynamoDB 테이블(이 경우 테이블의 처음 3개 행에 표시됨)에 있는 Amazon S3 객체에 대한 데이터 이벤트를 로깅할 수 있습니다. 고급 이벤트 선택기만 사용하여 나머지 행에 표시된 리소스 유형을 로깅할 수 있습니다.

이벤트 데이터 스토어는 데이터 이벤트를 포함하려면 고급 이벤트 선택기만을 사용해야 합니다.

AWS 서비스 설명 리소스 유형(콘솔) resources.type 값
Amazon DynamoDB

테이블에서 Amazon DynamoDB 객체 수준 API 활동(예: PutItem, DeleteItem, UpdateItem API 작업).

참고

스트림이 활성화된 테이블의 경우 데이터 이벤트의 resources 필드에 AWS::DynamoDB::StreamAWS::DynamoDB::Table이 모두 포함됩니다. resources.type으로 AWS::DynamoDB::Table을 지정하는 경우 기본적으로 DynamoDB 테이블과 DynamoDB 스트림 이벤트가 모두 로깅됩니다. 스트림 이벤트를 제외하려면 eventName 필드에 필터를 추가합니다.

DynamoDB

AWS::DynamoDB::Table

AWS Lambda

AWS Lambda 함수 실행 활동(InvokeAPI).

Lambda AWS::Lambda::Function
Amazon S3

범용 버킷의 객체에서 Amazon S3 객체 수준 API 활동(예: GetObject, DeleteObject, PutObject API 작업).

S3 AWS::S3::Object
AWS AppConfig

StartConfigurationSession 및에 대한 호출과 같은 구성 작업을 위한 AWS AppConfig API 활동입니다GetLatestConfiguration.

AWS AppConfig AWS::AppConfig::Configuration
AWS AppSync

AppSync GraphQL API에 대한 API AWS AppSync 활동. APIs

AppSync GraphQL AWS::AppSync::GraphQLApi
AWS B2B 데이터 교환

GetTransformerJobStartTransformerJob 호출과 같은 Transformer 작업을 위한 B2B Data Interchange API 활동

B2B Data Interchange AWS::B2BI::Transformer
AWS Backup

AWS Backup 검색 작업에 대한 검색 데이터 API 활동입니다.

AWS Backup 데이터 APIs 검색 AWS::Backup::SearchJob
Amazon Bedrock 에이전트 별칭에 대한 Amazon Bedrock API 활동 Bedrock 에이전트 별칭 AWS::Bedrock::AgentAlias
Amazon Bedrock 비동기 호출에 대한 Amazon Bedrock API 활동입니다. Bedrock 비동기 호출 AWS::Bedrock::AsyncInvoke
Amazon Bedrock 흐름 별칭에서 Amazon Bedrock API 활동. Bedrock 흐름 별칭 AWS::Bedrock::FlowAlias
Amazon Bedrock 가드레일에서 Amazon Bedrock API 활동. Bedrock 가드레일 AWS::Bedrock::Guardrail
Amazon Bedrock 인라인 에이전트에 대한 Amazon Bedrock API 활동. Bedrock Invoke 인라인 에이전트 AWS::Bedrock::InlineAgent
Amazon Bedrock 지식 기반에 대한 Amazon Bedrock API 활동 Bedrock 지식 기반 AWS::Bedrock::KnowledgeBase
Amazon Bedrock 모델에서 Amazon Bedrock API 활동. Bedrock 모델 AWS::Bedrock::Model
Amazon Bedrock 프롬프트에 대한 Amazon Bedrock API 활동. Bedrock 프롬프트 AWS::Bedrock::PromptVersion
Amazon Bedrock 세션에 대한 Amazon Bedrock API 활동. Bedrock 세션 AWS::Bedrock::Session
Amazon CloudFront

KeyValueStore에 대한 CloudFront API 활동

CloudFront KeyValueStore AWS::CloudFront::KeyValueStore
AWS Cloud Map 네임스페이스에 대한 AWS Cloud Map API 활동입니다. AWS Cloud Map 네임스페이스 AWS::ServiceDiscovery::Namespace
AWS Cloud Map 서비스에 대한 AWS Cloud Map API 활동입니다. AWS Cloud Map service AWS::ServiceDiscovery::Service
AWS CloudTrail

AWS외부에서 이벤트를 로깅하는 데 사용되는 CloudTrail Lake 채널에서의 CloudTrail PutAuditEvents 활동

CloudTrail 채널 AWS::CloudTrail::Channel
Amazon CloudWatch

지표에서 Amazon CloudWatch API 활동.

CloudWatch 지표 AWS::CloudWatch::Metric
Amazon CloudWatch Network Flow Monitor

모니터에서 Amazon CloudWatch Network Flow Monitor API 활동.

Network Flow Monitor 모니터 AWS::NetworkFlowMonitor::Monitor
Amazon CloudWatch Network Flow Monitor

범위에 대한 Amazon CloudWatch Network Flow Monitor API 활동입니다.

Network Flow Monitor 범위 AWS::NetworkFlowMonitor::Scope
Amazon CloudWatch RUM

앱 모니터에서 Amazon CloudWatch RUM API 활동.

RUM 앱 모니터 AWS::RUM::AppMonitor
Amazon CodeGuru Profiler 프로파일링 그룹에 대한 CodeGuru Profiler API 활동입니다. CodeGuru Profiler 프로파일링 그룹 AWS::CodeGuruProfiler::ProfilingGroup
Amazon CodeWhisperer 사용자 지정에서의 Amazon CodeWhisperer API 활동 CodeWhisperer 사용자 지정 AWS::CodeWhisperer::Customization
Amazon CodeWhisperer 프로필에서의 Amazon CodeWhisperer API 활동. CodeWhisperer AWS::CodeWhisperer::Profile
Amazon Cognito

Amazon Cognito 자격 증명 풀에서의 Amazon Cognito API 활동.

Cognito 자격 증명 풀 AWS::Cognito::IdentityPool
AWS Data Exchange

AWS Data Exchange 자산에 대한 API 활동.

Data Exchange 자산

AWS::DataExchange::Asset

AWS Deadline Cloud

플릿에서 Deadline Cloud API 활동.

Deadline Cloud 플릿

AWS::Deadline::Fleet

AWS Deadline Cloud

작업에서 Deadline Cloud API 활동.

Deadline Cloud 작업

AWS::Deadline::Job

AWS Deadline Cloud

대기열에서 Deadline Cloud API 활동.

Deadline Cloud 대기열

AWS::Deadline::Queue

AWS Deadline Cloud

작업자에서 Deadline Cloud API 활동.

Deadline Cloud 작업자

AWS::Deadline::Worker

Amazon DynamoDB

스트림에서의 Amazon DynamoDB API 활동

DynamoDB Streams AWS::DynamoDB::Stream
AWS 최종 사용자 메시징 SMS 발신 ID에 대한 AWS End User Messaging SMS API 활동입니다. SMS 음성 발신 ID AWS::SMSVoice::OriginationIdentity
AWS 최종 사용자 메시징 SMS 메시지에 대한 AWS End User Messaging SMS API 활동입니다. SMS 음성 메시지 AWS::SMSVoice::Message
AWS 최종 사용자 메시징 소셜 전화번호 ID에 대한 AWS 최종 사용자 메시징 소셜 API 활동입니다. IDs 소셜 메시지 전화번호 ID AWS::SocialMessaging::PhoneNumberId
AWS 최종 사용자 메시징 소셜 AWS Waba IDs. 소셜 메시지 Waba ID AWS::SocialMessaging::WabaId
Amazon Elastic Block Store

Amazon Elastic Block Store(EBS) 다이렉트 API(예: Amazon EBS 스냅샷의 PutSnapshotBlock, GetSnapshotBlock, ListChangedBlocks).

Amazon EBS 다이렉트 API AWS::EC2::Snapshot
Amazon EMR 미리 쓰기 로그 작업 영역에서 Amazon EMR API 활동. EMR 미리 쓰기 로그 작업 영역 AWS::EMRWAL::Workspace
Amazon FinSpace

환경에서의 Amazon FinSpace API 활동

FinSpace AWS::FinSpace::Environment
Amazon GameLift Servers 스트림

Amazon GameLift Servers 애플리케이션에서 API 활동을 스트리밍합니다.

GameLift Streams 애플리케이션 AWS::GameLiftStreams::Application
Amazon GameLift Servers 스트림

Amazon GameLift Servers 스트림 그룹에 대한 API 활동을 스트리밍합니다.

GameLift Streams 스트림 그룹 AWS::GameLiftStreams::StreamGroup
AWS Glue

AWS Glue Lake Formation에서 생성한 테이블에 대한 API 활동입니다.

Lake Formation AWS::Glue::Table
Amazon GuardDuty

감지기를 위한 Amazon GuardDuty API 활동.

GuardDuty 감지기 AWS::GuardDuty::Detector
AWS HealthImaging

데이터 스토어에서의AWS HealthImaging API 활동.

MedicalImaging 데이터 저장소 AWS::MedicalImaging::Datastore
AWS IoT

인증서에 대한 AWS IoT API 활동.

IoT 인증서 AWS::IoT::Certificate
AWS IoT

사물에 대한 AWS IoT API 활동.

IoT 사물 AWS::IoT::Thing
AWS IoT Greengrass Version 2

구성 요소 버전에서 Greengrass 코어 디바이스의 Greengrass API 활동.

참고

Greengrass는 액세스 거부 이벤트를 로깅하지 않습니다.

IoT Greengrass 구성 요소 버전 AWS::GreengrassV2::ComponentVersion
AWS IoT Greengrass Version 2

배포에서 Greengrass 코어 디바이스의 Greengrass API 활동.

참고

Greengrass는 액세스 거부 이벤트를 로깅하지 않습니다.

IoT Greengrass 배포 AWS::GreengrassV2::Deployment
AWS IoT SiteWise

자산에서 IoT SiteWise API 활동.

IoT SiteWise 자산 AWS::IoTSiteWise::Asset
AWS IoT SiteWise

시계열에서 IoT SiteWise API 활동.

IoT SiteWise 시계열 AWS::IoTSiteWise::TimeSeries
AWS IoT SiteWise 어시스턴트

대화에 대한 Sitewise Assistant API 활동입니다.

Sitewise Assistant 대화 AWS::SitewiseAssistant::Conversation
AWS IoT TwinMaker

엔터티에서 IoT TwinMaker API 활동.

IoT TwinMaker 엔터티 AWS::IoTTwinMaker::Entity
AWS IoT TwinMaker

작접 영역에서 IoT TwinMaker API 활동.

IoT TwinMaker 작업 영역 AWS::IoTTwinMaker::Workspace
Amazon Kendra Intelligent Ranking

재평가 실행 계획에 대한 Amazon Kendra Intelligent Ranking API 활동.

Kendra Ranking AWS::KendraRanking::ExecutionPlan
Amazon Keyspaces(Apache Cassandra용) 테이블에서 Amazon Keyspaces API 활동. Cassandra 테이블 AWS::Cassandra::Table
Amazon Kinesis Data Streams 스트림에서 Kinesis Data Streams API 활동. Kinesis 스트림 AWS::Kinesis::Stream
Amazon Kinesis Data Streams 스트림 소비자에서 Kinesis Data Streams API 활동. Kinesis 스트림 소비자 AWS::Kinesis::StreamConsumer
Amazon Kinesis Video Streams 비디오 스트림에서 Kinesis 비디오 스트림 API 활동(예: GetMediaPutMedia에 대한 직접 호출). Kinesis 비디오 스트림 AWS::KinesisVideo::Stream
Amazon Location Maps Amazon Location Maps API 활동. 지리 맵 AWS::GeoMaps::Provider
Amazon Location Places Amazon Location Places API 활동. 지리적 위치 AWS::GeoPlaces::Provider
Amazon Location Routes Amazon Location Routes API 활동. 지리적 경로 AWS::GeoRoutes::Provider
Amazon Machine Learning ML 모델에 대한 기계 학습 API 활동. 기계 학습 MlModel AWS::MachineLearning::MlModel
Amazon Managed Blockchain

네트워크에서의 Amazon Managed Blockchain API 활동

Managed Blockchain 네트워크 AWS::ManagedBlockchain::Network
Amazon Managed Blockchain

Ethereum 노드에서의 Amazon Managed Blockchain JSON-RPC 호출(예: eth_getBalance 또는 eth_getBlockByNumber)

Managed Blockchain AWS::ManagedBlockchain::Node
Amazon Managed Blockchain 쿼리

Amazon Managed Blockchain Query API 활동.

관리형 블록체인 쿼리 AWS::ManagedBlockchainQuery::QueryAPI
Amazon Managed Workflows for Apache Airflow

환경에서의 Amazon MWAA API 활동.

관리형 Apache Airflow AWS::MWAA::Environment
Amazon Neptune Graph

Neptune Graph에 대한 데이터 API 활동(예: 쿼리, 알고리즘 또는 벡터 검색)

Neptune Graph AWS::NeptuneGraph::Graph
Amazon One Enterprise

UKey에서 Amazon One Enterprise API 활동.

Amazon One UKey AWS::One::UKey
Amazon One Enterprise

사용자에서 Amazon One Enterprise API 활동.

Amazon One User AWS::One::User
AWS Payment Cryptography AWS Payment Cryptography 별칭에 대한 API 활동입니다. 결제 암호화 별칭 AWS::PaymentCryptography::Alias
AWS Payment Cryptography AWS Payment Cryptography 키에 대한 API 활동. 결제 암호화 키 AWS::PaymentCryptography::Key
AWS Private CA

AWS Private CA Active Directory API 활동을 위한 커넥터입니다.

AWS Private CA Active Directory용 커넥터 AWS::PCAConnectorAD::Connector
AWS Private CA

AWS Private CA SCEP API 활동을 위한 커넥터입니다.

AWS Private CA SCEP용 커넥터 AWS::PCAConnectorSCEP::Connector
Amazon Pinpoint

모바일 대상 애플리케이션에 대한 Amazon Pinpoint API 활동입니다.

모바일 타겟팅 애플리케이션 AWS::Pinpoint::App
Amazon Q Apps

Amazon Q Apps에서 데이터 API 활동.

Amazon Q Apps AWS::QApps::QApp
Amazon Q Apps

Amazon Q App 세션의 데이터 API 활동.

Amazon Q 앱 세션 AWS::QApps::QAppSession
Amazon Q Business

애플리케이션에 대한 Amazon Q Business API 활동

Amazon Q Business 애플리케이션 AWS::QBusiness::Application
Amazon Q Business

데이터 소스에 대한 Amazon Q Business API 활동

Amazon Q Business 데이터 소스 AWS::QBusiness::DataSource
Amazon Q Business

인덱스에 대한 Amazon Q Business API 활동

Amazon Q Business 인덱스 AWS::QBusiness::Index
Amazon Q Business

웹 경험에 대한 Amazon Q Business API 활동

Amazon Q Business 웹 경험 AWS::QBusiness::WebExperience
Amazon Q Developer

통합에 대한 Amazon Q Developer API 활동.

Q Developer 통합 AWS::QDeveloper::Integration
Amazon Q Developer

운영 조사에 대한 Amazon Q Developer API 활동.

AIOps 조사 그룹 AWS::AIOps::InvestigationGroup
Amazon RDS

DB 클러스터에서 Amazon RDS API 활동.

RDS 데이터 API - DB 클러스터 AWS::RDS::DBCluster
AWS 리소스 탐색기

관리형 뷰에 대한 Resource Explorer API 활동입니다.

AWS 리소스 탐색기 관리형 보기 AWS::ResourceExplorer2::ManagedView
AWS 리소스 탐색기

뷰에 대한 Resource Explorer API 활동입니다.

AWS 리소스 탐색기 view AWS::ResourceExplorer2::View
Amazon S3

액세스 포인트에서 Amazon S3 API 활동.

S3 액세스 포인트 AWS::S3::AccessPoint
Amazon S3

디렉터리 버킷의 객체에서 Amazon S3 객체 수준 API 활동(예: GetObject, DeleteObject, PutObject API 작업).

S3 Express AWS::S3Express::Object
Amazon S3

Amazon S3 Object Lambda 액세스 포인트 API 활동(예: CompleteMultipartUploadGetObject에 대한 직접 호출).

S3 객체 Lambda AWS::S3ObjectLambda::AccessPoint
Amazon S3 Tables

테이블에 대한 Amazon S3 API 활동.

S3 테이블 AWS::S3Tables::Table
Amazon S3 Tables

테이블 버킷에 대한 Amazon S3 API 활동. https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets.html

S3 테이블 버킷 AWS::S3Tables::TableBucket
Outposts에서의 Amazon S3

Amazon S3 on Outposts 객체 수준 API 활동

S3 Outposts AWS::S3Outposts::Object
Amazon SageMaker AI 엔드포인트에 대한 Amazon SageMaker AI InvokeEndpointWithResponseStream 활동. SageMaker AI 엔드포인트 AWS::SageMaker::Endpoint
Amazon SageMaker AI

특성 저장소에서의 Amazon SageMaker AI API 활동.

SageMaker AI 특성 저장소 AWS::SageMaker::FeatureGroup
Amazon SageMaker AI

실험 시도 구성 요소에 대한 Amazon SageMaker AI API 활동입니다.

SageMaker AI 지표 실험 시도 구성 요소 AWS::SageMaker::ExperimentTrialComponent
AWS Signer

서명 작업에 대한 서명자 API 활동입니다.

서명자 서명 작업 AWS::Signer::SigningJob
AWS Signer

서명 프로필에 대한 서명자 API 활동입니다.

서명자 서명 프로필 AWS::Signer::SigningProfile
Amazon SimpleDB

도메인에 대한 Amazon SimpleDB API 활동.

SimpleDB 도메인 AWS::SDB::Domain
Amazon Simple Email Service

구성 세트에 대한 Amazon Simple Email Service(Amazon SES) API 활동입니다.

SES 구성 세트 AWS::SES::ConfigurationSet
Amazon Simple Email Service

이메일 ID에 대한 Amazon Simple Email Service(Amazon SES) API 활동입니다.

SES 자격 증명 AWS::SES::EmailIdentity
Amazon Simple Email Service

템플릿에 대한 Amazon Simple Email Service(Amazon SES) API 활동입니다.

SES 템플릿 AWS::SES::Template
Amazon SNS

플랫폼 엔드포인트에서 Amazon SNS Publish API 작업을 수행합니다.

SNS 플랫폼 엔드포인트 AWS::SNS::PlatformEndpoint
Amazon SNS

주제에 따른 Amazon SNS PublishPublishBatch API 운영입니다.

SNS 주제 AWS::SNS::Topic
Amazon SQS

메시지에 대한 Amazon SQS API 활동

SQS AWS::SQS::Queue
AWS Step Functions

활동에 대한 Step Functions API 활동.

단계 함수 AWS::StepFunctions::Activity
AWS Step Functions

상태 시스템에서 Step Functions API 활동.

Step Functions 상태 시스템 AWS::StepFunctions::StateMachine
AWS Supply Chain

AWS Supply Chain 인스턴스에 대한 API 활동입니다.

공급망 AWS::SCN::Instance
Amazon SWF

도메인에서 Amazon SWF API 활동.

SWF 도메인 AWS::SWF::Domain
AWS Systems Manager 제어 채널에서 Systems Manager API 활동. Systems Manager AWS::SSMMessages::ControlChannel
AWS Systems Manager 영향 평가에 대한 Systems Manager API 활동입니다. SSM 영향 평가 AWS::SSM::ExecutionPreview
AWS Systems Manager 관리형 노드에서 Systems Manager API 활동. Systems Manager 관리형 노드 AWS::SSM::ManagedNode
Amazon Timestream 데이터베이스에서의 Amazon Timestream Query API 활동 Timestream 데이터베이스 AWS::Timestream::Database
Amazon Timestream 리전 엔드포인트에 대한 Amazon Timestream API 활동. Timestream 리전 엔드포인트 AWS::Timestream::RegionalEndpoint
Amazon Timestream 테이블에서의 Amazon Timestream QueryAPI 활동. Timestream 테이블 AWS::Timestream::Table
Amazon Verified Permissions

정책 스토어에서의 Amazon Verified Permissions API 활동.

Amazon Verified Permissions AWS::VerifiedPermissions::PolicyStore
Amazon WorkSpaces Thin Client 디바이스에 대한 WorkSpaces 씬 클라이언트 API 활동 씬 클라이언트 디바이스 AWS::ThinClient::Device
Amazon WorkSpaces Thin Client 환경에 대한 WorkSpaces 씬 클라이언트 API 활동 씬 클라이언트 환경 AWS::ThinClient::Environment
AWS X-Ray

추적에서 X-Ray API 활동.

X-Ray 추적 AWS::XRay::Trace

CloudTrail 데이터 이벤트를 로깅하려면 활동을 수집할 각 리소스 유형을 명시적으로 추가해야 합니다. 자세한 내용은 CloudTrail 콘솔을 사용하여 추적 생성콘솔을 사용하여 CloudTrail 이벤트에 대한 이벤트 데이터 저장소 생성 섹션을 참조하세요.

단일 리전 추적 또는 이벤트 데이터 스토어에서는 해당 리전에서 액세스할 수 있는 리소스에 대해서만 데이터 이벤트를 로그할 수 있습니다. S3 버킷은 글로벌이지만 AWS Lambda 함수 및 DynamoDB 테이블은 리전별입니다.

데이터 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 AWS CloudTrail 요금을 참조하세요.

예: Amazon S3 객체에 대한 데이터 이벤트 로깅

S3 버킷의 모든 S3 객체에 대한 데이터 이벤트 로깅

다음 예에서는 amzn-s3-demo-bucket이라는 S3 버킷에 대한 모든 데이터 이벤트의 로깅을 구성할 때 로깅이 어떻게 작동하는지 보여줍니다. 이 예에서 CloudTrail 사용자는 빈 접두사를 지정하고 [읽기(Read)] 및 [쓰기(Write)] 데이터 이벤트를 모두 로그하는 옵션을 선택했습니다.

  1. 사용자는 객체를 amzn-s3-demo-bucket에 업로드합니다.

  2. PutObject API 작업은 Amazon S3 객체 수준 API입니다. CloudTrail에 데이터 이벤트로 기록됩니다. CloudTrail 사용자가 빈 접두사를 사용하여 S3 버킷을 지정했으므로 해당 버킷의 객체에서 발생한 이벤트가 로깅됩니다. 추적 또는 이벤트 데이터 스토어는 이벤트를 처리하고 로그합니다.

  3. 다른 사용자는 객체를 amzn-s3-demo-bucket2에 업로드합니다.

  4. 추적 또는 이벤트 데이터 스토어에 대해 지정되지 않은 S3 버킷의 객체에서 PutObject API 작업이 발생했습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.

특정 S3 객체에 대한 데이터 이벤트 로깅

다음 예에서는 특정 S3 객체에 대한 이벤트를 로깅하는 추적 또는 이벤트 데이터 스토어를 구성할 경우 로깅이 어떻게 작동하는지 보여 줍니다. 이 예제에서 CloudTrail 사용자는 접두사가 my-imagesamzn-s3-demo-bucket3라는 S3 버킷을 지정했으며 쓰기 데이터 이벤트만 로깅하는 옵션을 선택했습니다.

  1. 사용자가 버킷에서 my-images 접두사로 시작하는 객체를 삭제합니다(예: arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg).

  2. DeleteObject API 작업은 Amazon S3 객체 수준 API입니다. CloudTrail에 [쓰기(Write)] 데이터 이벤트로 기록됩니다. 추적또는 이벤트 데이터 스토어에서 지정한 S3 버킷 및 접두사와 일치하는 객체에서 이벤트가 발생했습니다. 추적 또는 이벤트 데이터 스토어는 이벤트를 처리하고 로그합니다.

  3. 다른 사용자가 S3 버킷에서 접두사가 서로 다른 객체를 삭제합니다(예: arn:aws:s3:::amzn-s3-demo-bucket3/my-videos/example.avi).

  4. 추적 또는 이벤트 데이터 스토어에서 지정한 접두사와 일치하지 않는 객체에서 이벤트가 발생했습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.

  5. 사용자가 객체 arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg에 대해 GetObject API 작업을 호출합니다.

  6. 추적 또는 이벤트 데이터 스토어에 지정된 버킷 및 접두사에서 이벤트가 발생했지만 GetObject는 읽기 유형 Amazon S3 객체 수준 API입니다. 이 API는 CloudTrail에 [읽기(Read)] 데이터 이벤트로 기록되며, 추적 또는 이벤트 데이터 스토어는 [읽기(Read)] 이벤트를 로그하도록 구성되지 않습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.

참고

추적은 특정 Amazon S3 버킷에 대한 데이터 이벤트를 로그할 경우 데이터 이벤트 단원에서 지정한 로그 파일을 수신하는 데 데이터 이벤트를 로그하는 Amazon S3 버킷을 사용하지 않는 것이 좋습니다. 동일한 Amazon S3 버킷을 사용하면 Amazon S3 버킷에 로그 파일이 전달될 때마다 추적이 데이터 이벤트를 로그합니다. 로그 파일에는 지정된 간격으로 전달되는 이벤트가 집계되므로 이벤트와 로그 파일의 비율은 1:1이 아니고, 이벤트는 다음 로그 파일에 로깅됩니다. 예를 들어, CloudTrail이 로그를 전송하면 PutObject 이벤트가 S3 버킷에서 발생합니다. 또한 S3 버킷이 데이터 이벤트 단원에서 지정되면 추적은 PutObject 이벤트를 데이터 이벤트로 처리하고 로깅합니다. 이 작업은 다른 PutObject 이벤트이며 추적은 해당 이벤트를 다시 처리하고 로깅합니다.

AWS 계정의 모든 Amazon S3 데이터 이벤트를 로깅하도록 추적을 구성하는 경우 로그 파일을 수신하는 Amazon S3 버킷에 대한 데이터 이벤트를 로깅하지 않으려면 다른 AWS 계정에 속한 Amazon S3 버킷으로 로그 파일을 전송하도록 구성하는 것이 좋습니다. 자세한 내용은 여러 계정에서 CloudTrail 로그 파일 수신 단원을 참조하십시오.

다른 AWS 계정의 S3 객체에 대한 데이터 이벤트 로깅

데이터 이벤트를 로깅하도록 추적을 구성할 때 다른 AWS 계정에 속하는 S3 객체를 지정할 수도 있습니다. 지정된 객체에서 이벤트가 발생하면 CloudTrail은 이벤트가 각 계정의 추적과 일치하는지 여부를 평가합니다. 이벤트가 추적에 대한 설정과 일치하면 추적은 해당 계정에 대한 이벤트를 처리하고 로깅합니다. 일반적으로 API 호출자와 리소스 소유자 모두 이벤트를 수신할 수 있습니다.

S3 객체를 소유하면서 추적에 지정하면 해당 추적은 귀하의 계정에 있는 객체에 대해 발생한 이벤트를 로깅합니다. 객체를 소유하고 있으므로 추적은 다른 계정에서 객체를 호출할 때에도 이벤트를 로깅합니다.

추적에 S3 객체를 지정하고 다른 계정이 객체를 소유하면 해당 추적은 귀하의 계정에 있는 객체에 대해 발생한 이벤트만 로깅합니다. 해당 추적은 다른 계정에 발생한 이벤트를 로깅하지 않습니다.

예: 두 AWS 계정의 Amazon S3 객체에 대한 데이터 이벤트 로깅

다음 예제에서는 두 AWS 계정이 동일한 S3 객체에 대한 이벤트를 로깅하도록 CloudTrail을 구성하는 방법을 보여줍니다.

  1. 계정에서 추적이 amzn-s3-demo-bucket이라는 S3 버킷의 모든 객체에 대한 데이터 이벤트를 로깅하려고 합니다. 빈 객체 접두사를 사용해 S3 버킷을 지정하여 추적을 구성합니다.

  2. Bob은 S3 버킷에 대한 액세스 권한을 부여받은 별도의 계정이 있습니다. 또한 Bob은 동일한 S3 버킷의 모든 객체에 대한 데이터 이벤트를 로깅하려고 합니다. 추적의 경우 Bob은 자신의 추적을 구성하고 빈 객체 접두사를 사용해 동일한 S3 버킷을 지정합니다.

  3. Bob은 PutObject API 작업을 사용하여 S3 버킷에 객체를 업로드합니다.

  4. Bob의 계정에서 이 이벤트가 발생했으며 이 이벤트는 Bob의 추적에 대한 설정과 일치합니다. Bob의 추적은 이벤트를 처리하고 로그합니다.

  5. S3 버킷을 소유하고 있으며 이벤트가 추적에 대한 설정과 일치하므로 추적은 동일한 이벤트도 처리하고 로깅합니다. 이제 이벤트 복사본이 두 개(Bob의 추적에 로그된 복사본과 개발자의 추적에 로그된 복사본) 있으므로 데이터 이벤트 복사본 두 개에 대한 CloudTrail 요금이 청구됩니다.

  6. 객체를 S3 버킷으로 업로드합니다.

  7. 계정에서 이 이벤트가 발생하며 이 이벤트는 추적에 대한 설정과 일치합니다. 추적은 이벤트를 처리하고 로그합니다.

  8. Bob의 계정에서 이벤트가 발생하지 않았으며 Bob이 S3 버킷을 소유하고 있지 않으므로 Bob의 추적은 이벤트를 로그하지 않습니다. 이 데이터 이벤트의 복사본 하나에 대해서만 CloudTrail 요금이 청구됩니다.

예: 두 AWS 계정에서 사용하는 S3 버킷을 포함하여 모든 버킷에 대한 데이터 이벤트 로깅

다음 예제는 계정에서 데이터 이벤트를 수집하는 추적에 대해 계정의 모든 S3 버킷 선택이 활성화된 경우의 로깅 동작을 보여줍니다 AWS .

  1. 계정에서 모든 S3 버킷에 대한 데이터 이벤트를 로깅하도록 추적해야 합니다. [데이터 이벤트(Data events)]에서 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]에 대해 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 선택하여 추적을 구성합니다.

  2. Bob은 계정의 S3 버킷에 대한 액세스 권한을 부여받은 별도의 계정이 있습니다. Bob은 액세스 권한이 있는 버킷에 대한 데이터 이벤트를 로깅하려고 하며, 모든 S3 버킷에 대한 데이터 이벤트를 가져오도록 추적을 구성합니다.

  3. Bob은 PutObject API 작업을 사용하여 S3 버킷에 객체를 업로드합니다.

  4. Bob의 계정에서 이 이벤트가 발생했으며 이 이벤트는 Bob의 추적에 대한 설정과 일치합니다. Bob의 추적은 이벤트를 처리하고 로그합니다.

  5. 귀하는 S3 버킷을 소유하고 있으며 이벤트가 추적에 대한 설정과 일치하므로 귀하의 추적은 해당 이벤트도 처리하고 로깅합니다. 이제 이벤트 복사본이 두 개(Bob의 추적에 로그된 복사본과 개발자의 추적에 로그된 복사본) 있으므로 각 계정에 하나의 데이터 이벤트 복사본에 대한 CloudTrail 요금이 청구됩니다.

  6. 객체를 S3 버킷으로 업로드합니다.

  7. 계정에서 이 이벤트가 발생하며 이 이벤트는 추적에 대한 설정과 일치합니다. 추적은 이벤트를 처리하고 로그합니다.

  8. Bob의 계정에서 이벤트가 발생하지 않았으며 Bob이 S3 버킷을 소유하고 있지 않으므로 Bob의 추적은 이벤트를 로그하지 않습니다. 계정의 이 데이터 이벤트 복사본 하나에 대해서만 CloudTrail 요금이 청구됩니다.

  9. 세 번째 사용자인 Mary는 S3 버킷에 대한 액세스 권한이 있으며 버킷에서 GetObject 작업을 실행합니다. Mary의 경우 계정의 모든 S3 버킷에 대한 데이터 이벤트를 로깅하도록 추적이 구성되어 있습니다. 그녀가 API 호출자이므로 CloudTrail은 그녀의 추적에 데이터 이벤트를 로그합니다. Bob은 버킷에 대한 액세스 권한이 있지만 리소스 소유자가 아니므로 이번에는 Bob의 추적에 이벤트가 로깅되지 않습니다. 리소스 소유자로서 개발자는 Mary가 호출한 GetObject 작업에 대한 이벤트를 추적에 수신합니다. 개발자의 계정과 Mary의 계정에 각 데이터 이벤트 복사본(Mary 추적의 복사본과 개발자 추적의 복사본)에 대한 CloudTrail 요금이 청구됩니다.

읽기 전용 및 쓰기 전용 이벤트

데이터 및 관리 이벤트를 로그하도록 추적 또는 이벤트 데이터 스토어를 구성할 때 읽기 전용 이벤트를 로그할지, 쓰기 전용 이벤트를 로그할지 또는 둘 다를 로그할지 여부를 지정할 수 있습니다.

  • 읽기(Read)

    [읽기(Read)] 이벤트에는 리소스를 읽지만 변경하지는 않는 API 작업이 포함됩니다. 예를 들어 읽기 전용 이벤트에는 Amazon EC2 DescribeSecurityGroupsDescribeSubnets API 작업이 포함됩니다. 이러한 작업은 Amazon EC2 리소스에 대한 정보만 반환하고 구성을 변경하지 않습니다.

  • 쓰기(Write)

    [쓰기(Write)] 이벤트에는 리소스를 수정하는(또는 수정할 수도 있는) API 작업이 포함됩니다. 예를 들어 Amazon EC2 RunInstancesTerminateInstances API 작업은 인스턴스를 수정합니다.

예: 별도의 추적에 대한 읽기 및 쓰기 이벤트 로깅

다음 예제에서는 계정에 대한 로그 활동을 별도의 S3 버킷으로 분할하도록 추적을 구성하는 방법을 보여줍니다. 즉, amzn-s3-demo-bucket1 버킷은 읽기 전용 이벤트를 수신하고 두 번째 amzn-s3-demo-bucket2 버킷은 쓰기 전용 이벤트를 수신합니다.

  1. 추적을 생성하고 amzn-s3-demo-bucket1이라는 S3 버킷을 선택하여 로그 파일을 수신합니다. 그런 다음, 추적을 업데이트하여 [읽기(Read)] 관리 이벤트 및 데이터 이벤트를 로그하도록 지정합니다.

  2. 두 번째 추적을 생성하고 S3 버킷(amzn-s3-demo-bucket2 )을 선택하여 로그 파일을 수신합니다. 그런 다음, 추적을 업데이트하여 [쓰기(Write)] 관리 이벤트 및 데이터 이벤트를 로그하도록 지정합니다.

  3. 계정에서 Amazon EC2 DescribeInstancesTerminateInstances API 작업이 발생합니다.

  4. DescribeInstances API 작업은 읽기 전용 이벤트이며 이 이벤트는 첫 번째 추적에 대한 설정과 일치합니다. 추적은 이벤트를 로그하고 amzn-s3-demo-bucket1에 전달합니다.

  5. TerminateInstances API 작업은 쓰기 전용 이벤트이며 이 이벤트는 두 번째 추적에 대한 설정과 일치합니다. 추적은 이벤트를 로그하고 amzn-s3-demo-bucket2 에 전달합니다.

를 사용하여 데이터 이벤트 로깅 AWS Management Console

다음 절차는 AWS Management Console로 기존 이벤트 데이터 스토어 또는 추적을 업데이트하여 데이터 이벤트를 로깅하는 방법을 설명합니다. 이벤트 데이터 스토어를 생성하여 데이터 이벤트를 로깅하는 방법에 대한 자세한 내용은 콘솔을 사용하여 CloudTrail 이벤트에 대한 이벤트 데이터 저장소 생성 섹션을 참조하세요. 추적을 생성하여 데이터 이벤트를 로깅하는 방법에 대한 자세한 내용은 콘솔을 사용하여 추적 생성 섹션을 참조하세요

추적은 데이터 이벤트를 기록하는 단계가 고급 이벤트 선택기를 사용하는지, 기본 이벤트 선택기를 사용하는지에 따라 달라집니다. 고급 이벤트 선택기를 사용하여 모든 리소스 유형에 대한 데이터 이벤트를 로깅할 수 있지만 기본 이벤트 선택기를 사용하는 경우 Amazon S3 버킷 및 버킷 객체, AWS Lambda 함수 및 Amazon DynamoDB 테이블에 대한 데이터 이벤트 로깅으로 제한됩니다.

다음 절차를 사용하여 데이터 이벤트를 로그하도록 기존 이벤트 데이터 스토어를 업데이트합니다. 고급 이벤트 선택기 사용에 대한 자세한 내용은 이 주제의 고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링 섹션을 참조하세요.

  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/cloudtrail/ CloudTrail 콘솔을 엽니다.

  2. 탐색 창의 Lake에서 Event data stores(이벤트 데이터 스토어)를 선택합니다.

  3. Event data stores(이벤트 데이터 스토어) 페이지에서 업데이트하려는 이벤트 데이터 스토어를 선택합니다.

    참고

    데이터 이벤트는 오직 CloudTrail 이벤트가 포함된 이벤트 데이터 스토어에서만 활성화할 수 있습니다. AWS Config 구성 항목, CloudTrail Insights 이벤트 또는 비AWS 이벤트에 대해 CloudTrail 이벤트 데이터 스토어에서 데이터 이벤트를 활성화할 수 없습니다.

  4. 세부 정보 페이지의 [데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.

  5. 데이터 이벤트를 아직 로그하지 않은 경우 [데이터 이벤트(Data events)] 확인란을 선택합니다.

  6. 리소스 유형에서 데이터 이벤트를 로깅할 리소스 유형을 선택합니다.

  7. 로그 선택기 템플릿을 선택합니다. 사전 정의된 템플릿을 선택하거나 사용자 지정을 선택하여 자체 이벤트 수집 조건을 정의할 수 있습니다.

    다음과 같은 사전 정의된 템플릿 중에서 선택할 수 있습니다.

    • 모든 이벤트 로깅 - 모든 이벤트를 로깅하려면이 템플릿을 선택합니다.

    • 읽기 전용 이벤트 로깅 - 읽기 전용 이벤트를 로깅하려면이 템플릿을 선택합니다. 읽기 전용 이벤트는 Get* 또는 이벤트와 같이 리소스의 상태를 변경하지 않는 Describe* 이벤트입니다.

    • 쓰기 이벤트만 로깅 - 쓰기 이벤트만 로깅하려면이 템플릿을 선택합니다. 쓰기 이벤트는 Put*, Delete* 또는 Write* 이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다.

    • 로그 전용 AWS Management Console 이벤트 -에서 시작된 이벤트만 로깅하려면이 템플릿을 선택합니다 AWS Management Console.

    • AWS 서비스 시작된 이벤트 제외 - eventType의가 있는 AWS 서비스 이벤트AwsServiceEvent와 AWS 서비스연결 역할(SLRs)로 시작된 이벤트를 제외하려면이 템플릿을 선택합니다.

  8. (선택 사항) 선택자 이름(Selector name)에 선택자를 식별할 이름을 입력합니다. 선택기 이름은 "2개의 S3 버킷에 대한 데이터 이벤트 로그그"애와 같이 고급 이벤트 선택기를 설명하는 이름입니다. 선택기 이름은 고급 이벤트 선택기에서의 Name으로 나열되며, JSON 뷰(JSON view)를 확장하여 볼 수 있습니다.

  9. 사용자 지정을 선택한 경우 고급 이벤트 선택기에서 고급 이벤트 선택기 필드의 값을 기반으로 표현식을 빌드합니다.

    참고

    선택기는 *와 같은 와일드카드 사용을 지원하지 않습니다. 여러 값을 단일 조건과 일치시키려면 , StartsWithNotStartsWith, 또는 EndsWithNotEndsWith를 사용하여 이벤트 필드의 시작 또는 끝과 명시적으로 일치시킬 수 있습니다.

    1. 다음 필드 중에서 선택합니다.

      • readOnly - readOnlytrue 또는 false 값과 같음으로 설정할 수 있습니다. 읽기 전용 데이터 이벤트는 Get* 또는 Describe* 이벤트와 같이 리소스의 상태를 변경하지 않는 이벤트입니다. 쓰기 이벤트는 Put*, Delete* 또는 Write* 이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다. read 이벤트와 write 이벤트를 모두 로그하려면 readOnly 선택기를 추가하지 마세요.

      • eventName - eventName은 연산자를 사용할 수 있습니다. 연산자를 사용하여 PutBucket, GetItem 또는 GetSnapshotBlock과 같이 CloudTrail에 로그된 데이터 이벤트를 포함하거나 제외할 수 있습니다.

      • eventSource - 포함하거나 제외할 이벤트 소스입니다. 이 필드는 모든 연산자를 사용할 수 있습니다.

      • eventType - 포함하거나 제외할 이벤트 유형입니다. 예를 들어이 필드를 같지 않음으로 설정하여를 제외AwsServiceEvent할 수 있습니다AWS 서비스 이벤트. 이벤트 유형 목록은의 섹션을 참조eventType하세요관리, 데이터 및 네트워크 활동 이벤트에 대한 CloudTrail 레코드 콘텐츠.

      • sessionCredentialFromConsole - AWS Management Console 세션에서 시작된 이벤트를 포함하거나 제외합니다. 이 필드는 값과 음 또는 같지 않음으로 설정할 수 있습니다true.

      • userIdentity.arn - 특정 IAM 자격 증명에서 수행한 작업에 대한 이벤트를 포함하거나 제외합니다. 자세한 내용은 CloudTrail userIdentity 요소를 참조하십시오.

      • resources.ARN - resources.ARN과 함께 연산자를 사용할 수 있지만, 같음 또는 같지 않음을 사용하는 경우 값은 템플릿에서 resources.type 값으로 지정한 유형의 유효한 리소스 ARN과 정확히 일치해야 합니다.

        참고

        resources.ARN 필드를 사용하여 ARN이 없는 리소스 유형을 필터링할 수 없습니다.

        데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 서비스 승인 참조의에 사용되는 작업, 리소스 및 조건 키를 AWS 서비스 참조하세요.

    2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어 이벤트 데이터 스토어에 로깅된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 resources.ARN으로 설정하고의 연산자가 로 시작하지 않도록 설정한 다음 이벤트를 로깅하지 않으려는 S3 버킷 ARN에 붙여넣을 수 있습니다.

      두 번째 S3 버킷을 추가하려면 [+ 조건(+ Condition)]을 선택한 다음, 이전 지침을 반복하여 ARN을 붙여넣거나 다른 버킷을 찾습니다.

      CloudTrail이 여러 조건을 평가하는 방법에 대한 자세한 내용은 CloudTrail이 필드의 여러 조건을 평가하는 방법 섹션을 참조하세요.

      참고

      이벤트 데이터 스토어의 모든 선택기에 대해 최대 500개의 값을 가질 수 있습니다. 여기에는 eventName과 같은 선택기에 대한 여러 값의 배열이 포함됩니다. 모든 선택기에 대해 단일 값이 있는 경우 선택기에 최대 500개의 조건을 추가할 수 있습니다.

    3. 필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요. 예를 들어 한 선택기의 ARN을 값과 같도록 지정하지 마세요. 그런 다음, ARN이 다른 선택기의 동일한 값과 같지 않도록 지정하세요.

  10. 데이터 이벤트를 로깅할 다른 리소스 유형을 추가하려면 데이터 이벤트 유형 추가를 선택합니다. 6~이 단계를 반복하여 다른 리소스 유형에 대한 고급 이벤트 선택기를 구성합니다.

  11. 선택 사항을 검토하고 확인한 후, [변경 내용 저장(Save changes)]을 선택합니다.

에서 추적이 고급 이벤트 선택기를 사용하는 AWS Management Console경우 선택한 리소스의 모든 데이터 이벤트를 로깅하는 사전 정의된 템플릿 중에서 선택할 수 있습니다. 로그 선택기 템플릿을 선택한 후 가장 보고 싶은 데이터 이벤트만 포함하도록 템플릿을 사용자 지정할 수 있습니다. 고급 이벤트 선택기 사용에 대한 자세한 내용은 이 주제의 고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링 섹션을 참조하세요.

  1. CloudTrail 콘솔의 [대시보드(Dashboard)] 또는 [추적(Trails)] 페이지에서 업데이트할 추적을 선택합니다.

  2. 세부 정보 페이지의 [데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.

  3. 데이터 이벤트를 아직 로그하지 않은 경우 [데이터 이벤트(Data events)] 확인란을 선택합니다.

  4. 리소스 유형에서 데이터 이벤트를 로깅할 리소스 유형을 선택합니다.

  5. 로그 선택기 템플릿을 선택합니다. 사전 정의된 템플릿을 선택하거나 사용자 지정을 선택하여 자체 이벤트 수집 조건을 정의할 수 있습니다.

    다음과 같은 사전 정의된 템플릿 중에서 선택할 수 있습니다.

    • 모든 이벤트 로깅 - 모든 이벤트를 로깅하려면이 템플릿을 선택합니다.

    • 읽기 전용 이벤트 로깅 - 읽기 전용 이벤트를 로깅하려면이 템플릿을 선택합니다. 읽기 전용 이벤트는 Get* 또는 이벤트와 같이 리소스의 상태를 변경하지 않는 Describe* 이벤트입니다.

    • 쓰기 이벤트만 로깅 - 쓰기 이벤트만 로깅하려면이 템플릿을 선택합니다. 쓰기 이벤트는 Put*, Delete* 또는 Write* 이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다.

    • AWS Management Console 이벤트만 로깅 -에서 시작된 이벤트만 로깅하려면이 템플릿을 선택합니다 AWS Management Console.

    • AWS 서비스 시작된 이벤트 제외 - eventType의가 있는 AWS 서비스 이벤트AwsServiceEvent와 AWS 서비스연결 역할(SLRs)로 시작된 이벤트를 제외하려면이 템플릿을 선택합니다.

    참고

    S3 버킷에 대해 사전 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 버킷과 추적 생성을 완료한 후 생성한 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. 또한 해당 활동이 다른 AWS 계정에 속한 버킷에서 수행되더라도 AWS 계정의 모든 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 있습니다.

    한 리전에만 추적을 적용하는 경우 모든 S3 버킷을 로그하는 사전 정의된 템플릿을 선택하면 추적과 동일한 리전의 모든 버킷과 해당 리전에서 나중에 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. AWS 계정의 다른 리전에 있는 Amazon S3 버킷에 대한 데이터 이벤트는 로깅되지 않습니다.

    모든 리전에 대한 추적을 생성하는 경우 Lambda 함수에 대해 사전 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 함수와 추적 생성을 완료한 후 모든 리전에서 생성할 수 있는 모든 Lambda 함수에 대한 데이터 이벤트 로깅이 활성화됩니다. 단일 리전에 대한 추적을 생성하는 경우(추적의 경우를 사용해야만 수행 가능 AWS CLI)이 선택을 통해 AWS 현재 계정의 해당 리전에 있는 모든 함수와 추적 생성을 완료한 후 해당 리전에서 생성할 수 있는 모든 Lambda 함수에 대한 데이터 이벤트 로깅이 활성화됩니다. 다른 리전에서 생성되는 Lambda 함수에 대한 데이터 이벤트 로깅은 활성화되지 않습니다.

    또한 모든 함수에 대한 데이터 이벤트를 로깅하면 다른 AWS 계정에 속한 함수에서 해당 활동이 수행되더라도 계정의 모든 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 AWS 있습니다.

  6. (선택 사항) 선택자 이름(Selector name)에 선택자를 식별할 이름을 입력합니다. 선택기 이름은 "2개의 S3 버킷에 대한 데이터 이벤트 로그그"애와 같이 고급 이벤트 선택기를 설명하는 이름입니다. 선택기 이름은 고급 이벤트 선택기에서의 Name으로 나열되며, JSON 뷰(JSON view)를 확장하여 볼 수 있습니다.

  7. 사용자 지정을 선택한 경우 고급 이벤트 선택기에서 고급 이벤트 선택기 필드의 값을 기반으로 표현식을 빌드합니다.

    참고

    선택기는 *와 같은 와일드카드 사용을 지원하지 않습니다. 여러 값을 단일 조건과 일치시키려면 , StartsWithNotStartsWith, 또는 EndsWithNotEndsWith를 사용하여 이벤트 필드의 시작 또는 끝과 명시적으로 일치시킬 수 있습니다.

    1. 다음 필드 중에서 선택합니다.

      • readOnly - readOnlytrue 또는 false 값과 같음으로 설정할 수 있습니다. 읽기 전용 데이터 이벤트는 Get* 또는 Describe* 이벤트와 같이 리소스의 상태를 변경하지 않는 이벤트입니다. 쓰기 이벤트는 Put*, Delete* 또는 Write* 이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다. read 이벤트와 write 이벤트를 모두 로그하려면 readOnly 선택기를 추가하지 마세요.

      • eventName - eventName은 연산자를 사용할 수 있습니다. 연산자를 사용하여 PutBucket, GetItem 또는 GetSnapshotBlock과 같이 CloudTrail에 로그된 데이터 이벤트를 포함하거나 제외할 수 있습니다.

      • eventSource - 포함하거나 제외할 이벤트 소스입니다. 이 필드는 모든 연산자를 사용할 수 있습니다.

      • eventType - 포함하거나 제외할 이벤트 유형입니다. 예를 들어이 필드를 같지 않음으로 설정하여를 제외AwsServiceEvent할 수 있습니다AWS 서비스 이벤트. 이벤트 유형 목록은의 섹션을 참조eventType하세요관리, 데이터 및 네트워크 활동 이벤트에 대한 CloudTrail 레코드 콘텐츠.

      • sessionCredentialFromConsole - AWS Management Console 세션에서 시작된 이벤트를 포함하거나 제외합니다. 이 필드는 값과 음 또는 같지 않음으로 설정할 수 있습니다true.

      • userIdentity.arn - 특정 IAM 자격 증명에서 수행한 작업에 대한 이벤트를 포함하거나 제외합니다. 자세한 내용은 CloudTrail userIdentity 요소를 참조하십시오.

      • resources.ARN - resources.ARN과 함께 연산자를 사용할 수 있지만, 같음 또는 같지 않음을 사용하는 경우 값은 템플릿에서 resources.type 값으로 지정한 유형의 유효한 리소스 ARN과 정확히 일치해야 합니다.

        참고

        resources.ARN 필드를 사용하여 ARN이 없는 리소스 유형을 필터링할 수 없습니다.

        데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 서비스 승인 참조의에 사용되는 작업, 리소스 및 조건 키를 AWS 서비스 참조하세요.

    2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어 이벤트 데이터 스토어에 로깅된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 resources.ARN으로 설정하고의 연산자가 로 시작하지 않도록 설정한 다음 이벤트를 로깅하지 않으려는 S3 버킷 ARN에 붙여넣을 수 있습니다.

      두 번째 S3 버킷을 추가하려면 [+ 조건(+ Condition)]을 선택한 다음, 이전 지침을 반복하여 ARN을 붙여넣거나 다른 버킷을 찾습니다.

      CloudTrail이 여러 조건을 평가하는 방법에 대한 자세한 내용은 CloudTrail이 필드의 여러 조건을 평가하는 방법 섹션을 참조하세요.

      참고

      이벤트 데이터 스토어의 모든 선택기에 대해 최대 500개의 값을 가질 수 있습니다. 여기에는 eventName과 같은 선택기에 대한 여러 값의 배열이 포함됩니다. 모든 선택기에 대해 단일 값이 있는 경우 선택기에 최대 500개의 조건을 추가할 수 있습니다.

    3. 필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요. 예를 들어 한 선택기의 ARN을 값과 같도록 지정하지 마세요. 그런 다음, ARN이 다른 선택기의 동일한 값과 같지 않도록 지정하세요.

  8. 데이터 이벤트를 로깅할 다른 리소스 유형을 추가하려면 데이터 이벤트 유형 추가를 선택합니다. 4~이 단계를 반복하여 리소스 유형에 대한 고급 이벤트 선택기를 구성합니다.

  9. 선택 사항을 검토하고 확인한 후, [변경 내용 저장(Save changes)]을 선택합니다.

다음 절차에 따라 기본 이벤트 선택기를 사용하여 데이터 이벤트를 기록하도록 기존 추적을 업데이트합니다.

  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/cloudtrail/ CloudTrail 콘솔을 엽니다.

  2. CloudTrail 콘솔의 [추적(Trails)] 페이지를 열고 추적 이름을 선택합니다.

    참고

    기존 추적을 편집하여 데이터 이벤트를 로깅할 수 있지만, 모범 사례로 특정하게 데이터 이벤트 로깅을 위한 별도의 추적을 생성하는 것이 좋습니다.

  3. [데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.

  4. Amazon S3 버킷의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 S3를 선택합니다.

    2. [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 로그하도록 선택하거나 개별 버킷 또는 함수를 지정할 수 있습니다. 기본적으로 데이터 이벤트는 현재 및 미래의 모든 S3 버킷에 대해 로그됩니다.

      참고

      기본 모든 현재 및 향후 S3 버킷 옵션을 유지하면 현재 AWS 계정에 있는 모든 버킷과 추적 생성을 완료한 후 생성한 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. 또한 해당 활동이 다른 AWS AWS 계정에 속한 버킷에서 수행되더라도 계정의 모든 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 있습니다.

      단일 리전에 대한 추적을 생성하는 경우(를 사용하여 수행 AWS CLI) 계정에서 모든 S3 버킷 선택 옵션을 선택하면 추적과 동일한 리전의 모든 버킷과 해당 리전에서 나중에 생성하는 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. AWS 계정의 다른 리전에 있는 Amazon S3 버킷에 대한 데이터 이벤트는 로깅되지 않습니다.

    3. 기본값인 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 그대로 둘 경우 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 로그하도록 선택합니다.

    4. 개별 버킷을 선택하려면 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]에서 [읽기(Read)] 및 [쓰기(Write)] 확인란의 선택을 해제합니다. [개별 버킷 선택(Individual bucket selection)]에서 데이터 이벤트를 로그할 버킷을 찾습니다. 특정 버킷을 찾으려면 원하는 버킷의 버킷 접두사를 입력합니다. 이 창에서 여러 버킷을 선택할 수 있습니다. 더 많은 버킷의 데이터 이벤트를 로그하려면 [버킷 추가(Add bucket)]를 선택합니다. [읽기(Read)] 이벤트(예:GetObject), [쓰기(Write)] 이벤트(예:PutObject) 또는 둘 다를 로그하도록 선택합니다.

      이 설정은 개별 버킷에 대해 구성한 개별 설정보다 우선 적용됩니다. 예를 들어 모든 S3 버킷에 대해 [읽기(Read)] 이벤트 로깅을 지정한 다음, 데이터 이벤트 로깅 대상으로 특정 버킷을 추가하기로 선택하면 추가한 버킷에 대해 [읽기(Read)]가 사전 선택됩니다. 선택을 취소할 수 없습니다. [Write]에 대한 옵션만 구성할 수 있습니다.

      로깅에서 버킷을 제거하려면 X를 선택합니다.

  5. 데이터 이벤트를 로깅할 다른 리소스 유형을 추가하려면 데이터 이벤트 유형 추가를 선택합니다.

  6. Lambda 함수의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 Lambda를 선택합니다.

    2. [Lambda 함수(Lambda function)]에서 [모든 리전(All regions)]을 선택하여 모든 Lambda 함수를 로그하거나 [ARN으로 입력 함수(Input function as ARN)]를 선택하여 특정 함수에 대한 데이터 이벤트를 로그합니다.

      AWS 계정의 모든 Lambda 함수에 대한 데이터 이벤트를 로그하려면 [현재 및 미래의 모든 함수 로그(Log all current and future functions)]를 선택합니다. 이 설정은 개별 함수에 대해 구성한 개별 설정보다 우선합니다. 일부 함수가 표시되지 않더라도 모든 함수가 로그됩니다.

      참고

      모든 리전에 대해 추적을 생성할 경우 이 옵션을 선택하면 현재 AWS 계정에 있는 모든 함수와 추적 생성을 완료한 후 리전에서 생성할 수 있는 Lambda 함수에 대해 데이터 이벤트 로깅이 활성화됩니다. 단일 리전에 대한 추적을 생성하는 경우(를 사용하여 수행 AWS CLI),이 선택을 통해 AWS 현재 계정의 해당 리전에 있는 모든 함수와 추적 생성을 완료한 후 해당 리전에서 생성할 수 있는 모든 Lambda 함수에 대한 데이터 이벤트 로깅이 활성화됩니다. 다른 리전에서 생성되는 Lambda 함수에 대한 데이터 이벤트 로깅은 활성화되지 않습니다.

      또한 모든 함수에 대한 데이터 이벤트를 로깅하면 다른 AWS 계정에 속한 함수에서 해당 활동이 수행되더라도 계정의 모든 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 AWS 있습니다.

    3. [ARN으로 입력 함수(Input function as ARN)]를 선택한 경우 Lambda 함수의 ARN을 입력합니다.

      참고

      계정의 Lambda 함수가 15,000개를 넘을 경우 추적을 생성할 때 CloudTrail 콘솔에서 함수를 모두 보거나 선택할 수 없습니다. 함수가 모두 표시되지는 않더라도 모든 함수를 로그하는 옵션을 선택할 수 있습니다. 특정 함수에 대한 데이터 이벤트를 로그하려면 함수를 수동으로 추가할 수 있습니다(함수의 ARN을 알고 있는 경우). 콘솔에서 추적 생성을 완료한 다음 AWS CLI 및 put-event-selectors 명령을 사용하여 특정 Lambda 함수에 대한 데이터 이벤트 로깅을 구성할 수도 있습니다. 자세한 내용은 를 사용하여 추적 관리 AWS CLI 단원을 참조하십시오.

  7. 데이터 이벤트를 로깅할 다른 리소스 유형을 추가하려면 데이터 이벤트 유형 추가를 선택합니다.

  8. DynamoDB 테이블의 경우:

    1. [데이터 이벤트 소스(Data event source)]에서 DynamoDB를 선택합니다.

    2. [DynamoDB 테이블 선택(DynamoDB table selection)]에서 [찾아보기(Browse)]를 선택하여 테이블을 선택하거나 액세스 권한이 있는 DynamoDB 테이블의 ARN을 붙여넣습니다. DynamoDB 테이블 ARN은 다음의 형식을 사용합니다.

      arn:partition:dynamodb:region:account_ID:table/table_name

      다른 테이블을 추가하려면 [행 추가(Add row)]를 선택하고 테이블을 찾거나 액세스 권한이 있는 테이블의 ARN을 붙여넣습니다.

  9. 변경 사항 저장을 선택합니다.

를 사용하여 데이터 이벤트 로깅 AWS Command Line Interface

AWS CLI를 사용하여 데이터 이벤트를 로그하도록 추적이나 이벤트 데이터 스토어를 구성할 수 있습니다.

를 사용하여 추적에 대한 데이터 이벤트 로깅 AWS CLI

AWS CLI를 사용하여 관리 이벤트 및 데이터 이벤트를 로깅하도록 추적을 구성할 수 있습니다.

참고
  • 계정에서 관리 이벤트 복사본을 두 개 이상 로그하는 경우 요금이 발생한다는 점에 유의하세요. 데이터 이벤트 로깅에는 항상 요금이 부과됩니다. 자세한 내용은 AWS CloudTrail 요금을 참조하세요.

  • 고급 이벤트 선택기 또는 기본 이벤트 선택기 중 하나를 사용할 수 있습니다. 추적에 고급 이벤트 선택기를 적용하면 기존의 기본 이벤트 선택기를 모두 덮어씁니다.

  • 추적에서 기본 이벤트 선택기를 사용하는 경우 다음 리소스 유형만 로깅할 수 있습니다.

    • AWS::DynamoDB::Table

    • AWS::Lambda::Function

    • AWS::S3::Object

    추가 리소스 유형을 로깅하려면 고급 이벤트 선택기를 사용해야 합니다. 추적을 고급 이벤트 선택기로 변환하려면 get-event-selectors 명령을 실행하여 현재 이벤트 선택기를 확인하고, 이전 이벤트 선택기의 적용 범위와 일치하도록 고급 이벤트 선택기를 구성한 다음, 데이터 이벤트를 로깅할 리소스 유형에 대한 선택기를 추가합니다.

  • 고급 이벤트 선택기를 사용하면 지원되는 고급 이벤트 선택기 필드 지원 고급 이벤트 선택기 필드의 값을 기준으로 필터링하여 관심 있는 데이터 이벤트만 로깅할 수 있습니다. 이러한 필드 구성AdvancedFieldSelector에 대한 자세한 내용은 AWS CloudTrail API 참조의 및이 가이드의 섹션을 참조하세요. 고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링

추적이 관리 이벤트와 데이터 이벤트를 로그하는지 여부를 확인하려면 get-event-selectors 명령을 실행하세요.

aws cloudtrail get-event-selectors --trail-name TrailName

이 명령은 추적에 대한 이벤트 선택기를 반환합니다.

고급 이벤트 선택기를 사용하여 추적에 대한 데이터 이벤트 로깅

참고

추적에 고급 이벤트 선택기를 적용하면 기존의 기본 이벤트 선택기를 모두 덮어씁니다. 고급 이벤트 선택기를 구성하기 전에 get-event-selectors 명령을 실행하여 현재 이벤트 선택기를 확인하고, 이전 이벤트 선택기의 적용 범위와 일치하도록 고급 이벤트 선택기를 구성한 다음, 로깅할 추가 데이터 이벤트에 대한 선택기를 추가합니다.

다음 예제에서는 TrailName이라는 추적에 대한 사용자 지정 고급 이벤트 선택기를 생성하여 읽기 및 쓰기 관리 이벤트(readOnly선택기 생략)PutObject와 라는 버킷을 제외한 모든 Amazon S3 버킷/접두사 조합에 대한 DeleteObject 데이터 이벤트 amzn-s3-demo-bucket 및 라는 AWS Lambda 함수에 대한 데이터 이벤트를 포함합니다MyLambdaFunction. 이들은 사용자 지정 고급 이벤트 선택기이므로 각 선택기 세트에는 설명적인 이름이 있습니다. 후행 슬래시는 S3 버킷에 대한 ARN 값의 일부라는 점에 유의합니다.

aws cloudtrail put-event-selectors --trail-name TrailName --advanced-event-selectors '[ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] } ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction"] } ] } ]'

이 예에서는 추적에 대해 구성된 고급 이벤트 선택기를 반환합니다.

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "NotStartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/" ] }, ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ] }, { "Field": "eventName", "Equals": [ "Invoke" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

고급 이벤트 선택기를 사용하여 Amazon S3 버킷의 모든 Amazon S3 이벤트 로깅

참고

추적에 고급 이벤트 선택기를 적용하면 기존의 기본 이벤트 선택기를 모두 덮어씁니다.

다음 예에서는 특정 S3 버킷의 모든 Amazon S3 객체에 대한 모든 데이터 이벤트를 포함하도록 추적을 구성하는 방법을 보여 줍니다. resources.type 필드의 S3 이벤트 값은 AWS::S3::Object입니다. S3 객체와 S3 버킷에 대한 ARN 값이 약간 다르기 때문에 모든 이벤트를 캡처하려면 resources.ARN에 대해 StartsWith 연산자를 추가해야 합니다.

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:partition:s3:::amzn-s3-demo-bucket/" ] } ] } ] }

고급 이벤트 선택기를 사용하여 AWS Outposts 의 Amazon S3 이벤트 로그

참고

추적에 고급 이벤트 선택기를 적용하면 기존의 기본 이벤트 선택기를 모두 덮어씁니다.

다음 예에서는 Outpost의 모든 Amazon S3 on Outposts 객체에 대한 모든 데이터 이벤트를 포함하도록 추적을 구성하는 방법을 보여 줍니다.

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ] }

기본 이벤트 선택기를 사용하여 이벤트 로그

다음은 기본 이벤트 선택기를 표시하는 get-event-selectors 명령 결과의 예입니다. 기본적으로를 사용하여 추적을 생성하면 추적 AWS CLI은 모든 관리 이벤트를 로깅합니다. 기본적으로 추적은 데이터 이벤트를 로그하지 않습니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName", "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ] }

관리 이벤트 및 데이터 이벤트를 로그하도록 추적을 구성하려면 put-event-selectors 명령을 실행하세요.

다음 예에서는 기본 이벤트 선택기를 사용하여 두 S3 접두사의 S3 객체에 대한 모든 관리 이벤트 및 데이터 이벤트를 포함하도록 추적을 구성하는 방법을 보여 줍니다. 추적 하나당 1~5 개의 이벤트 선택기를 지정할 수 있습니다. 추적 하나당 1~250 개의 데이터 리소스를 지정할 수 있습니다.

참고

기본 이벤트 선택기를 사용하여 데이터 이벤트를 제한하도록 선택한 경우 S3 데이터 리소스의 최대 개수는 250개입니다.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-bucket1/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2;/prefix2"] }] }]'

이 명령은 추적에 대해 구성된 이벤트 선택기를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName", "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::amzn-s3-demo-bucket1/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2", ], "Type": "AWS::S3::Object" } ], "ReadWriteType": "All" } ] }

를 사용하여 이벤트 데이터 스토어에 대한 데이터 이벤트 로깅 AWS CLI

AWS CLI를 사용하여 데이터 이벤트를 포함하는 이벤트 데이터 스토어를 구성할 수 있습니다. create-event-data-store 명령을 사용하여 데이터 이벤트를 기록할 새 이벤트 데이터 스토어를 생성합니다. update-event-data-store 명령을 사용하여 기존 이벤트 데이터 스토어의 고급 이벤트 선택기를 업데이트합니다.

이벤트 데이터 스토어에서 데이터 이벤트를 로깅하도록 고급 이벤트 선택기를 구성합니다. 지원되는 필드 목록은 섹션을 참조하세요고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링.

이벤트 데이터 스토어에 데이터 이벤트가 포함되어 있는지 확인하려면 get-event-data-store명령을 실행합니다.

aws cloudtrail get-event-data-store --event-data-store EventDataStoreARN

이 명령은 이벤트 데이터 스토어의 설정을 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE6441aa", "Name": "ebs-data-events", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Log all EBS direct APIs on EBS snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::EC2::Snapshot" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-04T15:57:33.701000+00:00", "UpdatedTimestamp": "2023-11-20T20:37:34.228000+00:00" }

특정 버킷에 대한 모든 Amazon S3 이벤트 포함

다음 예제에서는 특정 범용 Amazon S3 S3 객체에 대한 모든 데이터 이벤트를 포함하고 bucket-scanner-role에서 생성된 AWS 서비스 이벤트 및 이벤트를 제외하도록 이벤트 데이터 스토어를 생성하는 방법을 보여줍니다userIdentity. resources.type 필드의 S3 이벤트 값은 AWS::S3::Object입니다. S3 객체와 S3 버킷에 대한 ARN 값이 약간 다르기 때문에 모든 이벤트를 캡처하려면 resources.ARN에 대해 StartsWith 연산자를 추가해야 합니다.

aws cloudtrail create-event-data-store --name "EventDataStoreName" --multi-region-enabled \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] }, { "Field": "userIdentity.arn", "NotStartsWith": ["arn:aws:sts::123456789012:assumed-role/bucket-scanner-role"]}, { "Field": "eventType","NotEquals": ["AwsServiceEvent"]} ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE441aa", "Name": "EventDataStoreName", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:partition:s3:::amzn-s3-demo-bucket/" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "userIdentity.arn", "NotStartsWith": [ "arn:aws:sts::123456789012:assumed-role/bucket-scanner-role" ] }, { "Field": "eventType", "NotEquals": [ "AwsServiceEvent" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-11-04T15:57:33.701000+00:00", "UpdatedTimestamp": "2024-11-20T20:49:21.766000+00:00" }

AWS Outposts 이벤트에 대한 Amazon S3 포함

다음 예는 Outpost의 모든 Amazon S3 on Outposts 객체에 대한 모든 데이터 이벤트를 포함하도록 이벤트 데이터 스토어를 생성하는 방법을 보여 줍니다.

aws cloudtrail create-event-data-store --name EventDataStoreName \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

이 명령은 다음 출력 예를 반환합니다.

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-02-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2023-02-20T21:00:17.820000+00:00" }

AWS Config 규정 준수를 위한 데이터 이벤트 로깅

AWS Config 적합성 팩을 사용하여 기업이 연방 위험 및 권한 부여 관리 프로그램(FedRAMP) 또는 미국 국립 표준 기술 연구소(NIST)에서 요구하는 것과 같은 공식 표준을 준수하도록 지원하는 경우, 규정 준수 프레임워크용 적합성 팩은 일반적으로 최소한 Amazon S3 버킷에 대한 데이터 이벤트를 로깅해야 합니다. 규정 준수 프레임워크용 적합성 팩에는 계정의 S3 데이터 이벤트 로깅을 확인하는 cloudtrail-s3-dataevents-enabled라는 관리형 규칙이 포함되어 있습니다. 규정 준수 프레임워크와 연결되지 않은 많은 적합성 팩에도 S3 데이터 이벤트 로깅이 필요합니다. 다음은 이 규칙을 포함하는 적합성 팩의 예입니다.

에서 사용할 수 있는 샘플 적합성 팩의 전체 목록은 개발자 안내서의 적합성 팩 샘플 템플릿을 AWS Config참조하세요. AWS Config

AWS SDK를 사용하여 데이터 이벤트 로깅

GetEventSelectors 작업을 실행하여 추적이 데이터 이벤트를 로깅하고 있는지 확인합니다. PutEventSelectors 작업을 실행하여 데이터 이벤트를 로그하도록 추적을 구성할 수 있습니다. 자세한 내용은 AWS CloudTrail API 참조를 참조하세요.

GetEventSelectors 작업을 실행하여 데이터 이벤트 스토어가 데이터 이벤트를 로깅하고 있는지 확인합니다. CreateEventDatastore 또는 UpdateEventDatastore 작업을 실행하고, 고급 이벤트 선택기를 지정하여 데이터 이벤트를 포함하는 이벤트 데이터 스토어를 구성할 수 있습니다. 자세한 내용은 를 사용하여 이벤트 데이터 스토어 생성, 업데이트 및 관리 AWS CLIAWS CloudTrail API 참조를 참조하십시오.