View a markdown version of this page

通过 Amazon Bedrock Guardrails 强制措施实施跨账户保护措施 - Amazon Bedrock

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

通过 Amazon Bedrock Guardrails 强制措施实施跨账户保护措施

Amazon Bedrock Guardrails 允许您通过AWS Organizations 亚马逊 Bedrock 政策自动对组织中的多个账户应用安全措施。这样,通过集中控制和管理,可以对所有账户进行统一保护。此外,此功能还允许根据用例要求灵活地应用账户级别和特定于应用程序的控制措施。

关键功能

以下是护栏执法的关键功能:

  • Organization-level 强制执行 — 使用 Amazon Bedrock 政策,在组织单位 (OU)、个人账户或整个组织中使用 Amazon Bedrock 进行的所有模型调用都设置防护栏。 AWS Organizations

  • Account-level 强制执行 — 为 AWS 账户中的所有 Amazon Bedrock 模型调用指定一个特定版本的护栏。

  • 分层保护 — 当组织和应用程序特定的护栏都存在时,将两者结合起来。有效的安全控制将是两个护栏的结合,如果两个护栏的控制相同,则优先考虑最严格的控制措施。

以下主题描述了如何使用 Amazon Bedrock Guardrails 强制措施:

实施指南

以下步骤详细介绍了如何对 AWS 组织内的账户和单个账户实施护栏强制措施。 AWS 通过这些强制措施,对 Amazon Bedrock 的所有模型调用都将强制执行在指定护栏内配置的保护措施。

Organization-level 执法

本节详细介绍了在整个组织中设置护栏强制措施。 AWS 设置完成后,您将拥有一个自动应用于指定账户或 OU 中的所有 Amazon Bedrock 模型调用的防护栏。

先决条件

AWS 有权创建护栏和管理策略的组织管理员(具有管理 AWS Organizations 帐户访问权限)。

你需要什么

以下是必需的:

