데이터 이벤트 로깅 - AWS CloudTrail

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

데이터 이벤트 로깅

이 섹션에서는 CloudTrail 콘솔 및 를 사용하여 데이터 이벤트를 기록하는 방법을 설명합니다 AWS CLI.

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

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

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

고급 이벤트 선택기를 사용하여 세분화된 선택기를 생성할 수 있습니다. 이렇게 하면 사용 사례에 따라 관심 있는 특정 이벤트만 기록하여 비용을 제어할 수 있습니다. 예를 들어 고급 이벤트 선택기를 사용하여 필드에 필터를 추가하여 특정 API 통화를 기록할 수 있습니다. eventName 자세한 내용은 고급 이벤트 선택기를 사용하여 데이터 이벤트를 필터링합니다. 단원을 참조하십시오.

참고

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

목차

데이터 이벤트

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

트레일의 경우 기본 또는 고급 이벤트 선택기를 사용하여 범용 버킷, Lambda 함수 및 DynamoDB 테이블 (표의 처음 세 행 참조) 에서 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 함수 실행 활동 (the InvokeAPI).

Lambda AWS::Lambda::Function
Amazon S3

범용 버킷의 객체에 대한 Amazon S3 객체 수준 API 활동 (예: GetObjectDeleteObject,, 및 PutObject API 작업).

S3 AWS::S3::Object
AWS AppConfig

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

AWS AppConfig AWS::AppConfig::Configuration
AWS B2B 데이터 교환

및 에 대한 호출과 같은 트랜스포머 작업을 위한 B2B 데이터 교환 API 활동 GetTransformerJob StartTransformerJob

B2B Data Interchange AWS::B2BI::Transformer
Amazon Bedrock 에이전트 별칭에 대한 Amazon 베드락 API 활동 Bedrock 에이전트 별칭 AWS::Bedrock::AgentAlias
Amazon Bedrock 플로우 별칭의 Amazon 베드락 API 활동. 베드락 플로우 별칭 AWS::Bedrock::FlowAlias
Amazon Bedrock 가드레일에서의 아마존 베드락 API 활동. 베드락 가드레일 AWS::Bedrock::Guardrail
Amazon Bedrock 지식 기반에서의 Amazon Bedrock API 활동. Bedrock 지식 기반 AWS::Bedrock::KnowledgeBase
아마존 CloudFront

CloudFront APIa에서의 활동 KeyValueStore.

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

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

CloudTrail 채널 AWS::CloudTrail::Channel
아마존 CloudWatch

지표에 대한 아마존 CloudWatch API 활동.

CloudWatch 메트릭 AWS::CloudWatch::Metric
아마존 CloudWatch RUM

앱 모니터에서의 아마존 CloudWatch RUM API 활동.

RUM앱 모니터 AWS::RUM::AppMonitor
아마존 CodeWhisperer 사용자 지정에 대한 Amazon CodeWhisperer API 활동. CodeWhisperer 사용자 지정 AWS::CodeWhisperer::Customization
아마존 CodeWhisperer 프로필에서의 아마존 CodeWhisperer API 활동. CodeWhisperer AWS::CodeWhisperer::Profile
Amazon Cognito

아마존 Cognito 자격 증명 API 풀에서의 Amazon Cognito 활동

Cognito 자격 증명 풀 AWS::Cognito::IdentityPool
Amazon DynamoDB

스트림에서의 Amazon API DynamoDB 활동.

DynamoDB Streams AWS::DynamoDB::Stream
Amazon Elastic Block Store

Amazon Elastic Block Store (EBS) 다이렉트 APIs (예: PutSnapshotBlockGetSnapshotBlock,, 아마존 EBS 스냅샷) ListChangedBlocks

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

Amazon FinSpaceAPI환경에서의 활동.

FinSpace AWS::FinSpace::Environment
AWS Glue

AWS Glue APILake Formation에서 만든 테이블에서의 활동

Lake Formation AWS::Glue::Table
아마존 GuardDuty

탐지기를 위한 아마존 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 그린그래스 컴포넌트 버전 AWS::GreengrassV2::ComponentVersion
AWS IoT Greengrass Version 2

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

참고

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

IoT 그린그래스 배포 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 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 인텔리전트 API 랭킹 활동.

Kendra Ranking AWS::KendraRanking::ExecutionPlan
Amazon Keyspaces(Apache Cassandra용) 테이블에서의 Amazon Keyspaces API 활동. 카산드라 테이블 AWS::Cassandra::Table
Amazon Kinesis Data Streams 스트림에서의 Kinesis Data API Streams 활동 Kinesis 스트림 AWS::Kinesis::Stream
Amazon Kinesis Data Streams 스트림 소비자에 대한 Kinesis Data API Streams 활동 Kinesis 스트림 컨슈머 AWS::Kinesis::StreamConsumer
Amazon Kinesis Video Streams 비디오 API 스트림에서의 Kinesis Video Streams 활동 (예: 및 에 대한 호출GetMedia) PutMedia Kinesis 비디오 스트림 AWS::KinesisVideo::Stream
Amazon Machine Learning ML 모델에서의 Machine Learning API 활동. 매칭 러닝 MlModel AWS::MachineLearning::MlModel
Amazon Managed Blockchain

