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