View a markdown version of this page

Abilita la registrazione degli eventi CloudTrail dei dati per le risorse Amazon Bedrock AgentCore Gateway - Amazon Bedrock AgentCore

Abilita la registrazione degli eventi CloudTrail dei dati per le risorse Amazon Bedrock AgentCore Gateway

Puoi utilizzare gli eventi CloudTrail relativi ai dati per ottenere informazioni sulle richieste di Amazon Bedrock AgentCore Gateway. Per abilitare gli eventi CloudTrail relativi ai dati per Gateway, devi creare manualmente un percorso CloudTrail supportato da un bucket Amazon S3.

Considerazioni chiave

  • La registrazione degli eventi relativi ai dati comporta costi aggiuntivi. È necessario abilitare in modo esplicito gli eventi relativi ai dati poiché non vengono acquisiti per impostazione predefinita. Verifica di avere abilitato gli eventi relativi ai dati per il tuo account.

  • Con un gateway che genera un carico di lavoro elevato, puoi generare rapidamente migliaia di log in un breve lasso di tempo. Tieni presente per quanto tempo scegli di abilitare gli eventi CloudTrail relativi ai dati per un gateway occupato.

  • CloudTrail archivia i registri degli eventi dei dati del gateway in un bucket Amazon S3 di tua scelta. Prendi in considerazione l'utilizzo di un bucket in un AWS account separato per organizzare meglio gli eventi provenienti da più risorse in un posto centrale per facilitare le interrogazioni e l'analisi.

Quando si registrano gli eventi relativi ai dati per un trail in CloudTrail, è necessario utilizzare selettori di eventi avanzati per registrare gli eventi relativi ai dati per le operazioni del gateway.

Esempio
AWS CLI
  1. Per abilitare gli eventi di CloudTrail dati per le risorse del gateway utilizzando la AWS CLI, puoi eseguire il seguente comando in un terminale:

    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. L'esempio seguente dimostra come creare un CloudTrail percorso con gli eventi di dati AgentCore Gateway utilizzando il 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; } }