네트워크에서의 아마존 매니지드 블록체인 API 활동.

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

아마존 매니지드 블록체인 JSON - eth_getBalance 또는 eth_getBlockByNumber 같은 이더리움 노드를 RPC 호출합니다.

Managed Blockchain AWS::ManagedBlockchain::Node
Amazon Neptune Graph

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

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

a에서의 Amazon One Enterprise API 액티비티UKey.

아마존 원 UKey AWS::One::UKey
Amazon One Enterprise

사용자에 대한 아마존 원 엔터프라이즈 API 활동.

아마존 원 유저 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 액티브 디렉터리 API 활동을 위한 커넥터.

AWS Private CA 액티브 디렉터리용 커넥터 AWS::PCAConnectorAD::Connector
AWS Private CA

AWS Private CA SCEPAPI활동을 위한 커넥터.

AWS Private CA 용 커넥터 SCEP AWS::PCAConnectorSCEP::Connector
아마존 Q 앱

Amazon Q 앱에서의 데이터 API 활동.

아마존 Q 앱 AWS::QApps:QApp
Amazon Q 비즈니스용

애플리케이션에서의 Amazon Q 비즈니스 API 활동

Amazon Q Business 애플리케이션 AWS::QBusiness::Application
Amazon Q 비즈니스용

데이터 소스에서의 Amazon Q 비즈니스 API 활동

Amazon Q Business 데이터 소스 AWS::QBusiness::DataSource
Amazon Q 비즈니스용

인덱스에 대한 Amazon Q 비즈니스 API 활동.

Amazon Q Business 인덱스 AWS::QBusiness::Index
Amazon Q 비즈니스용

웹 환경에서의 Amazon Q 비즈니스 API 활동

Amazon Q Business 웹 경험 AWS::QBusiness::WebExperience
아마존 RDS

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

RDS데이터 API - DB 클러스터 AWS::RDS::DBCluster
Amazon S3

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

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

디렉터리 버킷의 객체에 대한 Amazon S3 객체 수준 API 활동 (예: GetObjectDeleteObject,,, PutObject API 작업)

S3 익스프레스 AWS::S3Express::Object
Amazon S3

Amazon S3 Object Lambda 액세스 API 포인트 활동 (예: 및 에 대한 호출) CompleteMultipartUpload GetObject

S3 객체 Lambda AWS::S3ObjectLambda::AccessPoint
Outposts에서의 Amazon S3

Outposts의 Amazon S3 기반 객체 수준 활동 API

S3 Outposts AWS::S3Outposts::Object
아마존 SageMaker 엔드포인트에서의 Amazon SageMaker InvokeEndpointWithResponseStream활동. SageMaker 엔드포인트 AWS::SageMaker::Endpoint
아마존 SageMaker

피처 스토어에서의 Amazon SageMaker API 활동.

SageMaker 기능 스토어 AWS::SageMaker::FeatureGroup
아마존 SageMaker

실험 시험 구성 요소에 대한 Amazon SageMaker API 활동.

SageMaker 메트릭, 실험, 시험 구성 요소 AWS::SageMaker::ExperimentTrialComponent
아마존 SNS

플랫폼 엔드포인트에서 Amazon을 SNS PublishAPI운영합니다.

SNS플랫폼 엔드포인트 AWS::SNS::PlatformEndpoint
아마존 SNS

SNSPublish아마존과 주제에 관한 PublishBatchAPI운영.

SNS주제 AWS::SNS::Topic
아마존 SQS

메시지에 대한 아마존 SQS API 활동.

SQS AWS::SQS::Queue
AWS Step Functions

스테이트 머신에서의 Step Functions API 액티비티

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

AWS Supply Chain API인스턴스에서의 활동.

공급망 AWS::SCN::Instance
아마존 SWF

도메인에서의 아마존 SWF API 활동.

SWF도메인 AWS::SWF::Domain
AWS Systems Manager 제어 채널에서의 Systems Manager API 활동 Systems Manager AWS::SSMMessages::ControlChannel
AWS Systems Manager 관리 노드에서의 Systems Manager API 활동 Systems Manager 관리형 노드 AWS::SSM::ManagedNode
Amazon Timestream 데이터베이스에서의 Amazon Timestream QueryAPI활동. Timestream 데이터베이스 AWS::Timestream::Database
Amazon Timestream 테이블에서의 Amazon Timestream QueryAPI활동 Timestream 테이블 AWS::Timestream::Table
Amazon Verified Permissions

정책 스토어에서의 Amazon 검증 권한 API 활동

