

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

# 使用敏感信息筛选条件从对话中删除 PII
<a name="guardrails-sensitive-filters"></a>

 Amazon Bedrock Guardrails 使用敏感信息筛选器帮助检测输入提示或模型响应中的敏感信息，例如个人身份信息 (PII)。此过滤器仅支持文本输出，当模型通过支持的 API 使用 tool\_use（函数调用）输出参数进行响应时，不会检测 PII 信息。此过滤器是一种基于概率机器学习 (ML) 的解决方案，它依赖于上下文，可根据输入提示或模型响应中的上下文检测敏感信息。您可以通过从 Amazon Bedrock Guardrails 提供的一组针对您的用例或组织的内置 PII 中进行选择来进行配置，方法是将其与基于模式匹配的正则表达式（自定义正则表达式）一起定义以屏蔽或屏蔽 PII 数据。

敏感信息检测适用于自然语言和代码域，包括代码语法、注释、字符串文字和混合内容。这有助于识别嵌入在变量名、硬编码凭据或代码文档等代码元素中的 PII。

您可以配置以下模式来处理护栏检测到的敏感信息：
+ **阻止** – 敏感信息筛选策略可以阻止包含敏感信息的请求或响应。此类应用程序的示例可能包括基于公共文件的一般问题和答案。如果在提示或响应中检测到敏感信息，护栏会屏蔽所有内容并返回您配置的消息。
+ **屏蔽** – 敏感信息筛选策略，可以匿名化或加密模型请求或响应中的信息。例如，在生成用户和客服座席之间的对话摘要时，护栏会屏蔽 PII。如果在模型请求或响应中检测到敏感信息，则护栏会屏蔽该信息并将其替换为 PII 类型（例如 `{NAME}` 或 `{EMAIL}`）。

Amazon Bedrock 护栏提供了以下要阻止或匿名化的 PII：
+ **一般性问题**
  + **ADDRESS**

    实际地址，例如“美国任何市 100 号大街”或“123 号楼 12 房”。地址可以包括街道、建筑物、位置、城市、州、国家、县、邮政编码、辖区和社区等信息。
  + **AGE**

    个人的年龄，包括数量和时间单位。例如，在“我今年 40 岁”这句话中，Amazon Bedrock 护栏将“40 岁”识别为年龄。
  + **NAME**

    个人的名字。该实体类型不包括头衔，例如 “博士”、“先生”、“夫人”或“小姐”。Amazon Bedrock 护栏不会将此实体类型应用于组织或地址中的姓名。例如，护栏将“John Doe Organization”识别为一个组织，将“Jane Doe Street”识别为一个地址。
  + **EMAIL**

    电子邮件地址，例如 *marymajor@email.com*。
  + **PHONE**

    电话号码。该实体类型还包括传真号码和寻呼机号码。
  + **USERNAME**

    用于标识帐户的用户名，例如登录名、屏幕名称、昵称或句柄。
  + **PASSWORD**

    用作密码的字母数字字符串，例如“\**very20special\#pass\**”。
  + **DRIVER\_ID**

    分配给驾驶执照的号码，驾驶执照是允许个人在公共道路上驾驶一辆或多辆机动车辆的官方文件。驾驶执照号码由字母数字字符组成。
  + **LICENSE\_PLATE**

    车辆牌照由车辆登记的所在州或国家签发。乘用车的格式通常为 5 到 8 位数，由大写字母和数字组成。格式因签发州或国家的不同而异。
  + **VEHICLE\_IDENTIFICATION\_NUMBER**

    车辆识别号码 (VIN) 是车辆的唯一标识。*ISO 3779* 规范规定了 VIN 内容和格式。每个国家/地区都有特定的 VIN 代码和格式。
