고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링 - AWS CloudTrail

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

고급 이벤트 선택기를 사용하여 데이터 이벤트 필터링

이 섹션에서는 고급 이벤트 선택기를 사용하여 세분화된 선택기를 생성하는 방법을 설명합니다. 이를 통해 관심 있는 특정 데이터 이벤트만 로깅하여 비용을 제어할 수 있습니다.

예제:

  • eventName 필드에 필터를 추가하여 특정 API 호출을 포함하거나 제외할 수 있습니다.

  • resources.ARN 필드에 필터를 추가하여 특정 리소스에 대한 로깅을 포함하거나 제외할 수 있습니다. 예를 들어 S3 데이터 이벤트를 로깅하는 경우 추적에 대한 S3 버킷의 로깅을 제외할 수 있습니다.

  • readOnly 필드에 필터를 추가하여 쓰기 전용 이벤트 또는 읽기 전용 이벤트만 로깅하도록 선택할 수 있습니다.

다음 표에서는 고급 이벤트 선택기에 대해 구성 가능한 필드에 대한 추가 정보를 제공합니다.

필드 필수 유효한 연산자 Description

eventCategory

Equals

이 필드는 데이터 이벤트를 로깅하도록 Data로 설정되어 있습니다.

추적에서 지원됨:

이벤트 데이터 스토어에서 지원됨:

resources.type

Equals

이 필드는 데이터 이벤트를 로깅할 리소스 유형을 선택하는 데 사용됩니다. 데이터 이벤트 표에는 가능한 값이 표시됩니다.

추적에서 지원됨:

이벤트 데이터 스토어에서 지원됨:

readOnly

아니요

Equals

readOnly 값을 기반으로 데이터 이벤트를 포함하거나 제외하는 데 사용되는 선택적 필드입니다. true 값은 읽기 이벤트만 로깅합니다. false 값은 쓰기 이벤트만 로깅합니다. 이 필드를 추가하지 않으면는 읽기 및 쓰기 이벤트를 모두 CloudTrail 기록합니다.

추적에서 지원됨:

이벤트 데이터 스토어에서 지원됨:

eventName

아니요

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

이는 PutBucket 또는 CloudTrail와 같이 로깅된 데이터 이벤트를 필터링하거나 필터링하는 데 사용되는 선택적 파일입니다GetSnapshotBlock.

를 사용하는 경우 각 값을 쉼표로 구분하여 여러 값을 지정할 AWS CLI수 있습니다.

콘솔을 사용하는 경우 필터링하려는 각 eventName에 대한 조건을 생성하여 여러 값을 지정할 수 있습니다.

추적에서 지원됨:

이벤트 데이터 스토어에서 지원됨:

resources.ARN

아니요

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

resources.ARN을 제공하여 특정 리소스에 대한 데이터 이벤트를 제외하거나 포함하는 데 사용되는 선택적 필드입니다. 에서 모든 연산자를 사용할 수 resources.ARN있지만 Equals 또는 NotEquals를 사용하는 경우 값은 resoureces.type 지정한에 대한 유효한 리소스ARN의와 정확히 일치해야 합니다. 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 로깅하려면 StartsWith 연산자를 사용하고 버킷만 ARN 일치하는 값으로 포함합니다.

를 사용하는 경우 각 값을 쉼표로 구분하여 여러 값을 지정할 AWS CLI수 있습니다.

콘솔을 사용하는 경우 필터링하려는 각 resources.ARN에 대한 조건을 생성하여 여러 값을 지정할 수 있습니다.

추적에서 지원됨:

이벤트 데이터 스토어에서 지원됨:

eventSource

아니요

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

이를 사용하여 특정 이벤트 소스를 포함하거나 제외할 수 있습니다. eventSource는 일반적으로 공백과를 제외한 짧은 형태의 서비스 이름입니다.amazonaws.com. 예를 들어 Amazon EC2 데이터 이벤트만 로깅ec2.amazonaws.com하도록를 eventSource Equals 로 설정할 수 있습니다.

추적에서 지원됨: 아니요

이벤트 데이터 스토어에서 지원됨:

eventType

아니요

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

포함하거나 제외eventType할 . 예를 들어이 필드를 로 설정NotEqualsAwsServiceEvent하여 AWS 서비스 이벤트를 제외할 수 있습니다.

추적에서 지원됨: 아니요

이벤트 데이터 스토어에서 지원됨:

sessionCredentialFromConsole

아니요

Equals

NotEquals

AWS Management Console 세션에서 시작된 이벤트를 포함하거나 제외합니다. 이 필드는 Equals 또는 값으로 설정할 수 NotEquals 있습니다true.

추적에서 지원됨: 아니요

이벤트 데이터 스토어에서 지원됨:

userIdentity.arn

아니요

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

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

추적에서 지원됨: 아니요

이벤트 데이터 스토어에서 지원됨:

CloudTrail 콘솔을 사용하여 데이터 이벤트를 로깅하려면 데이터 이벤트 옵션을 선택한 다음 추적 또는 이벤트 데이터 스토어를 생성하거나 업데이트할 때 관심 있는 리소스 유형을 선택합니다. 데이터 이벤트 테이블에는 CloudTrail 콘솔에서 선택할 수 있는 가능한 리소스 유형이 표시됩니다.

콘솔에서 SNS 주제 리소스 유형을 선택합니다.

를 사용하여 데이터 이벤트를 로깅하려면 --advanced-event-selector 파라미터를 AWS CLI구성하여와 eventCategoryDataresources.type 값을 데이터 이벤트를 로깅하려는 리소스 유형 값과 동일하게 설정합니다. 데이터 이벤트 표에는 사용 가능한 리소스 유형이 나열됩니다.

예를 들어 모든 Cognito ID 풀에 대한 데이터 이벤트를 로깅하려는 경우 다음과 같이 --advanced-event-selectors 파라미터를 구성해야 합니다.

--advanced-event-selectors '[ { "Name": "Log Cognito data events on Identity pools", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Cognito::IdentityPool"] } ] } ]'

이전 예제에서는 ID 풀의 모든 Cognito 데이터 이벤트를 로깅합니다. 고급 이벤트 선택기를 추가로 세분화하여 eventName, readOnlyresources.ARN 필드를 기준으로 필터링하여 특정 관심 이벤트를 로깅하거나 관심 없는 이벤트를 제외할 수 있습니다.

여러 필드를 기반으로 데이터 이벤트를 필터링하도록 고급 이벤트 선택기를 구성할 수 있습니다. 예를 들어 다음 예제와 같이 모든 Amazon S3 PutObjectDeleteObject API 호출을 로깅하지만 특정 S3 버킷에 대한 이벤트 로깅은 제외하도록 고급 이벤트 선택기를 구성할 수 있습니다. amzn-s3-demo-bucket을 사용 중인 버킷의 이름으로 바꿉니다.

--advanced-event-selectors '[ { "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/"] } ] } ]'

하나의 필드에 대한 여러 조건을 포함할 수도 있습니다. 여러 조건을 평가하는 방법에 대한 자세한 내용은 가 필드에 대한 여러 조건을 CloudTrail 평가하는 방법 섹션을 참조하세요.

고급 이벤트 선택기를 사용하여 관리 이벤트와 데이터 이벤트 모두 로깅할 수 있습니다. 여러 리소스 유형에 대한 데이터 이벤트를 로깅하려면 데이터 이벤트를 로깅하려는 각 리소스 유형에 대한 필드 선택기 문을 추가합니다.

참고

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

가 필드에 대한 여러 조건을 CloudTrail 평가하는 방법

고급 이벤트 선택기의 경우는 다음과 같이 필드의 여러 조건을 CloudTrail 평가합니다.

  • DESELECT 연산자는 함께 AND'd'입니다. DESELECT 연산자 조건 중 하나라도 충족되면 이벤트가 전송되지 않습니다. 다음은 고급 이벤트 선택기에 유효한 DESELECT 연산자입니다.

    • NotEndsWith

    • NotEquals

    • NotStartsWith

  • SELECT 연산자는 함께 OR입니다. 다음은 고급 이벤트 선택기에 유효한 SELECT 연산자입니다.

    • EndsWith

    • Equals

    • StartsWith

  • SELECT 및 DESELECT 연산자의 조합은 위의 규칙을 따르며 두 그룹은 함께 AND'd'됩니다.

resources.ARN 필드에 대한 여러 조건을 보여주는 예제

다음 예제 이벤트 선택기 문은 AWS::S3::Object 리소스 유형에 대한 데이터 이벤트를 수집하고 resources.ARN 필드에 여러 조건을 적용합니다.