Amazon Verified Permissions AWS::VerifiedPermissions::PolicyStore
아마존 WorkSpaces 씬 클라이언트 WorkSpaces 디바이스에서의 씬 클라이언트 API 활동. 씬 클라이언트 디바이스 AWS::ThinClient::Device
아마존 WorkSpaces 씬 클라이언트 WorkSpaces 환경에서의 씬 클라이언트 API 활동. 씬 클라이언트 환경 AWS::ThinClient::Environment
AWS X-Ray

흔적에 대한 X선 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 사용자는 빈 접두사와 읽기쓰기 데이터 이벤트를 모두 기록하는 옵션을 지정했습니다.

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

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

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

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

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

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

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

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

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

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

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

  6. 이벤트는 트레일 또는 이벤트 데이터 스토어에 GetObject 지정되어 있지만 읽기 유형의 Amazon S3 객체 수준인 버킷과 접두사에서 발생했습니다. API 에서 CloudTrail 데이터 읽기 이벤트로 기록되며 트레일 또는 이벤트 데이터 스토어는 읽기 이벤트를 기록하도록 구성되지 않습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.

참고

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

계정의 모든 Amazon S3 데이터 이벤트를 기록하도록 트레일을 구성하는 경우 로그 파일을 수신하는 Amazon S3 버킷에 대한 데이터 이벤트 로깅을 피하려면 다른 AWS 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 버킷을 소유하고 있으며 이벤트가 추적에 대한 설정과 일치하므로 추적은 동일한 이벤트도 처리하고 로깅합니다. 이제 이벤트 복사본이 2개 (하나는 Bob의 트레일에 로그인되고 다른 하나는 사용자 계정에 로그인) 가 있으므로 데이터 이벤트 복사본 2개에 대한 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은 작업과 함께 S3 버킷에 객체를 업로드합니다. PutObject API

  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 작업에 대한 이벤트를 트레일에서 받게 됩니다. CloudTrail데이터 이벤트의 각 사본에 대해 사용자 계정과 Mary의 계정에 요금이 부과됩니다. 하나는 Mary의 추적에, 다른 하나는 사용자 계정에 청구됩니다.

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

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

  • 읽기(Read)

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

  • 쓰기(Write)

    쓰기 이벤트에는 리소스를 수정 (또는 수정할 수 있는) API 작업이 포함됩니다. 예를 들어 Amazon EC2 RunInstancesTerminateInstances API 운영 팀에서 인스턴스를 수정합니다.

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

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

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

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

  3. Amazon EC2 DescribeInstancesTerminateInstances API 운영은 귀하의 계정에서 이루어집니다.

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

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

를 사용하여 데이터 이벤트를 기록합니다. AWS Management Console

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

트레일의 경우 데이터 이벤트를 기록하는 단계는 고급 이벤트 선택기를 사용하는지 아니면 기본 이벤트 선택기를 사용하는지에 따라 달라집니다. 고급 이벤트 선택기를 사용하여 모든 데이터 이벤트 유형의 데이터 이벤트를 기록할 수 있지만, 기본 이벤트 선택기를 사용하는 경우 Amazon S3 버킷과 버킷 객체, AWS Lambda 함수 및 Amazon DynamoDB 테이블에 대한 데이터 이벤트를 기록하는 것으로 제한됩니다.

