View a markdown version of this page

Aktif CloudTrail kan pencatatan peristiwa data untuk sumber daya Amazon Bedrock AgentCore Gateway - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktif CloudTrail kan pencatatan peristiwa data untuk sumber daya Amazon Bedrock AgentCore Gateway

Anda dapat menggunakan peristiwa CloudTrail data untuk mendapatkan informasi tentang permintaan Amazon Bedrock AgentCore Gateway. Untuk mengaktifkan peristiwa CloudTrail data untuk Gateway, Anda harus membuat jejak secara manual CloudTrail yang didukung oleh bucket Amazon S3.

Pertimbangan utama

  • Pencatatan peristiwa data dikenakan biaya tambahan. Anda harus secara eksplisit mengaktifkan peristiwa data karena tidak ditangkap secara default. Periksa untuk memastikan bahwa Anda mengaktifkan peristiwa data untuk akun Anda.

  • Dengan gateway yang menghasilkan beban kerja yang tinggi, Anda dapat dengan cepat menghasilkan ribuan log dalam waktu singkat. Perhatikan berapa lama Anda memilih untuk mengaktifkan peristiwa CloudTrail data untuk Gateway yang sibuk.

  • CloudTrail menyimpan log peristiwa data gateway di bucket Amazon S3 pilihan Anda. Pertimbangkan untuk menggunakan bucket di AWS akun terpisah untuk mengatur acara dari berbagai sumber daya dengan lebih baik ke tempat pusat agar kueri dan analisis lebih mudah.

Saat Anda mencatat peristiwa data untuk jejak masuk CloudTrail, Anda harus menggunakan pemilih peristiwa lanjutan untuk mencatat peristiwa data untuk operasi gateway.

contoh
AWS CLI
  1. Untuk mengaktifkan peristiwa CloudTrail data untuk sumber daya gateway menggunakan AWS CLI, Anda dapat menjalankan perintah berikut di terminal:

    aws cloudtrail put-event-selectors \ --trail-name brac-gateway-canary-trail-prod-us-east-1 \ --region us-east-1 \ --advanced-event-selectors '[ { "Name": "GatewayDataEvents", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::BedrockAgentCore::Gateway"] } ] } ]'
AWS CDK
  1. Contoh berikut menunjukkan cara membuat CloudTrail jejak dengan peristiwa data AgentCore Gateway menggunakan AWS CDK:

    import { Construct } from 'constructs'; import { Trail, CfnTrail } from 'aws-cdk-lib/aws-cloudtrail'; import { Bucket } from 'aws-cdk-lib/aws-s3'; import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam'; import { RemovalPolicy } from 'aws-cdk-lib'; export interface DataEventTrailProps { /** * Whether to enable multi-region trail */ isMultiRegionTrail?: boolean; /** * Whether to include global service events */ includeGlobalServiceEvents?: boolean; /** * AWS region */ region: string; /** * Environment account ID */ account: string; } /** * Creates a CloudTrail trail configured to capture data events for Bedrock Agent Core Gateway */ export class BedrockAgentCoreDataEventTrail extends Construct { /** * The CloudTrail trail */ public readonly trail: Trail; /** * The S3 bucket for CloudTrail logs */ public readonly logsBucket: Bucket; constructor(scope: Construct, id: string, props: DataEventTrailProps) { super(scope, id); // Create S3 bucket for CloudTrail logs const bucketName = `brac-gateway-cloudtrail-logs-${props.account}-${props.region}`; this.logsBucket = new Bucket(this, 'CloudTrailLogsBucket', { bucketName, removalPolicy: RemovalPolicy.RETAIN, }); // Create trail name (suffixing region since regional trail) const trailName = `brac-gateway-trail-${props.region}`; // Add CloudTrail bucket policy this.logsBucket.addToResourcePolicy( new PolicyStatement({ sid: 'AWSCloudTrailAclCheck', effect: Effect.ALLOW, principals: [new ServicePrincipal('cloudtrail.amazonaws.com')], actions: ['s3:GetBucketAcl'], resources: [this.logsBucket.bucketArn], conditions: { StringEquals: { 'aws:SourceArn': `arn:aws:cloudtrail:${props.region}:${props.account}:trail/${trailName}`, }, }, }), ); this.logsBucket.addToResourcePolicy( new PolicyStatement({ sid: 'AWSCloudTrailWrite', effect: Effect.ALLOW, principals: [new ServicePrincipal('cloudtrail.amazonaws.com')], actions: ['s3:PutObject'], resources: [this.logsBucket.arnForObjects(`AWSLogs/${props.account}/*`)], conditions: { StringEquals: { 's3:x-amz-acl': 'bucket-owner-full-control', 'aws:SourceArn': `arn:aws:cloudtrail:${props.region}:${props.account}:trail/${trailName}`, }, }, }), ); // Create CloudTrail trail this.trail = new Trail(this, 'GatewayDataEventTrail', { trailName, bucket: this.logsBucket, isMultiRegionTrail: props.isMultiRegionTrail ?? false, includeGlobalServiceEvents: props.includeGlobalServiceEvents ?? true, enableFileValidation: true, }); // Add advanced event selectors for Bedrock Agent Core Gateway data events const cfnTrail = this.trail.node.defaultChild as CfnTrail; // Define the advanced event selectors const advancedEventSelectors = [ { // Log Bedrock Agent Core Gateway Data Events only fieldSelectors: [ { field: 'eventCategory', equalTo: ['Data'], }, { field: 'resources.type', equalTo: ['AWS::BedrockAgentCore::Gateway'], }, ], }, ]; // Clear any existing event selectors and set advanced event selectors cfnTrail.eventSelectors = undefined; cfnTrail.advancedEventSelectors = advancedEventSelectors; } }