View a markdown version of this page

Aktivieren Sie die Protokollierung von CloudTrail Datenereignissen für Amazon Bedrock AgentCore Gateway-Ressourcen - Amazon Grundgestein AgentCore

Aktivieren Sie die Protokollierung von CloudTrail Datenereignissen für Amazon Bedrock AgentCore Gateway-Ressourcen

Sie können CloudTrail Datenereignisse verwenden, um Informationen über Amazon Bedrock AgentCore Gateway-Anfragen abzurufen. Um CloudTrail Datenereignisse für Gateway zu aktivieren, müssen Sie manuell einen Trail erstellen, der von einem Amazon S3 S3-Bucket CloudTrail unterstützt wird.

Die wichtigsten Überlegungen

  • Für die Protokollierung von Datenereignissen fallen zusätzliche Gebühren an. Sie müssen Datenereignisse ausdrücklich aktivieren, da sie standardmäßig nicht erfasst werden. Vergewissern Sie sich, dass Sie Datenereignisse für Ihr Konto aktiviert haben.

  • Mit einem Gateway, das eine hohe Arbeitslast generiert, könnten Sie in kurzer Zeit schnell Tausende von Protokollen generieren. Denken Sie daran, wie lange Sie CloudTrail Datenereignisse für ein stark frequentiertes Gateway aktivieren möchten.

  • CloudTrail speichert Gateway-Datenereignisprotokolle in einem Amazon S3 S3-Bucket Ihrer Wahl. Erwägen Sie die Verwendung eines Buckets in einem separaten AWS Konto, um Ereignisse aus mehreren Ressourcen besser an einem zentralen Ort zu organisieren und so Abfragen und Analysen zu vereinfachen.

Wenn Sie Datenereignisse für einen Trail-In protokollieren CloudTrail, müssen Sie erweiterte Event-Selektoren verwenden, um Datenereignisse für Gateway-Operationen zu protokollieren.

Beispiel
AWS CLI
  1. Um CloudTrail Datenereignisse für Gateway-Ressourcen mithilfe der AWS CLI zu aktivieren, können Sie den folgenden Befehl in einem Terminal ausführen:

    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. Das folgende Beispiel zeigt, wie Sie mithilfe des AWS CDK einen CloudTrail Trail mit AgentCore Gateway-Datenereignissen erstellen:

    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; } }