다음 절차를 사용하여 데이터 이벤트를 로그하도록 기존 이벤트 데이터 스토어를 업데이트합니다. 고급 이벤트 선택기 사용에 대한 자세한 내용은 고급 이벤트 선택기를 사용하여 데이터 이벤트를 필터링합니다. 이 항목을 참조하십시오.

  1. 에서 AWS Management Console 로그인하고 CloudTrail 콘솔을 여십시오. https://console.aws.amazon.com/cloudtrail/

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

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

    참고

    이벤트가 포함된 CloudTrail 이벤트 데이터 저장소에서만 데이터 이벤트를 활성화할 수 있습니다. AWS Config 구성 항목, CloudTrail Insights CloudTrail 이벤트 또는 비 이벤트에 대한 이벤트 데이터 저장소의 데이터 이벤트를 활성화할 수 없습니다.AWS

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

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

  6. [데이터 이벤트 유형(Data event type)]에서 데이터 이벤트를 로그할 리소스 유형을 선택합니다.

  7. 로그 셀렉터 템플릿을 선택하세요. CloudTrail 리소스 유형에 대한 모든 데이터 이벤트를 기록하는 사전 정의된 템플릿이 포함되어 있습니다. 사용자 지정 로그 선택기 템플릿을 구축하려면 [사용자 지정(Custom)]을 선택합니다.

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

  9. [고급 이벤트 선택기(Advanced event selectors)]에서 데이터 이벤트를 로그하려는 특정 리소스에 대한 표현식을 작성합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.

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

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

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

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

        다음 표에는 각 resources.type 형식에 대한 유효한 ARN 형식이 나와 있습니다.

        참고

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

        resources.type 리소스. ARN
        AWS::DynamoDB::Table1
        arn:partition:dynamodb:region:account_ID:table/table_name
        AWS::Lambda::Function
        arn:partition:lambda:region:account_ID:function:function_name

        AWS::S3::Object2

        arn:partition:s3:::amzn-s3-demo-bucket/ arn:partition:s3:::amzn-s3-demo-bucket/object_or_file_name/
        AWS::AppConfig::Configuration
        arn:partition:appconfig:region:account_ID:application/application_ID/environment/environment_ID/configuration/configuration_profile_ID
        AWS::B2BI::Transformer
        arn:partition:b2bi:region:account_ID:transformer/transformer_ID
        AWS::Bedrock::AgentAlias
        arn:partition:bedrock:region:account_ID:agent-alias/agent_ID/alias_ID
        AWS::Bedrock::FlowAlias
        arn:partition:bedrock:region:account_ID:flow/flow_ID/alias/alias_ID
        AWS::Bedrock::Guardrail
        arn:partition:bedrock:region:account_ID:guardrail/guardrail_ID
        AWS::Bedrock::KnowledgeBase
        arn:partition:bedrock:region:account_ID:knowledge-base/knowledge_base_ID
        AWS::Cassandra::Table
        arn:partition:cassandra:region:account_ID:keyspace/keyspace_name/table/table_name
        AWS::CloudFront::KeyValueStore
        arn:partition:cloudfront:region:account_ID:key-value-store/KVS_name
        AWS::CloudTrail::Channel
        arn:partition:cloudtrail:region:account_ID:channel/channel_UUID
        AWS::CodeWhisperer::Customization
        arn:partition:codewhisperer:region:account_ID:customization/customization_ID
        AWS::CodeWhisperer::Profile
        arn:partition:codewhisperer:region:account_ID:profile/profile_ID
        AWS::Cognito::IdentityPool
        arn:partition:cognito-identity:region:account_ID:identitypool/identity_pool_ID
        AWS::DynamoDB::Stream
        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time
        AWS::EC2::Snapshot
        arn:partition:ec2:region::snapshot/snapshot_ID
        AWS::EMRWAL::Workspace
        arn:partition:emrwal:region:account_ID:workspace/workspace_name
        AWS::FinSpace::Environment
        arn:partition:finspace:region:account_ID:environment/environment_ID
        AWS::Glue::Table
        arn:partition:glue:region:account_ID:table/database_name/table_name
        AWS::GreengrassV2::ComponentVersion
        arn:partition:greengrass:region:account_ID:components/component_name
        AWS::GreengrassV2::Deployment
        arn:partition:greengrass:region:account_ID:deployments/deployment_ID
        AWS::GuardDuty::Detector
        arn:partition:guardduty:region:account_ID:detector/detector_ID
        AWS::IoT::Certificate
        arn:partition:iot:region:account_ID:cert/certificate_ID
        AWS::IoT::Thing
        arn:partition:iot:region:account_ID:thing/thing_ID
        AWS::IoTSiteWise::Asset
        arn:partition:iotsitewise:region:account_ID:asset/asset_ID
        AWS::IoTSiteWise::TimeSeries
        arn:partition:iotsitewise:region:account_ID:timeseries/timeseries_ID
        AWS::IoTTwinMaker::Entity
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID/entity/entity_ID
        AWS::IoTTwinMaker::Workspace
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID
        AWS::KendraRanking::ExecutionPlan
        arn:partition:kendra-ranking:region:account_ID:rescore-execution-plan/rescore_execution_plan_ID
        AWS::Kinesis::Stream
        arn:partition:kinesis:region:account_ID:stream/stream_name
        AWS::Kinesis::StreamConsumer
        arn:partition:kinesis:region:account_ID:stream_type/stream_name/consumer/consumer_name:consumer_creation_timestamp
        AWS::KinesisVideo::Stream
        arn:partition:kinesisvideo:region:account_ID:stream/stream_name/creation_time
        AWS::MachineLearning::MlModel
        arn:partition:machinelearning:region:account_ID:mlmodel/model_ID
        AWS::ManagedBlockchain::Network
        arn:partition:managedblockchain:::networks/network_name
        AWS::ManagedBlockchain::Node
        arn:partition:managedblockchain:region:account_ID:nodes/node_ID
        AWS::MedicalImaging::Datastore
        arn:partition:medical-imaging:region:account_ID:datastore/data_store_ID
        AWS::NeptuneGraph::Graph
        arn:partition:neptune-graph:region:account_ID:graph/graph_ID
        AWS::One::UKey
        arn:partition:one:region:account_ID:user/user_ID/u-key/u-key_ID
        AWS::One::User
        arn:partition:one:region:account_ID:user/user_ID
        AWS::PaymentCryptography::Alias
        arn:partition:payment-cryptography:region:account_ID:alias/alias
        AWS::PaymentCryptography::Key
        arn:partition:payment-cryptography:region:account_ID:key/key_ID
        AWS::PCAConnectorAD::Connector
        arn:partition:pca-connector-ad:region:account_ID:connector/connector_ID
        AWS::PCAConnectorSCEP::Connector
        arn:partition:pca-connector-scep:region:account_ID:connector/connector_ID
        AWS::QApps:QApp
        arn:partition:qapps:region:account_ID:application/application_UUID/qapp/qapp_UUID
        AWS::QBusiness::Application
        arn:partition:qbusiness:region:account_ID:application/application_ID
        AWS::QBusiness::DataSource
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID/data-source/datasource_ID
        AWS::QBusiness::Index
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID
        AWS::QBusiness::WebExperience
        arn:partition:qbusiness:region:account_ID:application/application_ID/web-experience/web_experienc_ID
        AWS::RDS::DBCluster
        arn:partition:rds:region:account_ID:cluster/cluster_name
        AWS::RUM::AppMonitor
        arn:partition:rum:region:account_ID:appmonitor/app_monitor_name

        AWS::S3::AccessPoint3

        arn:partition:s3:region:account_ID:accesspoint/access_point_name

        AWS::S3Express::Object

        arn:partition:s3express:region:account_ID:bucket/bucket_name
        AWS::S3ObjectLambda::AccessPoint
        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name
        AWS::S3Outposts::Object
        arn:partition:s3-outposts:region:account_ID:object_path
        AWS::SageMaker::Endpoint
        arn:partition:sagemaker:region:account_ID:endpoint/endpoint_name
        AWS::SageMaker::ExperimentTrialComponent
        arn:partition:sagemaker:region:account_ID:experiment-trial-component/experiment_trial_component_name
        AWS::SageMaker::FeatureGroup
        arn:partition:sagemaker:region:account_ID:feature-group/feature_group_name
        AWS::SCN::Instance
        arn:partition:scn:region:account_ID:instance/instance_ID
        AWS::ServiceDiscovery::Namespace
        arn:partition:servicediscovery:region:account_ID:namespace/namespace_ID
        AWS::ServiceDiscovery::Service
        arn:partition:servicediscovery:region:account_ID:service/service_ID
        AWS::SNS::PlatformEndpoint
        arn:partition:sns:region:account_ID:endpoint/endpoint_type/endpoint_name/endpoint_ID
        AWS::SNS::Topic
        arn:partition:sns:region:account_ID:topic_name
        AWS::SQS::Queue
        arn:partition:sqs:region:account_ID:queue_name
        AWS::SSM::ManagedNode

        는 다음 형식 중 ARN 하나여야 합니다.

        • arn:partition:ssm:region:account_ID:managed-instance/instance_ID

        • arn:partition:ec2:region:account_ID:instance/instance_ID

        AWS::SSMMessages::ControlChannel
        arn:partition:ssmmessages:region:account_ID:control-channel/control_channel_ID
        AWS::StepFunctions::StateMachine

        는 다음 형식 중 ARN 하나여야 합니다.

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name/label_name

        AWS::SWF::Domain
        arn:partition:swf:region:account_ID:/domain/domain_name
        AWS::ThinClient::Device
        arn:partition:thinclient:region:account_ID:device/device_ID
        AWS::ThinClient::Environment
        arn:partition:thinclient:region:account_ID:environment/environment_ID
        AWS::Timestream::Database
        arn:partition:timestream:region:account_ID:database/database_name
        AWS::Timestream::Table
        arn:partition:timestream:region:account_ID:database/database_name/table/table_name
        AWS::VerifiedPermissions::PolicyStore
        arn:partition:verifiedpermissions:region:account_ID:policy-store/policy_store_ID

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

        2 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 기록하려면 StartsWith 연산자를 사용하고 ARN 버킷만 일치하는 값으로 포함하십시오. 후행 슬래시는 의도적인 것입니다. 제외하지 마세요.

        3 S3 액세스 포인트의 모든 객체에 이벤트를 기록하려면 액세스 ARN 포인트만 사용하고 객체 경로는 포함하지 않고 StartsWith or NotStartsWith 연산자를 사용하는 것이 좋습니다.

      데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 작업, 리소스 및 조건 키를 참조하십시오.

    2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어, 이벤트 데이터 스토어에 기록된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 리소스로 설정하면 됩니다. ARN연산자를 to not start로 설정한 다음 S3 ARN 버킷에 붙여넣거나 이벤트를 기록하지 않으려는 S3 버킷을 찾아보십시오.

      두 번째 S3 버킷을 추가하려면 + Condition을 선택한 다음 이전 지침을 반복하여 양식에 붙여넣거나 다른 버킷을 검색하십시오. ARN

      참고

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

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

  10. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다. 데이터 이벤트 유형에 대한 고급 이벤트 선택기를 구성하려면 6단계부터 이 단계까지 반복합니다.

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

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

  1. CloudTrail 콘솔의 대시보드 또는 트레일 페이지에서 업데이트하려는 트레일을 선택합니다.

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

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

  4. [데이터 이벤트 유형(Data event type)]에서 데이터 이벤트를 로그할 리소스 유형을 선택합니다.

  5. 로그 셀렉터 템플릿을 선택하세요. CloudTrail 리소스 유형에 대한 모든 데이터 이벤트를 기록하는 사전 정의된 템플릿이 포함되어 있습니다. 사용자 지정 로그 선택기 템플릿을 구축하려면 [사용자 지정(Custom)]을 선택합니다.

    참고

    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

  7. [고급 이벤트 선택기(Advanced event selectors)]에서 데이터 이벤트를 로그하려는 특정 리소스에 대한 표현식을 작성합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.

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

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

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

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

        다음 표에는 각 resources.type 형식에 대한 유효한 ARN 형식이 나와 있습니다.

        참고

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

        resources.type 리소스. ARN
        AWS::DynamoDB::Table1
        arn:partition:dynamodb:region:account_ID:table/table_name
        AWS::Lambda::Function
        arn:partition:lambda:region:account_ID:function:function_name

        AWS::S3::Object2

        arn:partition:s3:::amzn-s3-demo-bucket/ arn:partition:s3:::amzn-s3-demo-bucket/object_or_file_name/
        AWS::AppConfig::Configuration
        arn:partition:appconfig:region:account_ID:application/application_ID/environment/environment_ID/configuration/configuration_profile_ID
        AWS::B2BI::Transformer
        arn:partition:b2bi:region:account_ID:transformer/transformer_ID
        AWS::Bedrock::AgentAlias
        arn:partition:bedrock:region:account_ID:agent-alias/agent_ID/alias_ID
        AWS::Bedrock::FlowAlias
        arn:partition:bedrock:region:account_ID:flow/flow_ID/alias/alias_ID
        AWS::Bedrock::Guardrail
        arn:partition:bedrock:region:account_ID:guardrail/guardrail_ID
        AWS::Bedrock::KnowledgeBase
        arn:partition:bedrock:region:account_ID:knowledge-base/knowledge_base_ID
        AWS::Cassandra::Table
        arn:partition:cassandra:region:account_ID:keyspace/keyspace_name/table/table_name
        AWS::CloudFront::KeyValueStore
        arn:partition:cloudfront:region:account_ID:key-value-store/KVS_name
        AWS::CloudTrail::Channel
        arn:partition:cloudtrail:region:account_ID:channel/channel_UUID
        AWS::CodeWhisperer::Customization
        arn:partition:codewhisperer:region:account_ID:customization/customization_ID
        AWS::CodeWhisperer::Profile
        arn:partition:codewhisperer:region:account_ID:profile/profile_ID
        AWS::Cognito::IdentityPool
        arn:partition:cognito-identity:region:account_ID:identitypool/identity_pool_ID
        AWS::DynamoDB::Stream
        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time
        AWS::EC2::Snapshot
        arn:partition:ec2:region::snapshot/snapshot_ID
        AWS::EMRWAL::Workspace
        arn:partition:emrwal:region:account_ID:workspace/workspace_name
        AWS::FinSpace::Environment
        arn:partition:finspace:region:account_ID:environment/environment_ID
        AWS::Glue::Table
        arn:partition:glue:region:account_ID:table/database_name/table_name
        AWS::GreengrassV2::ComponentVersion
        arn:partition:greengrass:region:account_ID:components/component_name
        AWS::GreengrassV2::Deployment
        arn:partition:greengrass:region:account_ID:deployments/deployment_ID
        AWS::GuardDuty::Detector
        arn:partition:guardduty:region:account_ID:detector/detector_ID
        AWS::IoT::Certificate
        arn:partition:iot:region:account_ID:cert/certificate_ID
        AWS::IoT::Thing
        arn:partition:iot:region:account_ID:thing/thing_ID
        AWS::IoTSiteWise::Asset
        arn:partition:iotsitewise:region:account_ID:asset/asset_ID
        AWS::IoTSiteWise::TimeSeries
        arn:partition:iotsitewise:region:account_ID:timeseries/timeseries_ID
        AWS::IoTTwinMaker::Entity
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID/entity/entity_ID
        AWS::IoTTwinMaker::Workspace
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID
        AWS::KendraRanking::ExecutionPlan
        arn:partition:kendra-ranking:region:account_ID:rescore-execution-plan/rescore_execution_plan_ID
        AWS::Kinesis::Stream
        arn:partition:kinesis:region:account_ID:stream/stream_name
        AWS::Kinesis::StreamConsumer
        arn:partition:kinesis:region:account_ID:stream_type/stream_name/consumer/consumer_name:consumer_creation_timestamp
        AWS::KinesisVideo::Stream
        arn:partition:kinesisvideo:region:account_ID:stream/stream_name/creation_time
        AWS::MachineLearning::MlModel
        arn:partition:machinelearning:region:account_ID:mlmodel/model_ID
        AWS::ManagedBlockchain::Network
        arn:partition:managedblockchain:::networks/network_name
        AWS::ManagedBlockchain::Node
        arn:partition:managedblockchain:region:account_ID:nodes/node_ID
        AWS::MedicalImaging::Datastore
        arn:partition:medical-imaging:region:account_ID:datastore/data_store_ID
        AWS::NeptuneGraph::Graph
        arn:partition:neptune-graph:region:account_ID:graph/graph_ID
        AWS::One::UKey
        arn:partition:one:region:account_ID:user/user_ID/u-key/u-key_ID
        AWS::One::User
        arn:partition:one:region:account_ID:user/user_ID
        AWS::PaymentCryptography::Alias
        arn:partition:payment-cryptography:region:account_ID:alias/alias
        AWS::PaymentCryptography::Key
        arn:partition:payment-cryptography:region:account_ID:key/key_ID
        AWS::PCAConnectorAD::Connector
        arn:partition:pca-connector-ad:region:account_ID:connector/connector_ID
        AWS::PCAConnectorSCEP::Connector
        arn:partition:pca-connector-scep:region:account_ID:connector/connector_ID
        AWS::QApps:QApp
        arn:partition:qapps:region:account_ID:application/application_UUID/qapp/qapp_UUID
        AWS::QBusiness::Application
        arn:partition:qbusiness:region:account_ID:application/application_ID
        AWS::QBusiness::DataSource
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID/data-source/datasource_ID
        AWS::QBusiness::Index
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID
        AWS::QBusiness::WebExperience
        arn:partition:qbusiness:region:account_ID:application/application_ID/web-experience/web_experienc_ID
        AWS::RDS::DBCluster
        arn:partition:rds:region:account_ID:cluster/cluster_name
        AWS::RUM::AppMonitor
        arn:partition:rum:region:account_ID:appmonitor/app_monitor_name

        AWS::S3::AccessPoint3

        arn:partition:s3:region:account_ID:accesspoint/access_point_name

        AWS::S3Express::Object

        arn:partition:s3express:region:account_ID:bucket/bucket_name
        AWS::S3ObjectLambda::AccessPoint
        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name
        AWS::S3Outposts::Object
        arn:partition:s3-outposts:region:account_ID:object_path
        AWS::SageMaker::Endpoint
        arn:partition:sagemaker:region:account_ID:endpoint/endpoint_name
        AWS::SageMaker::ExperimentTrialComponent
        arn:partition:sagemaker:region:account_ID:experiment-trial-component/experiment_trial_component_name
        AWS::SageMaker::FeatureGroup
        arn:partition:sagemaker:region:account_ID:feature-group/feature_group_name
        AWS::SCN::Instance
        arn:partition:scn:region:account_ID:instance/instance_ID
        AWS::ServiceDiscovery::Namespace
        arn:partition:servicediscovery:region:account_ID:namespace/namespace_ID
        AWS::ServiceDiscovery::Service
        arn:partition:servicediscovery:region:account_ID:service/service_ID
        AWS::SNS::PlatformEndpoint
        arn:partition:sns:region:account_ID:endpoint/endpoint_type/endpoint_name/endpoint_ID
        AWS::SNS::Topic
        arn:partition:sns:region:account_ID:topic_name
        AWS::SQS::Queue
        arn:partition:sqs:region:account_ID:queue_name
        AWS::SSM::ManagedNode

        는 다음 형식 중 ARN 하나여야 합니다.

        • arn:partition:ssm:region:account_ID:managed-instance/instance_ID

        • arn:partition:ec2:region:account_ID:instance/instance_ID

        AWS::SSMMessages::ControlChannel
        arn:partition:ssmmessages:region:account_ID:control-channel/control_channel_ID
        AWS::StepFunctions::StateMachine

        는 다음 형식 중 ARN 하나여야 합니다.

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name/label_name

        AWS::SWF::Domain
        arn:partition:swf:region:account_ID:/domain/domain_name
        AWS::ThinClient::Device
        arn:partition:thinclient:region:account_ID:device/device_ID
        AWS::ThinClient::Environment
        arn:partition:thinclient:region:account_ID:environment/environment_ID
        AWS::Timestream::Database
        arn:partition:timestream:region:account_ID:database/database_name
        AWS::Timestream::Table
        arn:partition:timestream:region:account_ID:database/database_name/table/table_name
        AWS::VerifiedPermissions::PolicyStore
        arn:partition:verifiedpermissions:region:account_ID:policy-store/policy_store_ID

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

        2 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 기록하려면 StartsWith 연산자를 사용하고 ARN 버킷만 일치하는 값으로 포함하십시오. 후행 슬래시는 의도적인 것입니다. 제외하지 마세요.

        3 S3 액세스 포인트의 모든 객체에 이벤트를 기록하려면 액세스 ARN 포인트만 사용하고 객체 경로는 포함하지 않고 StartsWith or NotStartsWith 연산자를 사용하는 것이 좋습니다.

      데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 작업, 리소스 및 조건 키를 참조하십시오.

    2. 각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어, 트레일에 기록된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 리소스로 설정하면 됩니다. ARN에서 연산자를 로 시작하지 않도록 설정한 다음 S3 ARN 버킷에 붙여넣거나 이벤트를 기록하지 않으려는 S3 버킷을 찾아보십시오.

      두 번째 S3 버킷을 추가하려면 + Condition을 선택한 다음 이전 지침을 반복하여 양식에 붙여넣거나 다른 버킷을 검색하십시오. ARN

      참고

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

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

  8. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다. 데이터 이벤트 유형에 대한 고급 이벤트 선택기를 구성하려면 4단계부터 이 단계까지 반복합니다.

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

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

  1. 에 AWS Management Console 로그인하고 에서 CloudTrail https://console.aws.amazon.com/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

      를 사용하여 단일 지역에 대한 트레일을 생성하는 경우 계정의 모든 S3 버킷 선택 옵션을 선택하면 트레일과 동일한 리전에 있는 모든 버킷과 해당 리전에서 나중에 생성하는 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. AWS CLI 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. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다.

  6. Lambda 함수의 경우:

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

    2. Lambda 함수에서 모든 Lambda 함수를 로깅하려면 All region (All region) 을 선택하고, 특정 함수의 데이터 이벤트를 로깅하려면 입력 함수 ARN a를 선택합니다.

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

      참고

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

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

    3. 입력 함수를 다음과 같이 ARN 선택하는 경우 Lambda ARN 함수의 를 입력합니다.

      참고

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

  7. 데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다.

  8. DynamoDB 테이블의 경우:

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

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

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

      다른 테이블을 추가하려면 행 추가를 선택하고 액세스 권한이 있는 테이블을 찾아보거나 테이블을 붙여넣습니다. ARN

  9. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 데이터 이벤트를 기록합니다. AWS Command Line Interface

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

