기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 이벤트 로깅
이 섹션에서는 CloudTrail 콘솔 및 를 사용하여 데이터 이벤트를 기록하는 방법을 설명합니다 AWS CLI.
기본적으로 추적과 이벤트 데이터 스토어는 데이터 이벤트를 로그하지 않습니다. 데이터 이벤트에는 추가 요금이 적용됩니다. 자세한 내용은 AWS CloudTrail 요금
데이터 이벤트는 리소스 상에서, 또는 리소스 내에서 수행되는 리소스 작업에 대한 정보를 제공합니다. 이를 데이터 영역 작업이라고도 합니다. 데이터 이벤트가 대량 활동인 경우도 있습니다.
예제 데이터 이벤트에는 다음이 포함됩니다.
-
S3 버킷의 객체에 대한 Amazon S3 객체 수준 API 활동 (예:
GetObject
DeleteObject
,, 및PutObject
API 작업). -
AWS Lambda 함수 실행 활동 (the).
Invoke
API -
CloudTrail
PutAuditEvents
외부 이벤트를 기록하는 데 사용되는 CloudTrail Lake 채널에서의 활동 AWS. -
SNS
Publish
아마존과 주제에 관한PublishBatch
API운영.
고급 이벤트 선택기를 사용하여 세분화된 선택기를 생성할 수 있습니다. 이렇게 하면 사용 사례에 따라 관심 있는 특정 이벤트만 기록하여 비용을 제어할 수 있습니다. 예를 들어 고급 이벤트 선택기를 사용하여 필드에 필터를 추가하여 특정 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 항목 수준 활동 (예: 참고스트림이 활성화된 테이블의 경우 데이터 이벤트의 |
DynamoDB |
|
AWS Lambda | AWS Lambda 함수 실행 활동 (the |
Lambda | AWS::Lambda::Function |
Amazon S3 | 범용 버킷의 객체에 대한 Amazon S3 객체 수준 API 활동 (예: |
S3 | AWS::S3::Object |
AWS AppConfig | AWS AppConfig API및 에 대한 호출과 같은 구성 작업을 위한 활동 |
AWS AppConfig | AWS::AppConfig::Configuration |
AWS B2B 데이터 교환 | 및 에 대한 호출과 같은 트랜스포머 작업을 위한 B2B 데이터 교환 API 활동 |
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 Cloud Map | AWS Cloud Map API서비스에서의 활동. | AWS Cloud Map service |
|
AWS CloudTrail | CloudTrail |
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 | DynamoDB Streams | AWS::DynamoDB::Stream |
|
Amazon Elastic Block Store | Amazon Elastic Block Store (EBS) 다이렉트 APIs (예: |
아마존 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 | IoT 인증서 | AWS::IoT::Certificate |
|
AWS IoT | 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 자산 | AWS::IoTSiteWise::Asset |
|
AWS IoT SiteWise | 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 - |
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 활동 (예: |
S3 익스프레스 | AWS::S3Express::Object |
Amazon S3 | Amazon S3 Object Lambda 액세스 API 포인트 활동 (예: 및 에 대한 호출) |
S3 객체 Lambda | AWS::S3ObjectLambda::AccessPoint |
Outposts에서의 Amazon S3 | 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 |
SNS플랫폼 엔드포인트 | AWS::SNS::PlatformEndpoint |
아마존 SNS | SNS |
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도메인 | 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 Query API활동. |
Timestream 데이터베이스 | AWS::Timestream::Database |
Amazon Timestream | 테이블에서의 Amazon Timestream Query API활동 |
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-Ray 트레이스 | AWS::XRay::Trace |
CloudTrail 데이터 이벤트를 기록하려면 활동을 수집하려는 각 리소스 유형을 명시적으로 추가해야 합니다. 자세한 내용은 CloudTrail 콘솔로 트레일 만들기 및 콘솔을 사용하여 이벤트용 CloudTrail 이벤트 데이터 저장소를 생성합니다. 단원을 참조하세요.
단일 리전 추적 또는 이벤트 데이터 스토어에서는 해당 리전에서 액세스할 수 있는 리소스에 대해서만 데이터 이벤트를 로그할 수 있습니다. S3 버킷은 글로벌이지만 AWS Lambda 함수와 DynamoDB 테이블은 지역별로 다릅니다.
데이터 이벤트 로깅에는 추가 요금이 부과됩니다. CloudTrail 요금은 요금을 참조하십시오.AWS CloudTrail
예: Amazon S3 객체에 대한 데이터 이벤트 로깅
S3 버킷의 모든 S3 객체에 대한 데이터 이벤트 로깅
다음 예에서는 amzn-s3-demo-bucket
이라는 S3 버킷에 대한 모든 데이터 이벤트의 로깅을 구성할 때 로깅이 어떻게 작동하는지 보여줍니다. 이 예제에서 CloudTrail 사용자는 빈 접두사와 읽기 및 쓰기 데이터 이벤트를 모두 기록하는 옵션을 지정했습니다.
-
사용자는 객체를
amzn-s3-demo-bucket
에 업로드합니다. -
PutObject
API작업은 Amazon S3 객체 API 수준입니다. 에 데이터 이벤트로 기록됩니다. CloudTrail CloudTrail 사용자가 접두사가 비어 있는 S3 버킷을 지정했으므로 해당 버킷의 모든 객체에서 발생하는 이벤트가 기록됩니다. 추적 또는 이벤트 데이터 스토어는 이벤트를 처리하고 로그합니다. -
다른 사용자는 객체를
amzn-s3-demo-bucket2
에 업로드합니다. -
트레일 또는 이벤트 데이터 스토어용으로 지정되지 않은 S3 버킷의 객체에서
PutObject
API 작업이 발생했습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.
특정 S3 객체에 대한 데이터 이벤트 로깅
다음 예에서는 특정 S3 객체에 대한 이벤트를 로깅하는 추적 또는 이벤트 데이터 스토어를 구성할 경우 로깅이 어떻게 작동하는지 보여 줍니다. 이 예제에서 CloudTrail 사용자는 접두사를 사용하여 이름이 amzn-s3-demo-bucket3
지정된 S3 버킷을 지정했습니다.my-images
및 쓰기 데이터 이벤트만 기록하는 옵션도 있습니다.
-
사용자가 버킷에서
my-images
접두사로 시작하는 객체를 삭제합니다(예:arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg
). -
DeleteObject
API작업은 Amazon S3 객체 API 수준입니다. 에서 데이터 쓰기 이벤트로 기록됩니다. CloudTrail 추적또는 이벤트 데이터 스토어에서 지정한 S3 버킷 및 접두사와 일치하는 객체에서 이벤트가 발생했습니다. 추적 또는 이벤트 데이터 스토어는 이벤트를 처리하고 로그합니다. -
다른 사용자가 S3 버킷에서 접두사가 서로 다른 객체를 삭제합니다(예:
arn:aws:s3:::amzn-s3-demo-bucket3/my-videos/example.avi
). -
추적 또는 이벤트 데이터 스토어에서 지정한 접두사와 일치하지 않는 객체에서 이벤트가 발생했습니다. 추적이나 이벤트 데이터 스토어는 이벤트를 로그하지 않습니다.
-
사용자가 객체, 에 대한
GetObject
API 작업을arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg
호출합니다. -
이벤트는 트레일 또는 이벤트 데이터 스토어에
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 기록하도록 구성하는 방법을 보여줍니다.
-
계정에서 추적이
amzn-s3-demo-bucket
이라는 S3 버킷의 모든 객체에 대한 데이터 이벤트를 로깅하려고 합니다. 빈 객체 접두사를 사용해 S3 버킷을 지정하여 추적을 구성합니다. -
Bob은 S3 버킷에 대한 액세스 권한을 부여받은 별도의 계정이 있습니다. 또한 Bob은 동일한 S3 버킷의 모든 객체에 대한 데이터 이벤트를 로깅하려고 합니다. 추적의 경우 Bob은 자신의 추적을 구성하고 빈 객체 접두사를 사용해 동일한 S3 버킷을 지정합니다.
-
Bob은
PutObject
API 작업과 함께 S3 버킷에 객체를 업로드합니다. -
Bob의 계정에서 이 이벤트가 발생했으며 이 이벤트는 Bob의 추적에 대한 설정과 일치합니다. Bob의 추적은 이벤트를 처리하고 로그합니다.
-
S3 버킷을 소유하고 있으며 이벤트가 추적에 대한 설정과 일치하므로 추적은 동일한 이벤트도 처리하고 로깅합니다. 이제 이벤트 복사본이 2개 (하나는 Bob의 트레일에 로그인되고 다른 하나는 사용자 계정에 로그인) 가 있으므로 데이터 이벤트 복사본 2개에 대한 CloudTrail 요금이 부과됩니다.
-
객체를 S3 버킷으로 업로드합니다.
-
계정에서 이 이벤트가 발생하며 이 이벤트는 추적에 대한 설정과 일치합니다. 추적은 이벤트를 처리하고 로그합니다.
-
Bob의 계정에서는 이벤트가 발생하지 않았고 Bob은 S3 버킷을 소유하지 않으므로 Bob의 트레일에는 이벤트가 기록되지 않습니다. CloudTrail 이 데이터 이벤트의 사본 한 개에 대해서만 요금이 부과됩니다.
예: 두 AWS 계정에서 사용하는 S3 버킷을 포함한 모든 버킷의 데이터 이벤트 로깅
다음 예는 계정의 데이터 이벤트를 수집하는 트레일에 대해 계정의 모든 S3 버킷 선택을 활성화했을 때의 로깅 동작을 보여줍니다. AWS
-
계정에서 모든 S3 버킷에 대한 데이터 이벤트를 로깅하도록 추적해야 합니다. [데이터 이벤트(Data events)]에서 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]에 대해 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 선택하여 추적을 구성합니다.
-
Bob은 계정의 S3 버킷에 대한 액세스 권한을 부여받은 별도의 계정이 있습니다. Bob은 액세스 권한이 있는 버킷에 대한 데이터 이벤트를 로깅하려고 하며, 모든 S3 버킷에 대한 데이터 이벤트를 가져오도록 추적을 구성합니다.
-
Bob은 작업과 함께 S3 버킷에 객체를 업로드합니다.
PutObject
API -
Bob의 계정에서 이 이벤트가 발생했으며 이 이벤트는 Bob의 추적에 대한 설정과 일치합니다. Bob의 추적은 이벤트를 처리하고 로그합니다.
-
귀하는 S3 버킷을 소유하고 있으며 이벤트가 추적에 대한 설정과 일치하므로 귀하의 추적은 해당 이벤트도 처리하고 로깅합니다. 이제 이벤트 사본이 두 개 (하나는 Bob의 트레일에 로그인되고 다른 하나는 사용자 계정에 로그인) 가 있으므로 각 계정에 데이터 이벤트 사본에 대해 CloudTrail 요금을 부과합니다.
-
객체를 S3 버킷으로 업로드합니다.
-
계정에서 이 이벤트가 발생하며 이 이벤트는 추적에 대한 설정과 일치합니다. 추적은 이벤트를 처리하고 로그합니다.
-
Bob의 계정에서는 이벤트가 발생하지 않았고 Bob은 S3 버킷을 소유하지 않으므로 Bob의 트레일에는 이벤트가 기록되지 않습니다. CloudTrail 계정에 있는 이 데이터 이벤트의 사본 한 개에 대해서만 요금이 부과됩니다.
-
세 번째 사용자인 Mary는 S3 버킷에 대한 액세스 권한이 있으며 버킷에서
GetObject
작업을 실행합니다. Mary의 경우 계정의 모든 S3 버킷에 대한 데이터 이벤트를 로깅하도록 추적이 구성되어 있습니다. 그녀가 API 발신자이기 때문에 그녀의 트레일에 데이터 이벤트를 CloudTrail 기록합니다. Bob은 버킷에 대한 액세스 권한이 있지만 리소스 소유자가 아니므로 이번에는 Bob의 추적에 이벤트가 로깅되지 않습니다. 리소스 소유자는 Mary가 호출한GetObject
작업에 대한 이벤트를 트레일에서 받게 됩니다. CloudTrail데이터 이벤트의 각 사본에 대해 사용자 계정과 Mary의 계정에 요금이 부과됩니다. 하나는 Mary의 추적에, 다른 하나는 사용자 계정에 청구됩니다.
읽기 전용 및 쓰기 전용 이벤트
데이터 및 관리 이벤트를 로그하도록 추적 또는 이벤트 데이터 스토어를 구성할 때 읽기 전용 이벤트를 로그할지, 쓰기 전용 이벤트를 로그할지 또는 둘 다를 로그할지 여부를 지정할 수 있습니다.
-
읽기(Read)
읽기 이벤트에는 리소스를 읽지만 변경하지는 않는 API 작업이 포함됩니다. 예를 들어 읽기 전용 이벤트에는 Amazon EC2
DescribeSecurityGroups
및DescribeSubnets
API 운영이 포함됩니다. 이러한 작업은 Amazon EC2 리소스에 대한 정보만 반환하며 구성을 변경하지 않습니다. -
쓰기(Write)
쓰기 이벤트에는 리소스를 수정 (또는 수정할 수 있는) API 작업이 포함됩니다. 예를 들어 Amazon EC2
RunInstances
및TerminateInstances
API 운영 팀에서 인스턴스를 수정합니다.
예: 별도의 추적에 대한 읽기 및 쓰기 이벤트 로깅
다음 예제는 계정의 로그 활동을 별도의 S3 버킷으로 분할하도록 트레일을 구성하는 방법을 보여줍니다. amzn-s3-demo-bucket1이라는 버킷 하나는 읽기 전용 이벤트를 수신하고 두 번째 amzn-s3-demo-bucket2는 쓰기 전용 이벤트를 수신합니다.
-
트레일을
amzn-s3-demo-bucket1
생성하고 로그 파일을 수신할 이름이 지정된 S3 버킷을 선택합니다. 그런 다음, 추적을 업데이트하여 [읽기(Read)] 관리 이벤트 및 데이터 이벤트를 로그하도록 지정합니다. -
두 번째 트레일을 생성하고 로그 파일을
amzn-s3-demo-bucket2
수신할 S3 버킷을 선택합니다. 그런 다음, 추적을 업데이트하여 [쓰기(Write)] 관리 이벤트 및 데이터 이벤트를 로그하도록 지정합니다. -
Amazon EC2
DescribeInstances
및TerminateInstances
API 운영은 귀하의 계정에서 이루어집니다. -
DescribeInstances
API작업은 읽기 전용 이벤트이며 첫 번째 트레일의 설정과 일치합니다. 추적은 이벤트를 로그하고amzn-s3-demo-bucket1
에 전달합니다. -
TerminateInstances
API작업은 쓰기 전용 이벤트이며 두 번째 트레일의 설정과 일치합니다. 추적은 이벤트를 로그하고amzn-s3-demo-bucket2
에 전달합니다.
를 사용하여 데이터 이벤트를 기록합니다. AWS Management Console
다음 절차는 AWS Management Console로 기존 이벤트 데이터 스토어 또는 추적을 업데이트하여 데이터 이벤트를 로깅하는 방법을 설명합니다. 이벤트 데이터 스토어를 생성하여 데이터 이벤트를 로깅하는 방법에 대한 자세한 내용은 콘솔을 사용하여 이벤트용 CloudTrail 이벤트 데이터 저장소를 생성합니다. 섹션을 참조하세요. 추적을 생성하여 데이터 이벤트를 로깅하는 방법에 대한 자세한 내용은 콘솔에서 추적 생성 섹션을 참조하세요
트레일의 경우 데이터 이벤트를 기록하는 단계는 고급 이벤트 선택기를 사용하는지 아니면 기본 이벤트 선택기를 사용하는지에 따라 달라집니다. 고급 이벤트 선택기를 사용하여 모든 데이터 이벤트 유형의 데이터 이벤트를 기록할 수 있지만, 기본 이벤트 선택기를 사용하는 경우 Amazon S3 버킷과 버킷 객체, AWS Lambda 함수 및 Amazon DynamoDB 테이블에 대한 데이터 이벤트를 기록하는 것으로 제한됩니다.
다음 절차를 사용하여 데이터 이벤트를 로그하도록 기존 이벤트 데이터 스토어를 업데이트합니다. 고급 이벤트 선택기 사용에 대한 자세한 내용은 고급 이벤트 선택기를 사용하여 데이터 이벤트를 필터링합니다. 이 항목을 참조하십시오.
-
에서 AWS Management Console 로그인하고 CloudTrail 콘솔을 여십시오. https://console.aws.amazon.com/cloudtrail/
-
탐색 창의 Lake에서 Event data stores(이벤트 데이터 스토어)를 선택합니다.
-
Event data stores(이벤트 데이터 스토어) 페이지에서 업데이트하려는 이벤트 데이터 스토어를 선택합니다.
참고
이벤트가 포함된 CloudTrail 이벤트 데이터 저장소에서만 데이터 이벤트를 활성화할 수 있습니다. AWS Config 구성 항목, CloudTrail Insights CloudTrail 이벤트 또는 비 이벤트에 대한 이벤트 데이터 저장소의 데이터 이벤트를 활성화할 수 없습니다.AWS
-
세부 정보 페이지의 [데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.
-
데이터 이벤트를 아직 로그하지 않은 경우 [데이터 이벤트(Data events)] 확인란을 선택합니다.
-
[데이터 이벤트 유형(Data event type)]에서 데이터 이벤트를 로그할 리소스 유형을 선택합니다.
-
로그 셀렉터 템플릿을 선택하세요. CloudTrail 리소스 유형에 대한 모든 데이터 이벤트를 기록하는 사전 정의된 템플릿이 포함되어 있습니다. 사용자 지정 로그 선택기 템플릿을 구축하려면 [사용자 지정(Custom)]을 선택합니다.
-
(선택 사항) 선택자 이름(Selector name)에 선택자를 식별할 이름을 입력합니다. 선택기 이름은 "2개의 S3 버킷에 대한 데이터 이벤트 로그그"애와 같이 고급 이벤트 선택기를 설명하는 이름입니다. 선택기 이름은 고급 이벤트 선택기와 같이
Name
나열되며 보기를 확장하면 볼 수 있습니다. JSON -
[고급 이벤트 선택기(Advanced event selectors)]에서 데이터 이벤트를 로그하려는 특정 리소스에 대한 표현식을 작성합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.
-
다음 필드 중에서 선택합니다.
-
readOnly
-readOnly
또는 의 값과 같도록 설정할 수 있습니다.true
false
읽기 전용 데이터 이벤트는Get*
또는Describe*
이벤트와 같이 리소스의 상태를 변경하지 않는 이벤트입니다. 쓰기 이벤트는Put*
,Delete*
또는Write*
이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다.read
이벤트와write
이벤트를 모두 로그하려면readOnly
선택기를 추가하지 마세요. -
eventName
-eventName
은 연산자를 사용할 수 있습니다. 이를 사용하여 CloudTrail, 또는 와 같이PutBucket
기록된 모든 데이터 이벤트를 포함하거나GetSnapshotBlock
제외할 수 있습니다.GetItem
-
resources.ARN
- 와 함께resources.ARN
사용하는 모든 연산자를 사용할 수 있지만 같거나 같지 않은 연산자를 사용하는 경우 값은 템플릿에서 값으로 지정한 유형의 유효한 리소스 값과 정확히 일치해야 합니다. ARNresources.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::Object
2arn:
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::AccessPoint
3arn:
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::Stream
과AWS::DynamoDB::Table
이 모두 포함됩니다.resources.type
으로AWS::DynamoDB::Table
을 지정하는 경우 기본적으로 DynamoDB 테이블과 DynamoDB 스트림 이벤트가 모두 로깅됩니다. 스트림 이벤트를 제외하려면eventName
필드에 필터를 추가하십시오.2 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 기록하려면
StartsWith
연산자를 사용하고 ARN 버킷만 일치하는 값으로 포함하십시오. 후행 슬래시는 의도적인 것입니다. 제외하지 마세요.3 S3 액세스 포인트의 모든 객체에 이벤트를 기록하려면 액세스 ARN 포인트만 사용하고 객체 경로는 포함하지 않고
StartsWith
orNotStartsWith
연산자를 사용하는 것이 좋습니다. -
데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 작업, 리소스 및 조건 키를 참조하십시오.
-
-
각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어, 이벤트 데이터 스토어에 기록된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 리소스로 설정하면 됩니다. ARN연산자를 to not start로 설정한 다음 S3 ARN 버킷에 붙여넣거나 이벤트를 기록하지 않으려는 S3 버킷을 찾아보십시오.
두 번째 S3 버킷을 추가하려면 + Condition을 선택한 다음 이전 지침을 반복하여 양식에 붙여넣거나 다른 버킷을 검색하십시오. ARN
참고
이벤트 데이터 스토어의 모든 선택기에 대해 최대 500개의 값을 가질 수 있습니다. 여기에는
eventName
과 같은 선택기에 대한 여러 값의 배열이 포함됩니다. 모든 선택기에 대해 단일 값이 있는 경우 선택기에 최대 500개의 조건을 추가할 수 있습니다. -
필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요. 예를 들어, 한 ARN 선택기에서 하나를 값과 동일하게 지정하고 다른 선택기의 값이 같지 ARN 않도록 지정하지 마십시오.
-
-
데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다. 데이터 이벤트 유형에 대한 고급 이벤트 선택기를 구성하려면 6단계부터 이 단계까지 반복합니다.
-
선택 사항을 검토하고 확인한 후, [변경 내용 저장(Save changes)]을 선택합니다.
에서 트레일이 고급 이벤트 선택기를 사용하는 경우 선택한 리소스의 모든 데이터 이벤트를 기록하는 사전 정의된 템플릿 중에서 선택할 수 있습니다. AWS Management Console로그 선택기 템플릿을 선택한 후 가장 보고 싶은 데이터 이벤트만 포함하도록 템플릿을 사용자 지정할 수 있습니다. 고급 이벤트 선택기 사용에 대한 자세한 내용은 이 항목을 참조하십시오고급 이벤트 선택기를 사용하여 데이터 이벤트를 필터링합니다..
-
CloudTrail 콘솔의 대시보드 또는 트레일 페이지에서 업데이트하려는 트레일을 선택합니다.
-
세부 정보 페이지의 [데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.
-
데이터 이벤트를 아직 로그하지 않은 경우 [데이터 이벤트(Data events)] 확인란을 선택합니다.
-
[데이터 이벤트 유형(Data event type)]에서 데이터 이벤트를 로그할 리소스 유형을 선택합니다.
-
로그 셀렉터 템플릿을 선택하세요. CloudTrail 리소스 유형에 대한 모든 데이터 이벤트를 기록하는 사전 정의된 템플릿이 포함되어 있습니다. 사용자 지정 로그 선택기 템플릿을 구축하려면 [사용자 지정(Custom)]을 선택합니다.
참고
S3 버킷에 대해 미리 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 버킷과 트레일 생성을 완료한 후 생성한 모든 버킷에 대한 데이터 이벤트 로깅이 가능합니다. 또한 계정 내 사용자 또는 역할이 수행한 데이터 이벤트 활동을 기록할 수 있으며, 이는 해당 활동이 다른 AWS 계정에 속한 버킷에서 수행된 경우에도 마찬가지입니다. AWS
한 리전에만 추적을 적용하는 경우 모든 S3 버킷을 로그하는 사전 정의된 템플릿을 선택하면 추적과 동일한 리전의 모든 버킷과 해당 리전에서 나중에 생성하는 버킷에 대해 데이터 이벤트 로깅이 활성화됩니다. AWS 계정의 다른 지역에 있는 Amazon S3 버킷에 대한 데이터 이벤트는 기록하지 않습니다.
모든 리전에 대한 트레일을 생성하는 경우, Lambda 함수의 사전 정의된 템플릿을 선택하면 현재 AWS 계정에 있는 모든 함수와 트레일 생성을 완료한 후 원하는 리전에 생성할 수 있는 모든 Lambda 함수에 대한 데이터 이벤트 로깅이 가능합니다. 단일 리전에 대한 트레일을 생성하는 경우 (트레일의 경우 를 사용해서만 가능 AWS CLI), 이 옵션을 선택하면 AWS 계정의 해당 리전에 현재 있는 모든 함수와 트레일 생성을 완료한 후 해당 리전에 생성할 수 있는 모든 Lambda 함수에 대한 데이터 이벤트 로깅이 활성화됩니다. 다른 리전에서 생성되는 Lambda 함수에 대한 데이터 이벤트 로깅은 활성화되지 않습니다.
또한 모든 함수에 대한 데이터 이벤트를 로깅하면 AWS 계정의 특정 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 있습니다. 이는 해당 활동이 다른 AWS 계정에 속한 함수에서 수행된 경우에도 마찬가지입니다.
-
(선택 사항) 선택자 이름(Selector name)에 선택자를 식별할 이름을 입력합니다. 선택기 이름은 "2개의 S3 버킷에 대한 데이터 이벤트 로그그"애와 같이 고급 이벤트 선택기를 설명하는 이름입니다. 선택기 이름은 고급 이벤트 선택기와 같이
Name
나열되며 보기를 확장하면 볼 수 있습니다. JSON -
[고급 이벤트 선택기(Advanced event selectors)]에서 데이터 이벤트를 로그하려는 특정 리소스에 대한 표현식을 작성합니다. 사전 정의된 로그 템플릿을 사용한다면 이 단계를 건너뛸 수 있습니다.
-
다음 필드 중에서 선택합니다.
-
readOnly
-readOnly
또는 의 값과 같도록 설정할 수 있습니다.true
false
읽기 전용 데이터 이벤트는Get*
또는Describe*
이벤트와 같이 리소스의 상태를 변경하지 않는 이벤트입니다. 쓰기 이벤트는Put*
,Delete*
또는Write*
이벤트와 같이 리소스, 속성 또는 아티팩트를 추가, 변경 또는 삭제합니다.read
이벤트와write
이벤트를 모두 로그하려면readOnly
선택기를 추가하지 마세요. -
eventName
-eventName
은 연산자를 사용할 수 있습니다. 이를 사용하여 CloudTrail, 또는 와 같이PutBucket
기록된 모든 데이터 이벤트를 포함하거나GetSnapshotBlock
제외할 수 있습니다.GetItem
-
resources.ARN
- 와 함께resources.ARN
사용하는 모든 연산자를 사용할 수 있지만 같거나 같지 않은 연산자를 사용하는 경우 값은 템플릿에서 값으로 지정한 유형의 유효한 리소스 값과 정확히 일치해야 합니다. ARNresources.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::Object
2arn:
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::AccessPoint
3arn:
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::Stream
과AWS::DynamoDB::Table
이 모두 포함됩니다.resources.type
으로AWS::DynamoDB::Table
을 지정하는 경우 기본적으로 DynamoDB 테이블과 DynamoDB 스트림 이벤트가 모두 로깅됩니다. 스트림 이벤트를 제외하려면eventName
필드에 필터를 추가하십시오.2 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 기록하려면
StartsWith
연산자를 사용하고 ARN 버킷만 일치하는 값으로 포함하십시오. 후행 슬래시는 의도적인 것입니다. 제외하지 마세요.3 S3 액세스 포인트의 모든 객체에 이벤트를 기록하려면 액세스 ARN 포인트만 사용하고 객체 경로는 포함하지 않고
StartsWith
orNotStartsWith
연산자를 사용하는 것이 좋습니다. -
데이터 이벤트 리소스의 ARN 형식에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 작업, 리소스 및 조건 키를 참조하십시오.
-
-
각 필드에 대해 [+ 조건(+ Condition)]을 선택하여 모든 조건에 대해 최대 500개의 지정된 값까지 필요한 만큼 조건을 추가합니다. 예를 들어, 트레일에 기록된 데이터 이벤트에서 두 S3 버킷의 데이터 이벤트를 제외하려면 필드를 리소스로 설정하면 됩니다. ARN에서 연산자를 로 시작하지 않도록 설정한 다음 S3 ARN 버킷에 붙여넣거나 이벤트를 기록하지 않으려는 S3 버킷을 찾아보십시오.
두 번째 S3 버킷을 추가하려면 + Condition을 선택한 다음 이전 지침을 반복하여 양식에 붙여넣거나 다른 버킷을 검색하십시오. ARN
참고
추적의 모든 선택기에 대해 최대 500개의 값을 가질 수 있습니다. 여기에는
eventName
과 같은 선택기에 대한 여러 값의 배열이 포함됩니다. 모든 선택기에 대해 단일 값이 있는 경우 선택기에 최대 500개의 조건을 추가할 수 있습니다. -
필요에 따라 필드를 추가하려면 [+ 필드(+ Field)]를 선택합니다. 오류를 방지하려면 필드에 충돌하거나 중복되는 값을 설정하지 마세요. 예를 들어, 한 ARN 선택기에서 하나를 값과 동일하게 지정하고 다른 선택기의 값이 같지 ARN 않도록 지정하지 마십시오.
-
-
데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다. 데이터 이벤트 유형에 대한 고급 이벤트 선택기를 구성하려면 4단계부터 이 단계까지 반복합니다.
-
선택 사항을 검토하고 확인한 후, [변경 내용 저장(Save changes)]을 선택합니다.
다음 절차에 따라 기본 이벤트 선택기를 사용하여 데이터 이벤트를 기록하도록 기존 추적을 업데이트합니다.
-
에 AWS Management Console 로그인하고 에서 CloudTrail https://console.aws.amazon.com/cloudtrail/
콘솔을 엽니다. -
CloudTrail 콘솔의 Trails 페이지를 열고 트레일 이름을 선택합니다.
참고
기존 추적을 편집하여 데이터 이벤트를 로깅할 수 있지만, 모범 사례로 특정하게 데이터 이벤트 로깅을 위한 별도의 추적을 생성하는 것이 좋습니다.
-
[데이터 이벤트(Data events)]에서 [편집(Edit)]을 선택합니다.
-
Amazon S3 버킷의 경우:
-
[데이터 이벤트 소스(Data event source)]에서 S3를 선택합니다.
-
[현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 로그하도록 선택하거나 개별 버킷 또는 함수를 지정할 수 있습니다. 기본적으로 데이터 이벤트는 현재 및 미래의 모든 S3 버킷에 대해 로그됩니다.
참고
기본값인 모든 현재 및 미래 S3 버킷 옵션을 유지하면 현재 AWS 계정에 있는 모든 버킷과 트레일 생성을 완료한 후 생성하는 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. 또한 계정 내 사용자 또는 역할이 수행한 데이터 이벤트 활동을 기록할 수 있으며, 이는 해당 활동이 다른 AWS 계정에 속한 버킷에서 수행된 경우에도 마찬가지입니다. AWS
를 사용하여 단일 지역에 대한 트레일을 생성하는 경우 계정의 모든 S3 버킷 선택 옵션을 선택하면 트레일과 동일한 리전에 있는 모든 버킷과 해당 리전에서 나중에 생성하는 모든 버킷에 대한 데이터 이벤트 로깅이 활성화됩니다. AWS CLI AWS 계정의 다른 지역에 있는 Amazon S3 버킷에 대한 데이터 이벤트는 기록하지 않습니다.
-
기본값인 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]을 그대로 둘 경우 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 로그하도록 선택합니다.
-
개별 버킷을 선택하려면 [현재 및 미래의 모든 S3 버킷(All current and future S3 buckets)]에서 [읽기(Read)] 및 [쓰기(Write)] 확인란의 선택을 해제합니다. [개별 버킷 선택(Individual bucket selection)]에서 데이터 이벤트를 로그할 버킷을 찾습니다. 특정 버킷을 찾으려면 원하는 버킷의 버킷 접두사를 입력합니다. 이 창에서 여러 버킷을 선택할 수 있습니다. 더 많은 버킷의 데이터 이벤트를 로그하려면 [버킷 추가(Add bucket)]를 선택합니다. [읽기(Read)] 이벤트(예:
GetObject
), [쓰기(Write)] 이벤트(예:PutObject
) 또는 둘 다를 로그하도록 선택합니다.이 설정은 개별 버킷에 대해 구성한 개별 설정보다 우선 적용됩니다. 예를 들어 모든 S3 버킷에 대해 [읽기(Read)] 이벤트 로깅을 지정한 다음, 데이터 이벤트 로깅 대상으로 특정 버킷을 추가하기로 선택하면 추가한 버킷에 대해 [읽기(Read)]가 사전 선택됩니다. 선택을 취소할 수 없습니다. [Write]에 대한 옵션만 구성할 수 있습니다.
로깅에서 버킷을 제거하려면 X를 선택합니다.
-
-
데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다.
-
Lambda 함수의 경우:
-
[데이터 이벤트 소스(Data event source)]에서 Lambda를 선택합니다.
-
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 계정 내 사용자 또는 역할이 수행한 데이터 이벤트 활동을 로깅할 수 있습니다.
-
입력 함수를 다음과 같이 ARN 선택하는 경우 Lambda ARN 함수의 를 입력합니다.
참고
계정에 15,000개가 넘는 Lambda 함수가 있는 경우 트레일을 생성할 때 콘솔에서 CloudTrail 모든 함수를 보거나 선택할 수 없습니다. 함수가 모두 표시되지는 않더라도 모든 함수를 로그하는 옵션을 선택할 수 있습니다. 특정 함수에 대한 데이터 이벤트를 기록하려는 경우, 알고 있으면 함수를 수동으로 추가할 수 있습니다. ARN 콘솔에서 트레일 생성을 완료한 다음 및 put-event-selectors 명령을 사용하여 특정 Lambda 함수에 대한 데이터 이벤트 로깅을 구성할 수도 있습니다. AWS CLI 자세한 내용은 를 사용하여 트레일을 관리합니다. AWS CLI 단원을 참조하십시오.
-
-
데이터 이벤트를 로그할 다른 데이터 유형을 추가하려면 [데이터 이벤트 유형 추가(Add data event type)]를 선택합니다.
-
DynamoDB 테이블의 경우:
-
[데이터 이벤트 소스(Data event source)]에서 DynamoDB를 선택합니다.
-
DynamoDB 테이블 선택에서 찾아보기를 선택하여 테이블을 선택하거나 액세스 권한이 있는 DynamoDB 테이블을 붙여넣습니다. ARN DynamoDB ARN 테이블은 다음 형식을 사용합니다.
arn:
partition
:dynamodb:region
:account_ID
:table/table_name
다른 테이블을 추가하려면 행 추가를 선택하고 액세스 권한이 있는 테이블을 찾아보거나 테이블을 붙여넣습니다. ARN
-
-
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.ARN
및readOnly
필드의 값을 기준으로 필터링하여 관심 있는 데이터 이벤트만 로깅할 수 있습니다. 이러한 필드를 구성하는 방법에 대한 자세한 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
--regionregion
\ --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
--regionregion
\ --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 CLI 및 AWS CloudTrail API참조를 참조하십시오.