+ **财务**
  + **CREDIT\_DEBIT\_CARD\_CVV**

    VISA、 MasterCard、Discover 信用卡和借记卡上显示的三位数信用卡验证码 (CVV)。对于美国运通信用卡或借记卡，CVV 是一个 4 位数的数字代码。
  + **CREDIT\_DEBIT\_CARD\_EXPIRY**

    信用卡或借记卡的到期日期。该数字的长度通常为四位数，通常格式为*month/year*或*MM/YY*。*Amazon Bedrock Guardrails 可以识别到期日期 *01/21*，例如*01/2021*、和 2021 年 1 月。*
  + **CREDIT\_DEBIT\_CARD\_NUMBER**

    信用卡或借记卡的号码。这些数字的长度可以从 13 到 16 位数字不等。但是，当只有最后 4 位数字存在时，Amazon Bedrock 也能识别信用卡或借记卡号。
  + **PIN**

    一个 4 位数的个人身份识别码 (PIN)，您可以使用它访问您的银行账户。
  + **INTERNATIONAL\_BANK\_ACCOUNT\_NUMBER**

    国际银行账号在每个国家都有特定的格式。欲了解更多信息，请参阅 [www.iban。 com/structure](https://www.iban.com/structure)。
  + **SWIFT\_CODE**

    SWIFT 代码是银行识别码 (BIC) 的标准格式，用于指定特定的银行或分行。银行使用这些代码进行汇款，例如国际电汇。

    SWIFT 代码由 8 个或 11 个字符组成。11 位数的代码指的是特定的分支机构，而 8 位数的代码（或以“XXX”结尾的 11 位数代码）指的是总部或主要办事处。
+ **IT**
  + **IP\_ADDRESS**

    一个 IPv4 地址，例如 *198.51.100.0*。
  + **MAC\_ADDRESS**

    *媒体访问控制（MAC）*地址是分配给网络接口控制器（NIC）的唯一标识符。
  + **URL**

    一个网址，例如 *www.example.com*。
  + **AWS\_ACCESS\_KEY**

    与秘密访问密钥关联的唯一标识符；使用访问密钥 ID 和秘密访问密钥，对编程方式的 AWS 请求进行加密签名。
  + **AWS\_SECRET\_KEY**

    与访问密钥关联的唯一标识符。您可以使用访问密钥 ID 和私有访问密钥对编程 AWS 请求进行加密签名。
+ **美国相关信息**
  + **US\_BANK\_ACCOUNT\_NUMBER**

    美国银行账号，长度通常为 10 到 12 位数字。
  + **US\_BANK\_ROUTING\_NUMBER**

    美国银行账户的路由号码。通常为九位数字。
  + **US\_INDIVIDUAL\_TAX\_IDENTIFICATION\_NUMBER**

    美国个人纳税人识别号 (ITIN) 是一个以“9”开头的 9 位数字，第 4 位数字是“7”或“8”。ITIN 可以在第 3 位和第 4 位数字之后使用空格或短划线进行格式化。
  + **US\_PASSPORT\_NUMBER**

    美国护照编号。护照编码由 6 到 9 个字母数字字符组成。
  + **US\_SOCIAL\_SECURITY\_NUMBER**

    美国社会安全号码 (SSN) 是发放给美国公民、永久居民和临时工作居民的 9 位数号码。
+ **加拿大相关信息**
  + **CA\_HEALTH\_NUMBER**

    加拿大医疗服务号码是一个 10 位数的唯一标识符，是个人获得医疗保健福利所必需的。
  + **CA\_SOCIAL\_INSURANCE\_NUMBER**

    加拿大社会保险号 (SIN) 是一个 9 位数的唯一标识符，是个人获得政府计划和福利所必需的。

    SIN 的格式为 3 组 3 位数字，例如 *123-456-789*。SIN 可以通过一种称为[卢恩算法](https://www.wikipedia.org/wiki/Luhn_algorithm)的简单校验码过程进行验证。
+ **英国相关信息**
  + **UK\_NATIONAL\_HEALTH\_SERVICE\_NUMBER**

    英国国家健康服务号码是一个 10 至 17 位数字，例如 *485 777 3456*。当前系统对 10 位数字进行格式化，在第 3 位和第 6 位数字之后使用空格。最后一位数字是错误检测的校验和。
  + **UK\_NATIONAL\_INSURANCE\_NUMBER**

    英国国民保险号码 (NINO) 为个人提供获得国民保险（社会保障）福利的权限。它在英国税收系统中也用于某些目的。

    该数字共有 9 位数字，以两个字母开头，后跟 6 个数字和 1 个字母。可以在两个字母后面以及第 2、第 4 和第 6 位数字之后使用空格或短划线进行格式化 NINO。
  + **UK\_UNIQUE\_TAXPAYER\_REFERENCE\_NUMBER**

    英国唯一纳税人编号 (UTR) 是一个 10 位数字，用于识别纳税人或企业。
+ **自定义**
  + **正则表达式筛选条件**

    您可以使用正则表达式来定义护栏识别和操作的模式，例如序列号、预订 ID 或其他自定义模式。

**注意**  
如果为 PII 模型提供了充足的上下文，该模型的运行效果会更好。为了提高其准确率，请包含更多上下文信息，避免向模型提交单个单词或短语。由于 PII 可能依赖于上下文（例如，一串数字可能代表一个 AWS KMS key 或一个用户 ID，具体取决于周围的信息），因此提供全面的上下文对于准确的识别至关重要。

**注意**  
PII 屏蔽仅适用于发送到推理模型的内容（输入提示）和从推理模型返回的内容（模型响应）。它不适用于以下情况：  
**模型调用日志** — 如果您启用[使用 CloudWatch 日志和 Amazon S3 监控模型调用](model-invocation-logging.md)，则无论护栏干预如何，Amazon CloudWatch Logs 中的`input`字段都将始终包含未经修改的原始请求。要保护日志中的敏感信息，请使用 [Amazon CloudWatch 日志数据保护](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html)。
**Guardrails 跟踪输出** — API 响应中[GuardrailPiiEntityFilter](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailPiiEntityFilter.html)返回的`match`字段（例如 Converse API 的`trace`对象）包含原始的 PII 值，而不是屏蔽的输出。这种行为是设计使您的应用程序可以将检测结果用于自己的逻辑。

**注意**  
敏感信息筛选条件的自定义正则表达式筛选条件不支持正则表达式环视匹配。

## 为护栏配置敏感信息策略
<a name="guardrails-sensitive-information-policy-configure"></a>

您可以使用 AWS 管理控制台 或 Amazon Bedrock API，为护栏配置敏感信息策略。

------
#### [ Console ]

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

1. 从左侧导航栏中，选择**护栏**，然后选择**创建护栏**。

1. 对于**提供护栏详细信息**页面，执行以下操作：

   1. 在**护栏详细信息**部分，提供护栏的**名称**和（可选的）**描述**。

   1. 对于**针对阻止的提示显示的消息**，输入一条将在应用护栏时显示的消息。选中**对回应应用相同的阻止消息**复选框，以便在对响应应用您的护栏时使用相同的消息。

   1. （可选）要为护栏启用[跨区域推理](guardrails-cross-region.md)，请展开**Cross-Region 推理**，然后为护栏选择**启用跨**区域推理。选择一个护栏配置文件，该配置文件定义了 AWS 区域 可以路由护栏推理请求的目的地。

   1. （可选）默认情况下，您的护栏使用加密。 AWS 托管式密钥要使用您自己的客户自主管理型 KMS 密钥，请展开 **KMS 密钥选择**，然后选中**自定义加密设置（高级）**复选框。

      您可以选择现有 AWS KMS 密钥或选择**创建 AWS KMS 密钥**来创建新密钥。

   1. （可选）要向护栏添加标签，请展开**标签**，然后为您定义的每个标签选择**添加新标签**。

      有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。

   1. 选择**下一步**。

1. 在**添加敏感信息筛选条件**页面上，要配置筛选条件以阻止或屏蔽敏感信息，请执行以下操作：

   1. 在 **PII 类型**部分，配置个人身份信息（PII）类别以进行阻止、屏蔽或不执行任何操作（检测模式）。您有以下选项：
      + 要添加所有 PII 类型，请选择**添加 PII 类型**旁边的下拉箭头。然后选择要应用于它们的护栏行为。
**警告**  
如果指定行为，则为 PII 类型配置的任何现有行为都将被覆盖。
      + 要删除 PII 类型，请选择“垃圾桶”图标（![Trash can icon representing a delete action.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/trash.png)）。
      + 要删除包含错误的行，请选择**全部删除**，然后选择**删除所有有错误的行**。
      + 要删除所有 PII 类型，请选择**全部删除**，然后选择**删除所有行**。
      + 要搜索行，请在搜索栏中输入表达式。
      + 要仅显示有错误的行，请选择标有**全部显示**的下拉菜单，然后选择**仅显示错误**。
      + 要配置表格中每页的大小或表格中显示的列，请选择“设置”图标（![Gear icon representing settings or configuration options.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/settings.png)）。设置您的首选项，然后选择**确认**。

   1. 在**正则表达式模式**部分，使用正则表达式定义护栏要筛选的模式。您有以下选项：
      + 要添加模式，请选择**添加正则表达式模式**。配置以下字段：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/guardrails-sensitive-filters.html)
      + 要编辑模式，请在**操作**列中选择与该主题同行的三个点图标。然后选择**编辑**。完成编辑后，选择**确认**。
      + 要删除一个或多个模式，请选中要删除的模式对应的复选框。选择**删除**，然后选择**删除所选项**。
      + 要删除所有模式，请选择**删除**，然后选择**全部删除**。
      + 要搜索模式，请在搜索栏中输入表达式。
      + 要配置表格中每页的大小或表格中显示的列，请选择“设置”图标（![Gear icon representing settings or configuration options.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/settings.png)）。设置您的首选项，然后选择**确认**。

   1. 配置完敏感信息筛选条件后，选择**下一步**或**跳至“查看并创建”**。

------
#### [ API ]

要使用敏感信息策略创建护栏，请发送请求。[CreateGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateGuardrail.html)请求的格式如下：

```
POST /guardrails HTTP/1.1
Content-type: application/json

{
    "blockedInputMessaging": "string",
    "blockedOutputsMessaging": "string",
    "sensitiveInformationPolicyConfig": {
        "piiEntitiesConfig": [{
            "type": "ADDRESS | EMAIL | PHONE | NAME | SSN | ...",
            "action": "BLOCK | ANONYMIZE | NONE",
            "inputAction": "BLOCK | ANONYMIZE | NONE",
            "inputEnabled": true,
            "outputAction": "BLOCK | ANONYMIZE | NONE",
            "outputEnabled": true
        }],
        "regexesConfig": [{
            "name": "string",
            "pattern": "string",
            "action": "BLOCK | ANONYMIZE | NONE",
            "description": "string",
            "inputAction": "BLOCK | ANONYMIZE | NONE",
            "inputEnabled": true,
            "outputAction": "BLOCK | ANONYMIZE | NONE",
            "outputEnabled": true
        }]
    },
    "description": "string",
    "kmsKeyId": "string",
    "name": "string",
    "tags": [{
        "key": "string",
        "value": "string"
    }],
    "crossRegionConfig": {
        "guardrailProfileIdentifier": "string"
    }
}
```
+ 在 `name` 和 `description` 字段分别为护栏指定名称和描述。
+ 在 `blockedInputMessaging` 和 `blockedOutputsMessaging` 字段中指定护栏成功阻止提示或模型响应时显示的消息。
+ 在 `sensitiveInformationPolicyConfig` 对象中配置敏感信息策略：
  + 使用 `piiEntitiesConfig` 数组配置预定义的 PII 实体类型：
    + 在 `type` 字段中指定 PII 实体类型。有效值包括 `ADDRESS`、`EMAIL`、`PHONE`、`NAME`、`US_SOCIAL_SECURITY_NUMBER` 等。
    + 指定在 `action` 字段中检测 PII 时要执行的操作。选择 `BLOCK` 可阻止内容，选择 `ANONYMIZE` 可屏蔽内容，或选择 `NONE` 不执行任何操作但返回检测信息。
    + （可选）使用 `inputAction`、`inputEnabled`、`outputAction`、和 `outputEnabled` 为提示和响应配置不同的行为。
  + 使用 `regexesConfig` 数组定义要检测的自定义模式：
    + 为正则表达式模式指定 `name`（1-100 个字符）。
    + 定义用于检测的正则表达式 `pattern`（1-500 个字符）。
    + 指定检测到模式时要执行的 `action`。选择 `BLOCK` 可阻止内容，选择 `ANONYMIZE` 可屏蔽内容，或选择 `NONE` 不执行任何操作但返回检测信息。
    + （可选）为正则表达式模式提供 `description`（1-1000 个字符）。
    + （可选）使用 `inputAction`、`inputEnabled`、`outputAction`、和 `outputEnabled` 为提示和响应配置不同的行为。
+ （可选）向护栏附加任何标签。有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。
+ （可选）为了安全起见，请在 `kmsKeyId` 字段中包含 KMS 密钥的 ARN。
+ （可选）要启用[跨区域推理](guardrails-cross-region.md)，请在 `crossRegionConfig` 对象中指定护栏配置文件。

响应的格式如下：

```
HTTP/1.1 202
Content-type: application/json

{
    "createdAt": "string",
    "guardrailArn": "string",
    "guardrailId": "string",
    "version": "string"
}
```

------