를 사용하여 트레일의 데이터 이벤트를 기록합니다. AWS CLI

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

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

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

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

    • AWS::DynamoDB::Table

    • AWS::Lambda::Function

    • AWS::S3::Object

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

  • 고급 이벤트 선택기를 사용하면 eventName, resources.ARNreadOnly 필드의 값을 기준으로 필터링하여 관심 있는 데이터 이벤트만 로깅할 수 있습니다. 이러한 필드를 구성하는 방법에 대한 자세한 AdvancedFieldSelector내용은 AWS CloudTrail API참조고급 이벤트 선택기를 사용하여 데이터 이벤트를 필터링합니다. 이 항목을 참조하십시오.

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

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

이 명령은 트레일의 이벤트 셀렉터를 반환합니다.

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

참고

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

다음 예제에서는 라는 이름의 트레일에 대한 사용자 지정 고급 이벤트 선택기를 만듭니다.TrailName 읽기 및 쓰기 관리 이벤트 (readOnly선택기 생략) 와 이름이 지정된 PutObject amzn-s3-demo-bucket 버킷과 이름이 지정된 함수의 DeleteObject 데이터 이벤트를 제외한 모든 Amazon S3 버킷/접두사 조합에 대한 데이터 이벤트를 포함합니다. 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 캡처하려면 for 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 이벤트 포함