设置组织级别的护栏执法机构
  1. 规划您的护栏配置
    1. 定义您的安全措施:

      • 在 A mazon Bedro ck Guardrails 文档中查看可用的护栏过滤器

      • 确定您需要哪种过滤器。当前,支持内容过滤器、拒绝的主题、单词过滤器、敏感信息过滤器、上下文基础检查。

      • 重要

        请勿包含自动推理策略,因为护栏强制执行不支持自动推理策略,并且会导致运行时故障。

    2. 确定目标客户:

      • 确定哪些 OU、账户或您的整个组织将强制执行此防护措施

  2. 在管理账户中创建您的护栏

    使用以下方法之一在要强制执行的每个区域创建护栏:

    • 使用 AWS 管理控制台:

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

      2. 在左侧导航面板中,选择 Guardrails

      3. 选择 “创建护栏

      4. 按照向导配置所需的过滤器或安全措施(内容过滤器、拒绝的主题、字词过滤器、敏感信息过滤器、上下文基础检查)

      5. 不要启用自动推理策略

      6. 完成向导以创建您的护栏

    • 使用 API:使用 CreateGuardrailAPI

    Verify

    创建后,您应该在 Guardrails 登录页面的护栏列表中看到它,或者使用护栏名称在护栏列表中进行搜索

  3. 创建护栏版本

    创建数字版本以确保护栏配置保持不可变且成员账户无法修改。

    • 使用 AWS 管理控制台:

      1. 在 Amazon Bedrock 控制台的护栏页面中选择在上一步中创建的护栏

      2. 选择 “创建版本

      3. 记下护栏 ARN 和版本号(例如,“1”、“2”)

    • 使用 API:使用 CreateGuardrailVersionAPI

    Verify

    查看 Guardrail 详情页面上的版本列表,确认版本已成功创建。

  4. 附加基于资源的策略

    通过在护栏上附加基于资源的策略来启用跨账户访问。

    • 使用 AWS 管理控制台 — 要使用控制台附加基于资源的策略,请执行以下操作:

      1. 在 Amazon Bedrock Guardrails 控制台中,选择您的护栏

      2. 选择 “添加” 以添加基于资源的策略

      3. 添加向所有成员账户或组织授予bedrock:ApplyGuardrail权限的策略。请参阅 使用基于资源的策略进行护栏 中的 与您的组织共享护栏

      4. 保存政策

    Verify

    使用 ApplyGuardrailAPI 测试来自成员账户的访问权限,以确保授权配置正确。

  5. 在成员账户中配置 IAM 权限

    确保成员账户中的所有角色都具有 IAM 访问强制防护栏的权限。

    所需的权限

    成员账户角色需要bedrock:ApplyGuardrail获得管理账户护栏的权限。设置使用 Amazon Bedrock 护栏的权限有关详细的 IAM 策略示例,请参阅

    Verify

    确认在成员账户中拥有范围缩小权限的角色可以成功调用带护栏ApplyGuardrail的 API。

  6. 启用 Amazon Bedrock 政策键入 AWS Organizations
    • 使用 AWS 管理控制台 — 要使用控制台启用 Amazon Bedrock 策略类型,请执行以下操作:

      1. 导航到控制 AWS Organizations 台

      2. 选择政策

      3. 选择 Amazon Bedrock 政策

      4. 选择 “启用 Amazon Bedrock 策略”,为您的组织启用 Amazon Bedrock 策略类型

    • 使用 API — 使用具有策略类型 AWS Organizations EnablePolicyType的 API BEDROCK_POLICY

    Verify

    确认 AWS Organizations 控制台中将 Amazon Bedrock 策略类型显示为已启用。

  7. 创建并附上 AWS Organizations policy

    创建管理策略来指定您的护栏,并将其附加到您的目标账户或 OU。

    • 使用 AWS 管理控制台 — 要使用控制台创建和附加 AWS Organizations 策略,请执行以下操作:

      1. 在 AWS Organizations 控制台中,导航到政策 > Amazon Bedrock 政策

      2. 选择创建策略

      3. 指定您的护栏 ARN 和版本

        重要

        确保您在策略中指定了准确的护栏 ARN。指定错误或无效的 ARN 将导致违反政策、无法执行保障措施以及无法使用 Amazon Bedrock 中的模型进行推断。

      4. 配置选择性内容保护控件(可选)。

        • Amazon Bedrock API 允许呼叫者在其输入提示中标记特定内容以进行护栏评估。

        • 选择性内容保护控制允许管理员决定是否遵守 API 调用者做出的标记决定。

        • systemmessages控件决定了护栏如何处理系统提示和消息内容。每个都接受以下值之一:

          • 选择性:仅评估防护内容标签内的内容。如果未指定标签,则行为取决于控件。对于system,不评估任何内容,对于messages,对所有内容进行评估。

          • 全面:评估所有内容,无论保护内容标签如何。

        • 如果未配置,则两个控件均默认为 “综合”。

        { "bedrock": { "guardrail_inference": { "us-east-1": { "config_1": { "identifier": { "@@assign": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" }, "selective_content_guarding": { "system": { "@@assign": "selective" }, "messages": { "@@assign": "comprehensive" } }, "model_enforcement": { "included_models": { "@@assign": ["ALL"] }, "excluded_models": { "@@assign": ["amazon.titan-embed-text-v2:0", "cohere.embed-english-v3"] } } } } } } }
      5. 保存政策

      6. 导航到 “目标” 选项卡并选择 “附加”,将策略附加到所需的目标(组织根账户、OU 账户或个人账户)

    • 使用 API-使用具有策略类型 AWS Organizations CreatePolicy的 API BEDROCK_POLICY。用于附AttachPolicy着在目标上

    了解更多:Amazon Bedrock 政策请见 AWS Organizations

    Verify

    在 AWS Organizations 控制台中检查策略是否已附加到正确的目标。

  8. 测试和验证执法情况

    测试是否对成员账户实施了护栏。

    验证哪个护栏是强制使用的
    • 使用 AWS 管理控制台 — 来自成员账户,导航至 Amazon Bedrock 控制台,在左侧导航面板中选择 Guardrails。在 Guardrails 主页上,您应该在管理账户的 “强制配置” 部分下看到组织Organization-level 强制设置的护栏以及成员账户中的Organization-level 强制护栏

    • 使用 API — 从成员账户,DescribeEffectivePolicy使用您的成员账户 ID 作为目标 ID 进行呼叫

    使用成员账号进行测试
    1. 使用InvokeModel、、InvokeModelWithResponseStreamCon verse 或进行 Amazon Bedrock 推理调用。ConverseStream

    2. 强制性护栏应自动应用于输入和输出

    3. 查看回复以获取护栏评估信息。护栏应对措施将包括强制性的护栏信息。

Account-level 执法

本节详细介绍了在单个 AWS 账户中设置护栏强制措施。设置完成后,您将拥有一个自动适用于您账户中所有 Amazon Bedrock 模型调用的防护栏。

先决条件

AWS 拥有创建防护栏和配置账户级别设置权限的账户管理员。

你需要什么

以下是必需的:

  • 具有相应 IAM 权限的 AWS 账户

  • 了解您账户的安全要求

设置账户级别的护栏强制执行
  1. 规划您的护栏配置
    定义您的安全措施

    要定义您的安全措施,请执行以下操作:

    • 在 A mazon Bedro ck Guardrails 文档中查看可用的护栏过滤器

    • 确定您需要哪种过滤器。当前,支持内容过滤器、拒绝的主题、单词过滤器、敏感信息过滤器、上下文基础检查。

    • 重要

      请勿包含自动推理策略,因为护栏强制执行不支持自动推理策略,并且会导致运行时故障

  2. 创建护栏

    在要强制执行的每个区域创建护栏。

    Via AWS 管理控制台

    要使用控制台创建护栏,请执行以下操作:

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

    2. 在左侧导航面板中,选择 Guardrails

    3. 选择 “创建护栏

    4. 按照向导配置所需的策略(内容过滤器、拒绝的主题、字词过滤器、敏感信息过滤器)

    5. 不要启用自动推理策略

    6. 完成向导以创建您的护栏

    通过 API

    使用 CreateGuardrail API

    Verify

    创建后,您应该在 Guardrails 登录页面的护栏列表中看到它,或者使用护栏名称在护栏列表中进行搜索

  3. 创建护栏版本

    创建数字版本以确保护栏配置保持不可变且成员账户无法修改。

    Via AWS 管理控制台

    要使用控制台创建护栏版本,请执行以下操作:

    1. 在 Amazon Bedrock 控制台的护栏页面中选择在上一步中创建的护栏

    2. 选择 “创建版本

    3. 记下护栏 ARN 和版本号(例如,“1”、“2”)

    通过 API

    使用 CreateGuardrailVersion API

    Verify

    查看 Guardrail 详情页面上的版本列表,确认版本已成功创建。

  4. 附加基于资源的策略(可选)

    如果您想与账户中的特定角色共享护栏,请附上基于资源的政策。

    Via AWS 管理控制台

    要使用控制台附加基于资源的策略,请执行以下操作:

    1. 在 Amazon Bedrock Guardrails 控制台中,选择您的护栏

    2. 选择 “添加” 以添加基于资源的策略

    3. 添加向所需角色授予bedrock:ApplyGuardrail权限的策略

    4. 保存政策

  5. 启用账户级强制执行

    将账户配置为使用您的护栏进行所有 Amazon Bedrock 调用。在你想要执法的每个地区都必须这样做。

    Via AWS 管理控制台

    要使用控制台启用账户级别的强制执行,请执行以下操作:

    1. 导航到 Amazon Bedrock 控制台

    2. 在左侧导航面板中选择 Guardrails

    3. 在 “Account-level 强制配置” 部分下,选择 “添加

    4. 选择您的护栏和版本

    5. 配置选择性内容保护控件(可选)。

      • Amazon Bedrock API 允许呼叫者在其输入提示中标记特定内容以进行护栏评估。

      • 选择性内容保护控制允许管理员决定是否遵守 API 调用者做出的标记决定。

      • systemmessages控件决定了护栏如何处理系统提示和消息内容。每个都接受以下值之一:

        • 选择性:仅评估防护内容标签内的内容。

        • 全面:评估所有内容,无论保护内容标签如何。

      • 如果未配置,则两个控件均默认为 “综合”。

    6. 提交配置

    7. 对要强制执行的每个区域重复此操作

    通过 API

    在你想强制执行护栏的每个区域使用 PutEnforcedGuardrailConfiguration API

    Verify

    您应该在 Guardrails 页面的 “账户强制护栏配置” 部分下看到账户强制护栏。您可以调用 ListEnforcedGuardrailsConfigurationAPI 来确保已列出强制护栏

  6. 测试和验证执法情况
    使用账户中的角色进行测试

    要测试账户的强制执行情况,请执行以下操作:

    1. 使用InvokeModelConverse、或进行 Amazon Bedrock 推理调用 InvokeModelWithResponseStream ConverseStream

    2. 由账户强制执行的护栏应自动适用于输入和输出

    3. 查看回复以获取护栏评估信息。护栏应对措施将包括强制性的护栏信息。

监控

定价

Amazon Bedrock Guardrails 的执法遵循亚马逊 Bedrock Guardrails 的当前定价模式,基于每个配置的防护措施消耗的文本单元数量。根据其配置的防护措施,对每条强制护栏收取费用。有关各项保障措施的详细定价信息,请参阅 Amazon Bedrock 定价

常见问题

适用强制性护栏时,如何计算配额消耗?

消耗量将按与每个请求关联的护栏 ARN 进行计算,并将计入发出 API 调用的 AWS 账户。例如:一个包含 1000 个字符的文本和 3 个护栏的ApplyGuardrail通话将为护栏中的每个防护装置生成每个护栏的 3 个文本消耗单位。

使用 Amazon Bedrock 政策的会员账户通话将计入该成员账户的服务配额。查看 Service Quotas 控制台或服务配额文档,并确保您的 Guardrails 运行时限制足以满足您的呼叫量。

如果我的申请中既有组织级和账户级的强制护栏又有护栏,会发生什么?

所有 3 个护栏都将在运行时强制执行。最终效果是所有护栏的结合,最严格的控制措施优先。

我什么时候应该使用选择性或全面的防御控制?

当您信任来电者会标记正确的内容并希望减少不必要的护栏处理时,请使用 “选择”。当呼叫者同时处理预先验证的内容和用户生成的内容,并且只需要在特定部分安装护栏时,这很有用。无论来电者标记了什么,都要对所有内容强制使用防护栏时,请使用 “综合”。当您不想依靠来电者来正确识别敏感内容时,这是更安全的默认设置。

如何将某些模型纳入或排除在执法范围之外?

使用模型强制控制来确定护栏适用于 Amazon Bedrock 上哪些模型以进行推断。如果未配置,则默认情况下,强制措施将适用于 Amazon Bedrock 上的所有型号。此控件接受以下列表:

  • 包括的型号:用于强制安装护栏的型号。接受特定的模型标识符或关键字ALL以明确包含所有模型。如果为空,则强制执行适用于所有型号。

  • 排除的型号:不在护栏执法范围内的型号。如果为空,则不排除任何模型。

如果模型出现在两个列表中,则将其排除在外。

我应该何时使用包含与排除模型?
  • 当您只想在特定型号上使用护栏时,请使用包含型号

  • 当您想要广泛执行但需要为特定模型划定例外情况时,请使用排除模型。

我可以删除强制配置中使用的护栏吗?

不是。 默认情况下,DeleteGuardrailAPI 会阻止删除与账户级或组织级强制配置相关的护栏。