

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

# 使用 CloudWatch 日志和 Amazon S3 监控模型调用
<a name="model-invocation-logging"></a>

您可以使用模型调用日志来收集您在某个地区的 Amazon Bedrock 中使用的所有调用的调用 AWS 账户 日志、模型输入数据和模型输出数据。

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

默认情况下，模型调用日志记录处于禁用状态。启用模型调用日志记录后，将存储日志，直到删除日志记录配置为止。

以下操作可以记录模型调用。
+ [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)
+ [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html)
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)
+ [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)

[使用 Converse API](conversation-inference-call.md) 时，您传递的任何图像或文档数据都将记录在 Amazon S3 中（前提是您已在 Amazon S3 中[启用](#model-invocation-logging-console)传送和图像日志记录功能）。

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

**Topics**
+ [设置 Amazon S3 目标](#setup-s3-destination)
+ [设置 CloudWatch 日志目标](#setup-cloudwatch-logs-destination)
+ [使用控制台启用模型调用日志记录](#model-invocation-logging-console)
+ [使用 API 启用模型调用日志记录](#using-apis-logging)

## 设置 Amazon S3 目标
<a name="setup-s3-destination"></a>

**注意**  
使用 Amazon S3 作为日志记录目标时，需要使用与创建模型调用日志配置相同的 AWS 区域 存储桶来创建存储桶。

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

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

1. 向其添加如下所示的存储桶策略（替换*accountId*、*region**bucketName*、和的值（可选*prefix*）：
**注意**  
当您使用权限 `S3:GetBucketPolicy` 和 `S3:PutBucketPolicy` 配置日志记录时，系统会代表您自动将存储桶策略附加到存储桶。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AmazonBedrockLogsWrite",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketName/prefix/AWSLogs/123456789012/BedrockModelInvocationLogs/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1. （可选）如果在存储桶上配置 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 加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)。

**注意**  
必须禁用存储桶 ACL 才能使存储桶策略生效。有关更多信息，请参阅[禁 ACLs 用所有新存储桶和强制执行对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html)。

## 设置 CloudWatch 日志目标
<a name="setup-cloudwatch-logs-destination"></a>

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

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

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

   **可信实体**：

------
#### [ JSON ]

****  

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

------

   **角色策略**：

------
#### [ JSON ]

****  

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

------

有关为 CloudWatch 日志设置 SSE 的更多信息，请参阅[使用加密日志中的 CloudWatch 日志数据 AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

## 使用控制台启用模型调用日志记录
<a name="model-invocation-logging-console"></a>

**启用模型调用日志**

使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，在 [https://console.aws.amazon.com/](https://console.aws.amazon.com/bedrock)bedrock 上打开 Amazon Bedrock 控制台。

1. 在左侧导航窗格中，选择 “**设置”**。

1. 在**模型调用日志**页面中，选择**模型调用**日志。将出现用于记录的其他配置设置。

1. 选择要发布到日志的数据请求和响应的模式。您可以选择以下输出选项的任意组合：
   + 文本
   + Image
   + 嵌入
   + 视频
**注意**  
将记录支持您选择的模态（无论是输入还是输出）*的所有*模型的数据。例如，如果您选择 “**图像**”，则将记录所有支持图像输入、图像输出或两者兼而有之的模型调用。

1. 选择发布日志的位置：
   + 仅限 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 启用模型调用日志记录
<a name="using-apis-logging"></a>

可以使用以下 APIs方法配置模型调用日志：
+ [PutModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_PutModelInvocationLoggingConfiguration.html)
+ [GetModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelInvocationLoggingConfiguration.html)
+ [DeleteModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteModelInvocationLoggingConfiguration.html)