使用進階事件選取器篩選資料事件 - AWS CloudTrail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用進階事件選取器篩選資料事件

本節說明如何使用進階事件選擇器來建立精細選擇器,這可協助您透過僅記錄感興趣的特定資料事件來控制成本。

例如:

  • 您可以在 eventName 欄位上新增篩選條件,以包含或排除特定API呼叫。

  • 您可以在 resources.ARN 欄位上新增篩選條件,以包含或排除特定資源的記錄。例如,如果您正在記錄 S3 資料事件,您可以排除追蹤的 S3 儲存貯體記錄。

  • 您可以選擇在 readOnly 欄位上新增篩選條件,以僅記錄唯讀事件或唯讀事件。

下表提供有關進階事件選取器可設定欄位的其他資訊。

欄位 必要 有效的運算子 描述

eventCategory

Equals

此欄位設定為 Data以記錄資料事件。

追蹤支援:

事件資料存放區支援:

resources.type

Equals

此欄位用於選取您要記錄資料事件的資源類型。資料事件資料表會顯示可能的值。

追蹤支援:

事件資料存放區支援:

readOnly

Equals

這是選用欄位,用於根據 readOnly值包含或排除資料事件。true 日誌僅供讀取事件的值。false 日誌的值僅寫入事件。如果您不新增此欄位, 會 CloudTrail 記錄讀取和寫入事件。

追蹤支援:

事件資料存放區支援:

eventName

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

這是選用的 封存檔,用於篩選或篩選任何記錄到的資料事件 CloudTrail,例如 PutBucketGetSnapshotBlock

如果您使用的是 AWS CLI,則可以使用逗號分隔每個值來指定多個值。

如果您使用的是 主控台,您可以為eventName要篩選的每個項目建立條件,以指定多個值。

追蹤支援:

事件資料存放區支援:

resources.ARN

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

這是選用欄位,用於透過提供 來排除或包含特定資源的資料事件resources.ARN。您可以搭配 使用任何運算子resources.ARN,但如果您使用 EqualsNotEquals,該值必須完全符合您resources.type指定ARN之 的有效資源的 。若要記錄特定 S3 儲存貯體中所有物件的所有資料事件,請使用 StartsWith運算子,並僅包含儲存貯體ARN做為比對值。

如果您使用的是 AWS CLI,則可以使用逗號分隔每個值來指定多個值。

如果您使用的是 主控台,您可以為resources.ARN要篩選的每個 建立條件,以指定多個值。

追蹤支援:

事件資料存放區支援:

eventSource

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

您可以使用它來包含或排除特定事件來源。eventSource 通常是簡短形式的服務名稱,不含空格加 .amazonaws.com。例如,您可以將 eventSource Equals 設定為 ec2.amazonaws.com,以僅記錄 Amazon EC2資料事件。

追蹤支援:

事件資料存放區支援:

eventType

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

eventType 要包含或排除的 。例如,您可以將此欄位設定為 NotEqualsAwsServiceEvent以排除AWS 服務 事件

追蹤支援:

事件資料存放區支援:

sessionCredentialFromConsole

Equals

NotEquals

包含或排除源自 AWS Management Console 工作階段的事件。此欄位可以設定為 EqualsNotEquals ,值為 true

追蹤支援:

事件資料存放區支援:

userIdentity.arn

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

包含或排除特定IAM身分所採取動作的事件。如需詳細資訊,請參閱 CloudTrail userIdentity 元素

追蹤支援:

事件資料存放區支援:

若要使用 CloudTrail 主控台記錄資料事件,請選擇資料事件選項,然後在建立或更新追蹤或事件資料存放區時選取感興趣的資源類型資料事件資料表顯示您可以在 CloudTrail 主控台上選擇的可能資源類型。

在主控台上選擇SNS主題資源類型。

若要使用 記錄資料事件 AWS CLI,請設定 --advanced-event-selector 參數以設定eventCategory等於 Data,並將resources.type值設定為等於您要記錄資料事件的資源類型值。資料事件資料表列出可用的資源類型。

例如,如果您想要記錄所有 Cognito Identity 集區的資料事件,請將 --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"] } ] } ]'

上述範例會將所有 Cognito 資料事件記錄在 Identity 集區上。您可以進一步精簡進階事件選擇器,以篩選 eventName、 和 resources.ARN 欄位readOnly,以記錄特定感興趣的事件,或排除不感興趣的事件。

您可以設定進階事件選擇器,根據多個欄位篩選資料事件。例如,您可以設定進階事件選取器來記錄所有 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 評估欄位的多個條件

您可以使用進階事件選取器來記錄管理和資料事件。若要記錄多個資源類型的資料事件,請為您要記錄資料事件的每個資源類型新增欄位選擇器陳述式。

注意

線索可以使用基本事件選取器或進階事件選取器,但不能同時使用兩者。如果您將進階事件選取器套用至追蹤,則會覆寫任何現有的基本事件選取器。

選取器不支援使用萬用字元,例如 * 。若要將多個值與單一條件相符,您可以使用 StartsWithNotStartsWithEndsWith或 來NotEndsWith明確比對事件欄位的開頭或結尾。

如何 CloudTrail 評估欄位的多個條件

對於進階事件選取器, 會 CloudTrail 評估欄位的多個條件,如下所示:

  • DESELECT 運算子是 AND'd 在一起。如果符合任何DESELECT運算子條件,則不會交付事件。這些是進階事件選取器的有效DESELECT運算子:

    • NotEndsWith

    • NotEquals

    • NotStartsWith

  • SELECT 運算子是 OR'd together。這些是進階事件選取器的有效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 欄位 NotStartsWitharn:aws:s3:::amzn-s3-demo-bucket/deselect

    • resources.ARN 欄位 NotEndsWithobject5

    • resources.ARN 欄位 NotEqualsarn:aws:s3:::amzn-s3-demo-bucket/object6

  2. 至少符合下列其中一個SELECT運算子條件:

    • resources.ARN 欄位 Equalsarn:aws:s3:::amzn-s3-demo-bucket/object1

    • resources.ARN 欄位 StartsWitharn:aws:s3:::amzn-s3-demo-bucket/

    • resources.ARN 欄位 EndsWithobject3

根據評估邏輯:

  1. 的資料事件amzn-s3-demo-bucket/object1將會交付,因為它符合Equals運算子的值,且不符合 NotStartsWithNotEndsWithNotEquals運算子的任何值。

  2. 的資料事件amzn-s3-demo-bucket/object2將會交付,因為它符合StartsWith運算子的值,且不符合 NotStartsWithNotEndsWithNotEquals運算子的任何值。

  3. 的資料事件amzn-s3-demo-bucket1/object3將會交付,因為它符合EndsWith運算子,且不符合 NotStartsWithNotEndsWithNotEquals運算子的任何值。

  4. 的資料事件arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4將不會交付,因為它符合 的條件,NotStartsWith即使它符合StartsWith運算子的條件。

  5. 的資料事件arn:aws:s3:::amzn-s3-demo-bucket/object5將不會交付,因為它符合 的條件,NotEndsWith即使它符合StartsWith運算子的條件。

  6. 的資料事件arn:aws:s3:::amzn-s3-demo-bucket/object6將不會交付,因為它符合NotEquals運算子的條件,即使它符合StartsWith運算子的條件。

依 篩選資料事件 eventName

使用進階事件選取器,您可以根據 eventName 欄位的值來包含或排除事件。在 上篩選eventName有助於控制成本,因為您避免在 記錄資料事件時產生成本, AWS 服務 而 新增對新資料的支援APIs。

您可以搭配 eventName 欄位使用任何運算子。您可以使用它來篩選或篩選記錄到的任何資料事件 CloudTrail,例如 PutBucketGetSnapshotBlock

eventName 使用 篩選資料事件 AWS Management Console

使用 CloudTrail 主控台執行下列步驟來篩選 eventName 欄位。

  1. 請遵循建立追蹤程序中的步驟,或遵循建立事件資料存放程序中的步驟。

  2. 當您依照步驟建立追蹤或事件資料存放區時,請進行下列選擇:

    1. 選擇資料事件

    2. 選擇您要記錄資料事件的資源類型

    3. 針對日誌選取器範本,選擇自訂

    4. (選用) 在選取器名稱中,輸入用於識別選取器的名稱。選取器名稱是進階事件選擇器的描述性名稱,例如「僅為兩個 S3 儲存貯體記錄資料事件」。選擇器名稱在進階事件選擇器Name中列為 ,如果您展開JSON檢視,則可檢視。

    5. 進階事件選取器中,執行下列動作來篩選 eventName

      1. 針對 欄位,選擇 eventName

      2. 對於運算子,選擇條件運算子。在此範例中,我們將選擇等於,因為我們想要記錄特定API呼叫。

      3. 針對,輸入您要篩選的事件名稱。

      4. 若要在其他 上篩選eventName,請選擇 + 條件。如需如何 CloudTrail 評估多個條件的詳細資訊,請參閱如何 CloudTrail 評估欄位的多個條件

      依 篩選 S3 資料事件 eventName
    6. 選擇 +Field 以新增其他欄位的篩選條件。

eventName 使用 篩選資料事件 AWS CLI

您可以使用 AWS CLI篩選 eventName 欄位,以包含或排除特定事件。

如果您要更新現有的線索或事件資料存放區以記錄其他事件選取器,請執行線索的 get-event-selectors命令,或事件資料存放區的 get-event-data-store命令,以取得目前的事件選取器。然後,更新您的事件選擇器,為您要記錄的每個資料資源類型新增欄位選擇器。

下列範例會記錄追蹤上的 S3 資料事件。--advanced-event-selectors 設定為僅記錄 GetObjectPutObjectDeleteObjectAPI呼叫的資料事件。

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 Direct 的資料事件,APIs但不包括ListChangedBlocksAPI呼叫。您可以使用 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 使用任何運算子,但如果您使用 EqualsNotEquals,該值必須完全符合您指定resources.type值ARN的有效資源的 。若要記錄特定 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::Backup::SearchJob
arn:partition:backup-search:region:account_ID:search-job/search_job_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::Signer::SigningJob
arn:partition:signer:region:account_ID:job_owner/signing-jobs/job_UUID
AWS::Signer::SigningProfile
arn:partition:signer:region:account_ID:profile_owner/signing-profiles/profile_name
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。如果您指定 AWS::DynamoDB::Table 作為 resources.type,則會根據預設同時記錄 DynamoDB 資料表和 DynamoDB 串流事件。若要排除串流事件,請在 eventName 欄位上新增篩選條件。

2 若要記錄特定 S3 儲存貯體中所有物件的所有資料事件,請使用 StartsWith 運算子,並僅包含儲存貯體ARN做為比對值。末尾斜線是有意保留,請勿排除。

3 若要記錄 S3 存取點中所有物件的事件,建議您僅使用存取點 ARN,不要包含物件路徑,並使用 StartsWithNotStartsWith運算子。

resources.ARN 使用 篩選資料事件 AWS Management Console

執行下列步驟,使用 CloudTrail 主控台篩選 resources.ARN 欄位。

  1. 請遵循建立追蹤程序中的步驟,或遵循建立事件資料存放程序中的步驟。

  2. 當您依照步驟建立追蹤或事件資料存放區時,請進行下列選擇:

    1. 選擇資料事件

    2. 選擇您要記錄資料事件的資源類型

    3. 針對日誌選取器範本,選擇自訂

    4. (選用) 在選取器名稱中,輸入用於識別選取器的名稱。選取器名稱是進階事件選擇器的描述性名稱,例如「僅為兩個 S3 儲存貯體記錄資料事件」。選擇器名稱在進階事件選擇器Name中列為 ,如果您展開JSON檢視,則可檢視。

    5. 進階事件選取器中,執行下列動作以篩選 resources.ARN

      1. 針對欄位,選擇資源。ARN

      2. 對於運算子,選擇條件運算子。在此範例中,我們將選擇 開頭,因為我們想要記錄特定 S3 儲存貯體的資料事件。

      3. 針對,輸入ARN資源類型的 (例如 arn:aws:s3:::amzn-s3-demo-bucket)。

      4. 若要篩選另一個 resources.ARN,請選擇 + 條件。如需如何 CloudTrail 評估多個條件的詳細資訊,請參閱 如何 CloudTrail 評估欄位的多個條件

      依 篩選 S3 資料事件 resources.ARN
    6. 選擇 +Field 以新增其他欄位的篩選條件。

resources.ARN 使用 篩選資料事件 AWS CLI

您可以使用 AWS CLI篩選 resources.ARN 欄位,以記錄特定 的事件,ARN或排除特定 的記錄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 欄位的值進行篩選。

您只能將 Equals 運算子與 readOnly 欄位搭配使用。您可以將readOnly值設定為 truefalse。如果您不新增此欄位, 會 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值上)。

      Custom (自訂)

      進階事件選取器中,執行下列動作以篩選readOnly值:

      記錄寫入事件
      1. 針對 欄位,選擇 readOnly

      2. 對於運算子,選擇 equals

      3. 針對數值,輸入 false

      4. 選擇 +Field 以新增其他欄位的篩選條件。

      記錄讀取事件
      1. 針對 欄位,選擇 readOnly

      2. 對於運算子,選擇 equals

      3. 針對數值,輸入 true

      4. 選擇 +Field 以新增其他欄位的篩選條件。

使用 依readOnly值篩選資料事件 AWS CLI

您可以使用 AWS CLI篩選 readOnly 欄位。

您只能將 Equals 運算子與 readOnly 欄位搭配使用。您可以將readOnly值設定為 truefalse。如果您不新增此欄位, 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"] } ] } ]'