本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过亚马逊 Bedrock Guardrails 强制执行措施应用跨账户保障
Amazon Bedrock Guardrails 允许您通过AWS Organizations 亚马逊 Bedrock 策略自动对组织中的多个账户实施保障措施。这样就可以通过集中控制和管理对所有账户进行统一保护。此外,此功能还提供了灵活性,可以根据用例要求应用帐户级别和应用程序特定控件。
关键功能
以下是护栏执法的关键能力:
-
Organization-level 强制执行 — 使用 Amazon Bedrock 策略在组织单位 (OU)、个人账户或整个组织中使用 Amazon Bedrock 的所有模型调用设置防护栏。 AWS Organizations
-
Account-level 强制执行 — 在账户内为来自该 AWS 账户的所有亚马逊 Bedrock 模型调用指定特定版本的护栏。
-
分层保护 — 当两者都存在时,将组织和应用程序特定的防护栏结合起来。有效的安全控制将是两个护栏的结合,如果两个护栏的控制措施相同,则优先使用最严格的控制措施。
以下主题介绍如何使用亚马逊 Bedrock Guardrails 强制措施:
实施指南
以下步骤详细介绍了对 AWS 组织内账户和单一账户实施护栏强制执行。 AWS 通过这些强制执行,对 Amazon Bedrock 的所有模型调用都将强制执行指定护栏中配置的保障措施。
Organization-level 执法
本节详细介绍了在组织内设置护栏执法措施。 AWS 设置完成后,您的护栏将自动应用于指定账户或 OU 中的所有 Amazon Bedrock 模型调用。
先决条件
AWS 具有创建护栏和管理策略权限的组织管理员(具有管理 AWS Organizations 帐户访问权限)。
建立组织层面的护栏执法
-
规划您的护栏配置
-
定义您的保障措施:
-
确定您需要哪个过滤器。当前,支持内容过滤器、被拒绝的主题、字词过滤器、敏感信息过滤器、上下文基础检查。
-
重要
请勿包含自动推理策略,因为该策略不支持护栏强制执行,并且会导致运行时故障。
-
确定目标账户:
-
确定哪些业务单位、账户或整个组织将强制执行此护栏
-
-
-
在管理账户中创建护栏
使用以下方法之一在要强制执行的每个区域创建护栏:
-
使用 AWS 管理控制台:
-
使用有权使用亚马逊 Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,在以下位置打开亚马逊 Bedrock 控制台。 https://console.aws.amazon.com/bedrock
-
在左侧导航面板中,选择 Guardrails
-
选择创建护栏
-
按照向导配置所需的过滤器或安全措施(内容过滤器、被拒绝的主题、文字过滤器、敏感信息过滤器、上下文基础检查)
-
不要启用自动推理政策
-
完成巫师来创建你的护栏
-
-
使用 API:使用 CreateGuardrail API
Verify
创建后,您应该在 Guardrails 登录页面的护栏列表中看到它,或者使用护栏名称在护栏列表中进行搜索
-
-
创建护栏版本
创建数字版本以确保护栏配置保持不可变且无法由成员账户修改。
-
使用 AWS 管理控制台:
-
在 Amazon Bedrock 控制台的 Guardrails 页面上选择在上一步中创建的护栏
-
选择创建版本
-
记下护栏 ARN 和版本号(例如,“1”、“2”)
-
-
使用 API:使用 CreateGuardrailVersion API
Verify
查看 Guardrail 详细信息页面上的版本列表,确认版本已成功创建。
-
-
附加基于资源的策略
通过在护栏上附加基于资源的策略来启用跨账户访问。
-
使用 AWS 管理控制台 — 要使用控制台附加基于资源的策略,请执行以下操作:
-
在亚马逊 Bedrock Guardrails 控制台中,选择您的护栏
-
选择 “添加” 以添加基于资源的策略
-
添加向所有成员账户或组织
bedrock:ApplyGuardrail授予权限的政策。请参阅 使用基于资源的策略进行护栏 中的 与您的组织共享护栏。 -
保存政策
-
Verify
使用 ApplyGuardrail API 测试成员账户的访问权限,确保授权配置正确。
-
-
在成员账户中配置 IAM 权限
确保成员账户中的所有角色都拥有访问强制防护栏的 IAM 权限。
所需的权限
成员账户角色需要管理账户护栏的
bedrock:ApplyGuardrail权限。设置使用 Amazon Bedrock 护栏的权限有关详细的 IAM 策略示例,请参阅Verify
确认在成员账户中具有限定权限的角色可以成功使用护栏调用
ApplyGuardrailAPI。 -
在中启用 Amazon Bedrock 策略类型 AWS Organizations
-
使用 AWS 管理控制台 — 要使用控制台启用 Amazon Bedrock 策略类型,请执行以下操作:
-
导航到控制 AWS Organizations 台
-
选择政策
-
选择亚马逊 Bedrock 政策
-
选择 “启用亚马逊 Bedrock 策略” 为您的组织启用 Amazon Bedrock 策略类型
-
-
使用 API — 使用带有策略类型 AWS Organizations EnablePolicyType的 API
BEDROCK_POLICY
Verify
确认 AWS Organizations 控制台中的亚马逊 Bedrock 策略类型显示为已启用。
-
-
创建并附加 AWS Organizations policy
创建指定护栏的管理策略,并将其附加到目标账户或 OU。
-
使用 AWS 管理控制台 — 要使用控制台创建和附加 AWS Organizations 策略,请执行以下操作:
-
在 AWS Organizations 控制台中,导航至政策 > 亚马逊基岩政策
-
选择创建策略
-
指定您的护栏 ARN 和版本
重要
确保您在政策中指定了准确的护栏 ARN。指定不正确或无效的 ARN 将导致违反政策、不执行保障措施以及无法使用 Amazon Bedrock 中的模型进行推断。
-
配置选择性内容保护控件(可选)。
-
Amazon Bedrock API 允许调用者在其输入提示中标记特定内容,以进行护栏评估。
-
选择性内容保护控件允许管理员决定是否遵守 API 调用者做出的标记决定。
-
system和messages控件决定了护栏如何处理系统提示和消息内容。每个都接受以下值之一:-
选择性:仅评估保护内容标签内的内容。如果未指定标签,则行为取决于控件。对于
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"] } } } } } } } -
-
保存政策
-
导航到 “目标” 选项卡并选择 “附加”,将策略附加到所需目标(组织根、OU 或个人帐户)
-
-
使用 API — 使用带有策略类型 AWS Organizations CreatePolicy的 API
BEDROCK_POLICY。用于附AttachPolicy着在目标上
了解更多:中的亚马逊 Bedrock 政策 AWS Organizations
Verify
检查策略是否已连接到 AWS Organizations 控制台中的正确目标。
-
-
测试和验证执法情况
测试是否对成员账户强制执行了护栏。
验证强制执行了哪条护栏
-
使用 AWS 管理控制台 — 从成员账户导航到 Amazon Bedrock 控制台,在左侧导航面板中选择 Guardrails。在 Guardrails 主页上,您应该在管理账户中的Organization-level 执法配置部分下看到组织强制护栏以及成员账户中的Organization-level 强制护栏
-
使用 API — 在成员账户中,DescribeEffectivePolicy使用您的成员账户 ID 作为目标 ID 进行调用
使用会员账号进行测试
-
使用InvokeModel、、 InvokeModelWithResponseStream Converse 或进行亚马逊 Bedrock 推理电话。 ConverseStream
-
强制性护栏应自动应用于输入和输出
-
查看回复以获取护栏评估信息。护栏应对措施将包括强制性护栏信息。
-
Account-level 执法
本节详细介绍了在单个 AWS 账户中设置护栏执法措施。设置完成后,您的护栏将自动应用于您账户中的所有 Amazon Bedrock 模型调用。
先决条件
AWS 拥有创建防护栏和配置账户级别设置的权限的账户管理员。
你需要什么
以下是必填项:
-
具有相应 IAM 权限的 AWS 账户
-
了解您账户的安全要求
设置账户级别的护栏执法
-
规划您的护栏配置
定义您的保障措施
要定义您的保障措施,请执行以下操作:
-
确定您需要哪个过滤器。当前,支持内容过滤器、被拒绝的主题、字词过滤器、敏感信息过滤器、上下文基础检查。
-
重要
请勿包含自动推理策略,因为该策略不支持护栏强制执行,并且会导致运行时故障
-
创建护栏
在你想要强制执行的每个区域创建护栏。
Via AWS 管理控制台
要使用控制台创建护栏,请执行以下操作:
-
使用有权使用亚马逊 Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,在以下位置打开亚马逊 Bedrock 控制台。 https://console.aws.amazon.com/bedrock
-
在左侧导航面板中,选择 Guardrails
-
选择 “创建护栏”
-
按照向导配置所需的策略(内容过滤器、被拒绝的主题、文字过滤器、敏感信息过滤器)
-
不要启用自动推理政策
-
完成巫师来创建你的护栏
通过 API
使用
CreateGuardrailAPIVerify
创建后,您应该在 Guardrails 登录页面的护栏列表中看到它,或者使用护栏名称在护栏列表中进行搜索
-
-
创建护栏版本
创建数字版本以确保护栏配置保持不可变且无法由成员账户修改。
Via AWS 管理控制台
要使用控制台创建护栏版本,请执行以下操作:
-
在 Amazon Bedrock 控制台的 Guardrails 页面上选择在上一步中创建的护栏
-
选择创建版本
-
记下护栏 ARN 和版本号(例如,“1”、“2”)
通过 API
使用
CreateGuardrailVersionAPIVerify
查看 Guardrail 详细信息页面上的版本列表,确认版本已成功创建。
-
-
附加基于资源的策略(可选)
如果您想与账户中的特定角色共享护栏,请附加基于资源的政策。
Via AWS 管理控制台
要使用控制台附加基于资源的策略,请执行以下操作:
-
在亚马逊 Bedrock Guardrails 控制台中,选择您的护栏
-
选择 “添加” 以添加基于资源的策略
-
添加向所需角色授予
bedrock:ApplyGuardrail权限的策略 -
保存政策
-
-
启用账户级执法
将账户配置为使用您的护栏进行所有亚马逊 Bedrock 调用。必须在你想要执法的每个地区都这样做。
Via AWS 管理控制台
要使用控制台启用账户级强制执行,请执行以下操作:
-
导航到亚马逊 Bedrock 控制台
-
在左侧导航面板中选择 Guardrails
-
在 “Account-level 强制配置” 部分下,选择 “添加”
-
选择您的护栏和版本
-
配置选择性内容保护控件(可选)。
-
Amazon Bedrock API 允许调用者在其输入提示中标记特定内容,以进行护栏评估。
-
选择性内容保护控件允许管理员决定是否遵守 API 调用者做出的标记决定。
-
system和messages控件决定了护栏如何处理系统提示和消息内容。每个都接受以下值之一:-
选择性:仅评估保护内容标签内的内容。
-
全面:评估所有内容,无论保护内容标签如何。
-
-
如果未配置,则两个控件均默认为 “全面” 。
-
-
提交配置
-
对要执行的每个地区重复此操作
通过 API
在要强制执行护栏的每个地区使用
PutEnforcedGuardrailConfigurationAPIVerify
您应该在 Guardrails 页面上的 “账户强制护栏配置” 部分下看到账户强制护栏。你可以调用 ListEnforcedGuardrailsConfiguration API 来确保已列出强制护栏
-
-
测试和验证执法情况
使用账号中的角色进行测试
要通过您的账户测试执法情况,请执行以下操作:
-
使用
InvokeModel、、Converse或进行亚马逊 Bedrock 推理电话InvokeModelWithResponseStreamConverseStream -
账户强制保护栏应自动应用于输入和输出
-
查看回复以获取护栏评估信息。护栏应对措施将包括强制性护栏信息。
-
监控
-
使用亚马逊 Bedrock Guardrails 的指标跟踪护栏干预措施和CloudWatch 指标
-
查看
ApplyGuardrailAPI 调用 CloudTrail 日志以监控使用模式,例如指示 IAM 权限配置问题的 AccessDenied 异常。在中查看亚马逊 Bedrock 数据事件 CloudTrail
定价
亚马逊基岩护栏执法遵循亚马逊基岩护栏当前的定价模式,基于每配置的保障措施消耗的文本单元数量。根据其配置的保障措施,对每条强制性护栏收取费用。有关各项保障措施的详细定价信息,请参阅亚马逊基岩定价
常见问题
- 强制性护栏适用时,配额消费如何计算?
-
消耗量将根据与每个请求相关的护栏 ARN 进行计算,并将计入发出 API 调 AWS 用的账户。例如:一个包含 1000 个字符的文本和 3 个护栏的
ApplyGuardrail呼叫将为护栏中的每个护栏生成 3 个文本消耗单位。使用亚马逊 Bedrock 政策的成员账户调用将计入该成员账户的服务配额。查看服务配额控制台或服务配额文档,并确保您的 Guardrails 运行时限制足以满足您的通话量。
- 如果我的申请中既有组织级别的强制护栏又有账户级别的强制护栏以及护栏,会发生什么?
-
所有 3 个护栏将在运行时强制执行。最终效果是所有护栏的结合,最严格的控制优先。
- 我应该在何时使用选择性或全面的防护控制?
-
当您信任来电者标记正确的内容并希望减少不必要的护栏处理时,请使用 Selective。当来电者混合处理预先验证的内容和用户生成的内容,并且只需要在特定部分设置护栏时,这很有用。当你想在所有物体上设置护栏时,无论来电者标记什么,都要使用 “全面”。当你不想依赖呼叫者来正确识别敏感内容时,这是更安全的默认设置。
- 如何将某些模式纳入或排除在执法范围之外?
-
使用模型执法控制来确定护栏适用于 Amazon Bedrock 上的哪些模型进行推断。如果未配置,则默认情况下,强制执行适用于亚马逊 Bedrock 上的所有型号。此控件接受以下列表:
-
包括的模型:用于强制开启护栏的模型。接受特定的模型标识符或关键字
ALL以明确包含所有模型。如果为空,则执法适用于所有型号。 -
排除的模型:排除在护栏执法范围之外的模型。如果为空,则不排除任何模型。
如果模型出现在两个列表中,则将其排除在外。
-
- 我应该在何时使用包含模型和排除模型?
-
-
当您只想在特定型号上强制使用护栏时,请使用随附模型。
-
当您想要广泛执行但需要为特定模型规定例外情况时,请使用排除模型。
-
- 我可以删除在执法配置中使用的护栏吗?
-
没有。默认情况下,该 DeleteGuardrail API 会阻止删除与账户级或组织级执法配置相关的护栏。