使用敏感信息筛选条件从对话中删除 PII - Amazon Bedrock

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

使用敏感信息筛选条件从对话中删除 PII

Amazon Bedrock Guardrails 可帮助检测输入提示或模型响应中标准格式的敏感信息,例如个人身份信息 (PIIs)。您还可以使用正则表达式(regex),配置符合您的应用场景或组织需求的敏感信息。

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

您可以配置以下模式来处理护栏检测到的敏感信息:

  • 阻止 – 敏感信息筛选策略可以阻止包含敏感信息的请求或响应。此类应用的示例包括基于公共文档的一般问答应用程序。如果在提示或响应中检测到敏感信息,护栏会屏蔽所有内容并返回您配置的消息。

  • 屏蔽 – 敏感信息筛选策略,可以匿名化或加密模型请求或响应中的信息。例如,在生成用户与客户服务代理之间的对话摘要 PIIs 时,护栏会屏蔽。如果在模型请求或响应中检测到敏感信息,则护栏会屏蔽该信息并将其替换为 PII 类型(例如 {NAME}{EMAIL})。

Amazon Bedrock Guardrails 提供以下内容 PIIs 来屏蔽或匿名化:

  • 一般性问题

    • 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 内容和格式。每个国家/地区都有特定的代码和格式 VINs.

  • 财务

    • CREDIT_DEBIT_CARD_CVV

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

    • CREDIT_DEBIT_CARD_EXPIRY

      信用卡或借记卡的到期日期。该数字通常为 4 位数,通常格式为月/年MM/YY。Amazon Bedrock 护栏可以识别 01/2101/2021Jan 2021 等到期日期。

    • CREDIT_DEBIT_CARD_NUMBER

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

    • PIN

      一个 4 位数的个人身份识别码 (PIN),您可以使用它访问您的银行账户。

    • INTERNATIONAL_BANK_ACCOUNT_NUMBER

      国际银行账号在每个国家都有特定的格式。有关更多信息,请参阅 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 可以通过一种称为卢恩算法的简单校验码过程进行验证。

  • 英国相关信息

    • 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,具体取决于周围的信息),因此提供全面的上下文对于准确的识别至关重要。

注意

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

为护栏配置敏感信息策略

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

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

  2. 从左侧导航栏中,选择护栏,然后选择创建护栏

  3. 对于提供护栏详细信息页面,执行以下操作:

    1. 护栏详细信息部分,提供护栏的名称和(可选的)描述

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

    3. (可选)要为护栏启用跨区域推理,请展开跨区域推理,然后选择为护栏启用跨区域推理。选择一个护栏配置文件,该配置文件定义了AWS 区域可以路由护栏推理请求的目的地。

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

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

    5. (可选)要向护栏添加标签,请展开标签,然后为您定义的每个标签选择添加新标签

      有关更多信息,请参阅 标记 Amazon Bedrock 资源

    6. 选择下一步

  4. 添加敏感信息筛选条件页面上,要配置筛选条件以阻止或屏蔽敏感信息,请执行以下操作:

    1. PII 类型部分,配置个人身份信息(PII)类别以进行阻止、屏蔽或不执行任何操作(检测模式)。您有以下选项:

      • 要添加所有 PII 类型,请选择添加 PII 类型旁边的下拉箭头。然后选择要应用于它们的护栏行为。

        警告

        如果指定行为,则为 PII 类型配置的任何现有行为都将被覆盖。

      • 要删除 PII 类型,请选择“垃圾桶”图标( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. )。

      • 要删除包含错误的行,请选择全部删除,然后选择删除所有有错误的行

      • 要删除所有 PII 类型,请选择全部删除,然后选择删除所有行

      • 要搜索行,请在搜索栏中输入表达式。

      • 要仅显示有错误的行,请选择标有全部显示的下拉菜单,然后选择仅显示错误

      • 要配置表格中每页的大小或表格中显示的列,请选择“设置”图标( Gear icon representing settings or configuration options. )。设置您的首选项,然后选择确认

    2. 正则表达式模式部分,使用正则表达式定义护栏要筛选的模式。您有以下选项:

      • 要添加模式,请选择添加正则表达式模式。配置以下字段:

        字段 说明
        Name 模式的名称
        正则表达式模式 定义模式的正则表达式
        Input 选择是阻止包含模式的内容,还是使用标识符将其屏蔽。要不执行任何操作,请选择检测(不执行任何操作)
        Output
        添加描述 (可选)编写模式的描述
      • 要编辑模式,请在操作列中选择与该主题同行的三个点图标。然后选择编辑。完成编辑后,选择确认

      • 要删除一个或多个模式,请选中要删除的模式对应的复选框。选择删除,然后选择删除所选项

      • 要删除所有模式,请选择删除,然后选择全部删除

      • 要搜索模式,请在搜索栏中输入表达式。

      • 要配置表格中每页的大小或表格中显示的列,请选择“设置”图标( Gear icon representing settings or configuration options. )。设置您的首选项,然后选择确认

    3. 配置完敏感信息筛选条件后,选择下一步跳至“查看并创建”

API

要使用敏感信息策略创建护栏,请发送请求。CreateGuardrail请求的格式如下:

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" } }
  • namedescription 字段分别为护栏指定名称和描述。

  • blockedInputMessagingblockedOutputsMessaging 字段中指定护栏成功阻止提示或模型响应时显示的消息。

  • sensitiveInformationPolicyConfig 对象中配置敏感信息策略:

    • 使用 piiEntitiesConfig 数组配置预定义的 PII 实体类型:

      • type 字段中指定 PII 实体类型。有效值包括 ADDRESSEMAILPHONENAMEUS_SOCIAL_SECURITY_NUMBER 等。

      • 指定在 action 字段中检测 PII 时要执行的操作。选择 BLOCK 可阻止内容,选择 ANONYMIZE 可屏蔽内容,或选择 NONE 不执行任何操作但返回检测信息。

      • (可选)使用 inputActioninputEnabledoutputAction、和 outputEnabled 为提示和响应配置不同的行为。

    • 使用 regexesConfig 数组定义要检测的自定义模式:

      • 为正则表达式模式指定 name(1-100 个字符)。

      • 定义用于检测的正则表达式 pattern(1-500 个字符)。

      • 指定检测到模式时要执行的 action。选择 BLOCK 可阻止内容,选择 ANONYMIZE 可屏蔽内容,或选择 NONE 不执行任何操作但返回检测信息。

      • (可选)为正则表达式模式提供 description(1-1000 个字符)。

      • (可选)使用 inputActioninputEnabledoutputAction、和 outputEnabled 为提示和响应配置不同的行为。

  • (可选)向护栏附加任何标签。有关更多信息,请参阅 标记 Amazon Bedrock 资源

  • (可选)为了安全起见,请在 kmsKeyId 字段中包含 KMS 密钥的 ARN。

  • (可选)要启用跨区域推理,请在 crossRegionConfig 对象中指定护栏配置文件。

响应的格式如下:

HTTP/1.1 202 Content-type: application/json { "createdAt": "string", "guardrailArn": "string", "guardrailId": "string", "version": "string" }