{ "Name": "S3Select", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:s3:::amzn-s3-demo-bucket/object1" ], "StartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/" ], "EndsWith": [ "object3" ], "NotStartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/deselect" ], "NotEndsWith": [ "object5" ], "NotEquals": [ "arn:aws:s3:::amzn-s3-demo-bucket/object6" ] } ] }

이전 예제에서는 다음과 같은 경우 AWS::S3::Object 리소스에 대한 Amazon S3 데이터 이벤트가 전달됩니다.

  1. 다음 DESELECT 연산자 조건 중 어느 것도 충족되지 않습니다.

    • resources.ARN 필드 NotStartsWith: 값 arn:aws:s3:::amzn-s3-demo-bucket/deselect

    • resources.ARN 필드 NotEndsWith: 값 object5

    • resources.ARN 필드 NotEquals: 값 arn:aws:s3:::amzn-s3-demo-bucket/object6

  2. 다음 SELECT 연산자 조건 중 하나 이상이 충족됩니다.

    • resources.ARN 필드 Equals: 값 arn:aws:s3:::amzn-s3-demo-bucket/object1

    • resources.ARN 필드 StartsWith: 값 arn:aws:s3:::amzn-s3-demo-bucket/

    • resources.ARN 필드 EndsWith: 값 object3

평가 로직을 기반으로 합니다.

  1. amzn-s3-demo-bucket/object1에 대한 데이터 이벤트가 전달됩니다. Equals 연산자 값과 일치하고 NotStartsWith, NotEndsWithNotEquals 연산자의 값과 일치하지 않기 때문입니다.

  2. amzn-s3-demo-bucket/object2에 대한 데이터 이벤트가 전달됩니다. StartsWith 연산자 값과 일치하고 NotStartsWith, NotEndsWithNotEquals 연산자의 값과 일치하지 않기 때문입니다.

  3. amzn-s3-demo-bucket1/object3에 대한 데이터 이벤트가 전달됩니다. EndsWith 연산자와 일치하고 NotStartsWith, NotEndsWithNotEquals 연산자의 값과 일치하지 않기 때문입니다.

  4. arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4에 대한 데이터 이벤트가 전달되지 않습니다. StartsWith 연산자의 조건과 일치하더라도 NotStartsWith의 조건과 일치하기 때문입니다.

  5. arn:aws:s3:::amzn-s3-demo-bucket/object5에 대한 데이터 이벤트가 전달되지 않습니다. StartsWith 연산자의 조건과 일치하더라도 NotEndsWith의 조건과 일치하기 때문입니다.

  6. arn:aws:s3:::amzn-s3-demo-bucket/object6에 대한 데이터 이벤트가 전달되지 않습니다. StartsWith 연산자의 조건과 일치하더라도 NotEquals 연산자의 조건과 일치하기 때문입니다.

eventName별 데이터 이벤트 필터링

고급 이벤트 선택기를 사용하면 eventName 필드 값을 기반으로 이벤트를 포함하거나 제외할 수 있습니다. 에 대한 데이터 이벤트를 로깅할 때 비용이 발생하지 않으므로를 AWS 서비스 필터링하면 비용을 제어하는 데 도움이 될 eventName 수 있습니다.는 새 데이터에 대한 지원을 추가합니다APIs.

eventName 필드에는 모든 연산자를 사용할 수 있습니다. 이를 사용하여 PutBucket 또는와 CloudTrail같이에 로깅된 모든 데이터 이벤트를 필터링하거나 필터링할 수 있습니다GetSnapshotBlock.

eventName 사용하여 데이터 이벤트 필터링 AWS Management Console

CloudTrail 콘솔을 사용하여 eventName 필드를 필터링하려면 다음 단계를 수행합니다.

  1. 추적 생성 절차의 단계를 수행하거나 이벤트 데이터 저장소 생성 절차의 단계를 수행합니다.

  2. 추적 또는 이벤트 데이터 저장소 생성 단계를 수행할 때 다음과 같이 선택합니다.

    1. 데이터 이벤트를 선택합니다.

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

    3. 로그 선택기 템플릿에서 사용자 지정을 선택합니다.

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

    5. 고급 이벤트 선택기에서 다음을 수행하여 eventName으로 필터링합니다.

      1. 필드에서를 선택합니다eventName.

      2. 연산자에서 조건 연산자를 선택합니다. 이 예제에서는 특정 API 호출을 로깅하려고 하기 때문에 음을 선택합니다.

      3. 에 필터링하려는 이벤트의 이름을 입력합니다.

      4. 다른 eventName으로 필터링하려면 + 조건을 선택합니다. 가 여러 조건을 CloudTrail 평가하는 방법에 대한 자세한 내용은 섹션을 참조하세요가 필드에 대한 여러 조건을 CloudTrail 평가하는 방법.

      eventName별 S3 데이터 이벤트 필터링
    6. +필드를 선택하여 다른 필드에 필터를 추가합니다.

eventName 사용하여 데이터 이벤트 필터링 AWS CLI

를 사용하여 eventName 필드를 필터링하여 특정 이벤트를 포함하거나 제외 AWS CLI할 수 있습니다.

추가 이벤트 선택기를 로깅하도록 기존 추적 또는 이벤트 데이터 저장소를 업데이트하는 경우 추적에 대한 get-event-selectors 명령 또는 이벤트 데이터 저장소에 대한 get-event-data-store 명령을 실행하여 현재 이벤트 선택기를 가져옵니다. 그런 다음, 로깅하려는 각 데이터 리소스 유형에 대한 필드 선택기를 추가하도록 이벤트 선택기를 업데이트합니다.

다음 예제에서는 추적에서 S3 데이터 이벤트를 로깅합니다. --advanced-event-selectorsGetObject, PutObjectDeleteObject API 호출에 대한 데이터 이벤트만 로깅하도록 구성됩니다.

aws cloudtrail put-event-selectors \ --trail-name trailName \ --advanced-event-selectors '[ { "Name": "Log GetObject, PutObject and DeleteObject S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["GetObject","PutObject","DeleteObject"] } ] } ]'

다음 예제에서는 EBS 직접에 대한 데이터 이벤트를 로깅APIs하지만 ListChangedBlocks API 호출은 제외하는 새 이벤트 데이터 스토어를 생성합니다. 를 사용할 수 있습니다. update-event-data-store 기존 이벤트 데이터 스토어를 업데이트하는 명령입니다.

aws cloudtrail create-event-data-store \ --name "eventDataStoreName" --advanced-event-selectors '[ { "Name": "Log all EBS Direct API data events except ListChangedBlocks", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] }, { "Field": "eventName", "NotEquals": ["ListChangedBlocks"] } ] } ]'

resources.ARN별 데이터 이벤트 필터링

고급 이벤트 선택기를 사용하여 resources.ARN 필드 값을 기준으로 필터링할 수 있습니다.

에서 모든 연산자를 사용할 수 resources.ARN 있지만 Equals 또는 NotEquals를 사용하는 경우 값은 지정한 값에 대한 유효한 리소스ARN의 resources.type와 정확히 일치해야 합니다. 특정 S3 버킷의 모든 객체에 대한 모든 데이터 이벤트를 로깅하려면 StartsWith 연산자를 사용하고 버킷만 ARN 일치하는 값으로 포함합니다.

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

참고

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::AIOps::InvestigationGroup
arn:partition:aiops:region:account_ID:investigation-group/investigation_group_ID
AWS::AppConfig::Configuration
arn:partition:appconfig:region:account_ID:application/application_ID/environment/environment_ID/configuration/configuration_profile_ID
AWS::AppSync::GraphQL
arn:partition:appsync:region:account_ID:apis/GraphQL_API_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::AsyncInvoke
arn:partition:bedrock:region:account_ID:async-invoke/async_invoke_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::InlineAgent
arn:partition:bedrock:region:account_ID:INLINE_AGENT_UUID
AWS::Bedrock::KnowledgeBase
arn:partition:bedrock:region:account_ID:knowledge-base/knowledge_base_ID
AWS::Bedrock::Model

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

  • arn:partition:bedrock:region::foundation-model/resource_ID

  • arn:partition:bedrock:region:account_ID:provisioned-model/resource_ID

  • arn:partition:bedrock:region:account_ID:custom-model/resource_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::CodeGuruProfiler::ProfilingGroup
arn:partition:codeguru-profiler:region:account_ID:profilingGroup/profiling_group_name
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::DataExchange::Asset
arn:partition:dataexchange:region:account_ID:data-sets/data_set_ID/revisions/revision_ID/assets/asset_ID
AWS::Deadline::Fleet
arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID
AWS::Deadline::Job
arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID/job/job_ID
AWS::Deadline::Queue
arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID
AWS::Deadline::Worker
arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID/worker/worker_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::GeoMaps::Provider
arn:partition:geo-maps:region::provider/provider_ID
AWS::GeoPlaces::Provider
arn:partition:geo-places:region::provider/provider_ID
AWS::GeoRoutes::Provider
arn:partition:geo-route:region::provider/provider_ID
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::MWAA::Environment
arn:partition:airflow:region:account_ID:environment/environment_name
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::QApps::QAppSession
arn:partition:qapps:region:account_ID:application/application_UUID/qapp/qapp_UUID/session/session_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::QDeveloper::Integration
arn:partition:qdeveloper:region:account_ID:integration/integration_ID
AWS::RDS::DBCluster
arn:partition:rds:region:account_ID:cluster/cluster_name
AWS::ResourceExplorer2::ManagedView
arn:partition:resource-explorer-2:region:account_ID:managed-view/view_name/view_UUID
AWS::ResourceExplorer2::View
arn:partition:resource-explorer-2:region:account_ID:view/view_name/view_UUID
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::S3Tables::Table
arn:partition:s3tables:region:account_ID:bucket/bucket_name/table/table_ID
AWS::S3Tables::TableBucket
arn:partition:s3tables:region:account_ID:bucket/bucket_name
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::SDB::Domain
arn:partition:sdb:region:account_ID:domain/domain_name
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::SitewiseAssistant::Conversation
arn:partition:sitewise-assistant:region:account_ID:conversation/conversation_ID
AWS::SMSVoice::Message

arn:partition:sms-voice:region:account_ID:message/message_ID

AWS::SMSVoice::OriginationIdentity

arn:partition:sms-voice:region:account_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::SocialMessaging::PhoneNumberId

arn:partition:social-messaging:region:account_ID:phone-number-id/phone_number_ID

AWS::SocialMessaging::WabaId

arn:partition:social-messaging:region:account_ID:waba/waba_ID

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 또는 NotStartsWith 연산자를 사용하는 것이 좋습니다.

resources.ARN 사용하여 데이터 이벤트 필터링 AWS Management Console

CloudTrail 콘솔을 사용하여 resources.ARN 필드를 필터링하려면 다음 단계를 수행합니다.

  1. 추적 생성 절차의 단계를 수행하거나 이벤트 데이터 저장소 생성 절차의 단계를 수행합니다.

  2. 추적 또는 이벤트 데이터 저장소 생성 단계를 수행할 때 다음과 같이 선택합니다.

    1. 데이터 이벤트를 선택합니다.

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

    3. 로그 선택기 템플릿에서 사용자 지정을 선택합니다.

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

    5. 고급 이벤트 선택기에서 다음을 수행하여 resources.ARN으로 필터링합니다.

      1. 필드에서 리소스를 선택합니다.ARN

      2. 연산자에서 조건 연산자를 선택합니다. 이 예제에서는 특정 S3 버킷에 대한 데이터 이벤트를 로깅하기 때문에 다음으로 시작을 선택합니다.

      3. 값에 리소스 유형에 ARN 대한를 입력합니다(예: arn:aws:s3:::amzn-s3-demo-bucket).

      4. 다른 resources.ARN을 필터링하려면 + 조건을 선택합니다. 가 여러 조건을 CloudTrail 평가하는 방법에 대한 자세한 내용은 섹션을 참조하세요가 필드에 대한 여러 조건을 CloudTrail 평가하는 방법.

      resources.ARN별 S3 데이터 이벤트 필터링
    6. +필드를 선택하여 다른 필드에 필터를 추가합니다.

resources.ARN 사용하여 데이터 이벤트 필터링 AWS CLI

를 사용하여 resources.ARN 필드를 필터링하여 특정에 대한 이벤트를 로깅ARN하거나 특정에 대한 로깅을 제외 AWS CLI할 수 있습니다ARN.

추가 이벤트 선택기를 로깅하도록 기존 추적 또는 이벤트 데이터 저장소를 업데이트하는 경우 추적에 대한 get-event-selectors 명령 또는 이벤트 데이터 저장소에 대한 get-event-data-store 명령을 실행하여 현재 이벤트 선택기를 가져옵니다. 그런 다음, 로깅하려는 각 데이터 리소스 유형에 대한 필드 선택기를 추가하도록 이벤트 선택기를 업데이트합니다.

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

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:aws:s3:::amzn-s3-demo-bucket/"] } ] } ]'

readOnly 값별 데이터 이벤트 필터링

고급 이벤트 선택기를 사용하여 readOnly 필드 값을 기준으로 필터링할 수 있습니다.

readOnly 필드에서 Equals 연산자만 사용할 수 있습니다. readOnly 값을 true 또는 false로 설정할 수 있습니다. 이 필드를 추가하지 않으면는 읽기 및 쓰기 이벤트를 모두 CloudTrail 기록합니다. true 값은 읽기 이벤트만 로깅합니다. false 값은 쓰기 이벤트만 로깅합니다.

를 사용하여 readOnly 값을 기준으로 데이터 이벤트 필터링 AWS Management Console

CloudTrail 콘솔을 사용하여 readOnly 필드를 필터링하려면 다음 단계를 수행합니다.

  1. 추적 생성 절차의 단계를 수행하거나 이벤트 데이터 저장소 생성 절차의 단계를 수행합니다.

  2. 추적 또는 이벤트 데이터 저장소 생성 단계를 수행할 때 다음과 같이 선택합니다.

    1. 데이터 이벤트를 선택합니다.

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

    3. 로그 선택기 템플릿에서 사용 사례에 적합한 템플릿을 선택합니다.

      참고

      로그 전용 AWS Management Console 이벤트 AWS 서비스 시작 이벤트 템플릿 제외는 이벤트 데이터 스토어에서만 사용할 수 있습니다.

      데이터 이벤트에 대한 로그 선택기 템플릿을 선택합니다.
      수행하려는 작업 이 로그 선택기 템플릿 선택

      읽기 이벤트만 로깅하고 다른 필터(예: resources.ARN 값)는 적용하지 않습니다.

      읽기 전용 이벤트 로깅

      쓰기 이벤트만 로깅하고 다른 필터(예: resources.ARN 값)는 적용하지 않습니다.

      로그 전용 쓰기 이벤트

      readOnly 값을 기준으로 필터링하고 추가 필터(예: resources.ARN 값)를 적용합니다.

      사용자 지정

      고급 이벤트 선택기에서 다음을 수행하여 readOnly 값으로 필터링합니다.

      쓰기 이벤트를 로깅하는 방법
      1. 필드에서를 선택합니다readOnly.

      2. Operator(연산자)에서 equals(같음)을 선택합니다.

      3. Value(값)false를 입력합니다.

      4. +필드를 선택하여 다른 필드에 필터를 추가합니다.

      읽기 이벤트를 로깅하는 방법
      1. 필드에서를 선택합니다readOnly.

      2. Operator(연산자)에서 equals(같음)을 선택합니다.

      3. Value(값)true를 입력합니다.

      4. +필드를 선택하여 다른 필드에 필터를 추가합니다.

를 사용하여 readOnly 값을 기준으로 데이터 이벤트 필터링 AWS CLI

를 사용하여 readOnly 필드를 필터링 AWS CLI할 수 있습니다.

readOnly 필드에서 Equals 연산자만 사용할 수 있습니다. readOnly 값을 true 또는 false로 설정할 수 있습니다. 이 필드를 추가하지 않으면 CloudTrail는 읽기 및 쓰기 이벤트를 모두 기록합니다. true 값은 읽기 이벤트만 로깅합니다. false 값은 쓰기 이벤트만 로깅합니다.

추가 이벤트 선택기를 로깅하도록 기존 추적 또는 이벤트 데이터 저장소를 업데이트하는 경우 추적에 대한 get-event-selectors 명령 또는 이벤트 데이터 저장소에 대한 get-event-data-store 명령을 실행하여 현재 이벤트 선택기를 가져옵니다. 그런 다음, 로깅하려는 각 데이터 리소스 유형에 대한 필드 선택기를 추가하도록 이벤트 선택기를 업데이트합니다.

다음 예제에서는 모든 Amazon S3에 대한 읽기 전용 데이터 이벤트를 로깅하도록 추적을 구성하는 방법을 보여줍니다.

aws cloudtrail put-event-selectors \ --trail-name TrailName \ --region region \ --advanced-event-selectors '[ { "Name": "Log read-only S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "readOnly", "Equals": ["true"] } ] } ]'

다음 예제에서는 EBS Direct에 대한 쓰기 전용 데이터 이벤트만 로깅하는 새 이벤트 데이터 스토어를 생성합니다APIs. 를 사용할 수 있습니다. update-event-data-store 기존 이벤트 데이터 스토어를 업데이트하는 명령입니다.

aws cloudtrail create-event-data-store \ --name "eventDataStoreName" \ --advanced-event-selectors \ '[ { "Name": "Log write-only EBS Direct API data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] }, { "Field": "readOnly", "Equals": ["false"] } ] } ]'