はじめに
RAG構成のAmazon Bedrockを利用している際に不審なアクセスがないかどうかを確認したいケースがあります。そのような際にAWSのCloudTrialが利用できるため、実際にログの確認を行いました。
執筆時期
- 2025/02
CloudTrialの設定
まず初めに、CloudTrial側でBedrock関連の操作を拾えるようにします。
そもそもCloudTrialでは「Management events」と「Data Events」があり、後者は明示的に有効化をしないと出力されません。BedrockのログはData Eventsに相当します。
手順としては、AWS管理コンソールから作成済みのCloudTrialの個別設定を開き、「Data events」という箇所に設定を追加していきます。初期状態は以下。
Data event collection is not configured for this trail
追加時は任意のデータタイプを追加できるため、Bedrockに関するイベントを入れていきます。
Add data event type
今回はBedrockのRAG機能となるため"AWS::Bedrock::KnowledgeBase"と関連しそうなイベントを追加しました。
設定した値のJSONは以下となります。
[ { "Name": "", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Bedrock::KnowledgeBase" ] } ] }, { "Name": "", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Bedrock::AgentAlias" ] } ] }, { "Name": "", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Bedrock::FlowAlias" ] } ] }, { "Name": "", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Bedrock::PromptVersion" ] } ] } ]
ログを確認する
この状態で以下記事のようにAPI経由でRAGを利用すると
確かにCloudTrialのログにて出力されました。knowledgeBaseIdが表示されるため、特定のRAGで絞ることも可能です。
{ "Records": [ { "sessionContext": { "sessionIssuer": { ... "userName": "xx" }, ... "eventTime": "2025-0X-XXT07:12:11Z", "eventSource": "bedrock.amazonaws.com", "eventName": "RetrieveAndGenerate", "awsRegion": "us-east-1", "sourceIPAddress": "X.X.X.X", "userAgent": "Boto3/1.35.54 md/Botocore#... os/linux#.../python#3.8.20...", "requestParameters": { "retrieveAndGenerateConfiguration": { "type": "KNOWLEDGE_BASE", "knowledgeBaseConfiguration": { "knowledgeBaseId": "xx", "modelArn": "arn:aws:bedrock:us-xx-1::foundation-model/anthropic.claude-v2", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "SEMANTIC" } } } } }, ... ] }
参考までにGUI上からRAG機能を利用すると、ユーザエージェント蘭がブラウザとなりました。
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
終わりに
IAM上での権限だけでなく、IPアドレスやクライアント側のツールのバージョンも見えるため、不正なアクセス時の調査にも活用ができそうだと感じました。本記事がご参考になれば幸いです。
以上、ご参考ください。