View a markdown version of this page

Activer la journalisation CloudTrail des événements de données pour les ressources Amazon Bedrock AgentCore Gateway - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Activer la journalisation CloudTrail des événements de données pour les ressources Amazon Bedrock AgentCore Gateway

Vous pouvez utiliser CloudTrail les événements de données pour obtenir des informations sur les requêtes Amazon Bedrock AgentCore Gateway. Pour activer CloudTrail les événements de données pour Gateway, vous devez créer un historique manuellement, en vous CloudTrail appuyant sur un compartiment Amazon S3.

Principales considérations

  • L'enregistrement des événements de données entraîne des frais supplémentaires. Vous devez activer explicitement les événements de données car ils ne sont pas capturés par défaut. Assurez-vous que les événements liés aux données sont activés pour votre compte.

  • Avec une passerelle qui génère une charge de travail élevée, vous pouvez générer rapidement des milliers de journaux en peu de temps. Faites attention à la durée pendant laquelle vous choisissez d'activer les événements de CloudTrail données pour une passerelle très fréquentée.

  • CloudTrail stocke les journaux d'événements des données de passerelle dans un compartiment Amazon S3 de votre choix. Envisagez d'utiliser un bucket dans un AWS compte distinct pour mieux organiser les événements provenant de plusieurs ressources dans un emplacement central, afin de faciliter les requêtes et les analyses.

Lorsque vous enregistrez des événements de données pour un trail in CloudTrail, vous devez utiliser des sélecteurs d'événements avancés pour enregistrer les événements liés aux données pour les opérations de passerelle.

Exemple
AWS CLI
  1. Pour activer CloudTrail les événements de données pour les ressources de passerelle à l'aide de l' AWS interface de ligne de commande, vous pouvez exécuter la commande suivante dans un 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. L'exemple suivant montre comment créer un historique avec les événements CloudTrail de données AgentCore Gateway à l'aide du 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; } }