View a markdown version of this page

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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Puoi utilizzare gli eventi di CloudTrail dati per ottenere informazioni sulle richieste di Amazon Bedrock AgentCore Gateway. Per abilitare gli eventi di CloudTrail dati per Gateway, è necessario 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 esplicitamente gli eventi relativi ai dati in quanto non vengono acquisiti per impostazione predefinita. Verifica di avere gli eventi relativi ai dati abilitati 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 log degli eventi dei dati del gateway in un bucket Amazon S3 a 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 le analisi.

Quando si registrano eventi di dati per un trail in CloudTrail, è necessario utilizzare selettori di eventi avanzati per registrare gli eventi di 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 del 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; } }