View a markdown version of this page

Habilite el registro CloudTrail de eventos de datos para los recursos de Amazon Bedrock AgentCore Gateway - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Habilite el registro CloudTrail de eventos de datos para los recursos de Amazon Bedrock AgentCore Gateway

Puede utilizar CloudTrail los eventos de datos para obtener información sobre las solicitudes de Amazon Bedrock AgentCore Gateway. Para habilitar CloudTrail los eventos de datos para Gateway, debe crear un registro manualmente CloudTrail respaldado por un bucket de Amazon S3.

Consideraciones clave

  • El registro de eventos de datos conlleva cargos adicionales. Debe habilitar explícitamente los eventos de datos, ya que no se capturan de forma predeterminada. Asegúrese de que tiene habilitados los eventos de datos para su cuenta.

  • Con una puerta de enlace que genera una gran carga de trabajo, puede generar rápidamente miles de registros en poco tiempo. Tenga en cuenta durante cuánto tiempo decide habilitar los eventos de CloudTrail datos en un Gateway ocupado.

  • CloudTrail almacena los registros de eventos de datos de gateway en un bucket de Amazon S3 de su elección. Considere la posibilidad de usar un bucket en una AWS cuenta independiente para organizar mejor los eventos de varios recursos en un lugar central para facilitar las consultas y el análisis.

Cuando registras eventos de datos para un registro CloudTrail, debes usar selectores de eventos avanzados para registrar los eventos de datos para las operaciones de la puerta de enlace.

ejemplo
AWS CLI
  1. Para habilitar CloudTrail los eventos de datos para los recursos de la puerta de enlace mediante la AWS CLI, puede ejecutar el siguiente comando en una 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. En el siguiente ejemplo, se muestra cómo crear una CloudTrail ruta con los eventos de datos de AgentCore Gateway mediante el 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; } }