模型调用日志记录 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

模型调用日志记录

模型调用日志可用于收集您在 Amazon Bedrock 中使用的所有调用的调用 AWS 账户 日志、模型输入数据和模型输出数据。默认情况下,日志记录处于禁用状态。

通过调用日志记录,您可以收集与在您的账户中执行的所有调用相关的完整请求数据、响应数据和元数据。可以配置日志记录以提供日志数据发布到的目标资源。支持的目标包括亚马逊 CloudWatch 日志和亚马逊简单存储服务 (Amazon S3) Service。仅支持来自相同账户和区域的目标。

在启用调用日志之前,您需要设置 Amazon S3 或 CloudWatch 日志目标。您可以通过控制台或 API 启用调用日志记录。

设置 Amazon S3 目标

您可以按照以下步骤在 Amazon Bedrock 中设置 S3 日志记录目标:

  1. 创建要将日志传输到 S3 存储桶。

  2. 向其添加诸如下面的存储桶策略(替换 accountIdregionbucketName 以及可选 prefix 的值):

    注意

    当您使用权限 S3:GetBucketPolicyS3:PutBucketPolicy 配置日志记录时,系统会代表您自动将存储桶策略附加到存储桶。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonBedrockLogsWrite", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucketName/prefix/AWSLogs/accountId/BedrockModelInvocationLogs/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }
  3. (可选)如果在存储桶上配置 SSE-KMS,请在 KMS 密钥上添加以下策略:

    { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } }

有关 S3 SSE-KMS 配置的更多信息,请参阅指定 KMS 加密

注意

必须禁用存储桶 ACL 才能使存储桶策略生效。有关更多信息,请参阅禁用所有新存储桶的 ACL 并强制执行对象所有权

设置 CloudWatch 日志目标

您可以按照以下步骤设置用于登录 Amazon Bedrock 的 Amazon Log CloudWatch s 目标:

  1. 创建 CloudWatch 将在其中发布日志的日志组。

  2. 创建具有以下 CloudWatch 日志权限的 IAM 角色。

    可信实体

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }

    角色策略

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:accountId:log-group:logGroupName:log-stream:aws/bedrock/modelinvocations" } ] }

有关为 CloudWatch 日志设置 SSE 的更多信息,请参阅使用 AWS Key Management Service 加密 CloudWatch 日志中的日志数据

使用 控制台

要启用模型调用日志记录,请拖动设置页面中日志记录切换开关旁边的滑块按钮。日志记录的其他配置设置将显示在面板上。

选择要将哪些数据请求和响应发布到日志中。您可以选择以下输出选项的任何组合:

  • 文本

  • 图像

  • 嵌入

选择日志的发布位置:

  • 仅限 Amazon S3

  • CloudWatch 仅限日志

  • Amazon S3 和 CloudWatch 日志

调用 CloudWatch 日志以及小型输入和输出数据支持 Amazon S3 和日志目标。对于大型输入和输出数据或二进制图像输出,仅支持 Amazon S3。以下详细信息总结了目标位置的数据表示形式。

  • S3 目标 — Gzip 类型的 JSON 文件(每个文件都包含一批调用日志记录)被传输到指定的 S3 存储桶。与 CloudWatch 日志事件类似,每条记录都将包含调用元数据以及大小不超过 100 KB 的输入和输出 JSON 正文。大于 100 KB 的二进制数据或 JSON 正文将作为单个对象上传到相应数据前缀下的指定 Amazon S3 存储桶中。可以使用 Amazon S3 Select 和 Amazon Athena 对数据进行查询,也可以使用 AWS Glue 对 ETL 进行编目。数据可以加载到 OpenSearch 服务中,也可以由任何 Amazon EventBridge 目标进行处理。

  • CloudWatch 日志目标-JSON 调用日志事件被传送到日志中的 CloudWatch 指定日志组。日志事件包含调用元数据以及大小不超过 100 KB 的输入和输出 JSON 正文。如果提供了用于传输大量数据的 Amazon S3 位置,则大于 100 KB 的二进制数据或 JSON 正文将改为上传到数据前缀下的 Amazon S3 存储桶。可以使用 Logs Insights 查询数据,也可以使用 CloudWatch 日志进一步实时流式传输到各种服务。 CloudWatch

将 API 与调用日志记录搭配使用

可以使用以下 API 配置模型调用日志记录:

  • PutModelInvocationLoggingConfiguration

  • GetModelInvocationLoggingConfiguration

  • DeleteModelInvocationLoggingConfiguration

有关如何将 API 和调用日志记录搭配使用的更多信息,请参阅《Bedrock API 指南》。