다음 예는 특정 S3 버킷의 모든 Amazon S3 객체에 대한 모든 데이터 이벤트를 포함하는 추적을 생성하는 방법을 보여 줍니다. resources.type 필드의 S3 이벤트 값은 AWS::S3::Object입니다. S3 객체와 S3 버킷의 ARN 값이 약간 다르므로 모든 이벤트를 resources.ARN 캡처하려면 for 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/"] } ] } ]'

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

{ "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" ] } ] } ], "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: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) 또는 미국 표준 및 기술 연구소 () 에서 요구하는 것과 같은 공식화된 표준을 준수하도록 지원하는 경우, 규정 준수 프레임워크용 적합성 팩을 사용하려면 일반적으로 최소한 Amazon S3 버킷에 대한 데이터 이벤트를 기록해야 합니다. NIST 규정 준수 프레임워크용 적합성 팩에는 계정의 S3 데이터 이벤트 로깅을 확인하는 cloudtrail-s3-dataevents-enabled라는 관리형 규칙이 포함되어 있습니다. 규정 준수 프레임워크와 연결되지 않은 많은 적합성 팩에도 S3 데이터 이벤트 로깅이 필요합니다. 다음은 이 규칙을 포함하는 적합성 팩의 예입니다.

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

를 사용하여 데이터 이벤트를 기록합니다. AWS SDKs

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

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