

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

# 通过 Amazon Bedrock Guardrails 强制措施实施跨账户保护措施
<a name="guardrails-enforcements"></a>

**注意**  
Amazon Bedrock Guardrails 执法措施处于预览阶段，可能会发生变化。

Amazon Bedrock Guardrails 强制措施使您能够自动在 AWS 账户级别和某个级别（跨账户）对使用 Amazon Bedrock 进行的所有模型调用应用安全控制。 AWS Organizations 这种集中式方法可为多个账户和应用程序提供一致的保护，无需为单个账户和应用程序配置防护栏。

**关键功能**

以下是护栏执法的关键功能：
+ **组织级强制执行** — 使用 Amazon Bedrock 政策（预览版），在组织单位 (OUs)、个人账户或整个组织中使用 Amazon Bedrock 进行的所有模型调用都设置防护栏（预览版）。 AWS Organizations
+ **账户级强制执行** — 为账户中的所有 Amazon Bedrock 模型调 AWS 用指定一个特定版本的护栏。
+ **分层保护** — 当组织和应用程序特定的护栏都存在时，将两者结合起来。有效的安全控制将是两个护栏的结合，如果两个护栏的控制相同，则优先考虑最严格的控制措施。

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

**Topics**
+ [实施指南](#guardrails-enforcements-implementation-guide)
+ [监控](#monitoring)
+ [定价](#pricing)
+ [常见问题](#faq)

## 实施指南
<a name="guardrails-enforcements-implementation-guide"></a>

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

### 教程：组织层面的执法
<a name="organization-level-enforcement"></a>

本教程将引导您完成在整个组织中设置护栏强制措施。 AWS 最后，您将拥有一个护栏，该护栏会自动应用于指定账户中的所有 Amazon Bedrock 模型调用，或者。 OUs

**谁应该学习本教程**  
AWS 有权创建护栏和管理策略的组织管理员（具有管理 AWS Organizations 帐户访问权限）。

**你需要什么**

完成本教程需要以下内容：
+ 具有管理账户访问权限的[AWS 组织](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
+ [创建护栏和管理策略的 [IAM 权限](guardrails-permissions.md#guardrails-permissions-use)AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions_overview.html)
+ 了解贵组织的安全要求<a name="org-level-enforcement-steps"></a>

**设置组织级别的护栏执法机构**

1. <a name="plan-guardrail-config"></a>

**规划您的护栏配置**

   1. 定义您的安全措施：
      + 在 A [mazon Bedro](guardrails.md) ck Guardrails 文档中查看可用的护栏过滤器
      + 确定您需要哪种过滤器。当前，支持内容过滤器、拒绝的主题、单词过滤器、敏感信息过滤器、上下文基础检查。
      + **注意：**请勿包含自动推理策略，因为护栏强制执行不支持自动推理策略，并且会导致运行时故障。

   1. 确定目标客户：
      + 确定哪些账户 OUs、哪些账户或您的整个组织将强制执行此防护措施

1. <a name="create-guardrail-mgmt-account"></a>

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

   使用以下方法之一在要强制执行的每个区域创建护栏：
   + 使用 AWS 管理控制台：

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

     1. 在左侧导航面板中，选择 **Guardrails**

     1. 选择**创建护栏**

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

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

     1. 完成向导以创建您的护栏
   + 使用 API：使用 [CreateGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateGuardrail.html)API

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

1. <a name="create-guardrail-version"></a>

**创建护栏版本**

   创建数字版本以确保护栏配置保持不可变且成员账户无法修改。
   + 使用 AWS 管理控制台：

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

     1. 选择 “**创建版本**”

     1. 记下护栏 ARN 和版本号（例如，“1”、“2” 等）
   + 使用 API：使用 [CreateGuardrailVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateGuardrailVersion.html)API

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

1. <a name="attach-resource-policy"></a>

**附上基于资源的策略**

   通过在护栏上附加基于资源的策略来启用跨账户访问。
   + 使用 AWS 管理控制台 — 要使用控制台附加基于资源的策略，请执行以下操作：

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

     1. 单击 “**添加**” 以添加基于资源的策略

     1. 添加向所有成员账户或组织授予`bedrock:ApplyGuardrail`权限的策略。请参阅 [使用基于资源的策略进行护栏](guardrails-resource-based-policies.md) 中的 [与您的组织共享护栏](guardrails-resource-based-policies.md#share-guardrail-with-organization)。

     1. 保存政策

**Verify**  
使用 [ApplyGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ApplyGuardrail.html)API 测试来自成员账户的访问权限，以确保授权配置正确。

1. <a name="configure-iam-permissions"></a>

**在成员账户中配置 IAM 权限**

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

**所需的权限**  
成员账户角色需要`bedrock:ApplyGuardrail`获得管理账户护栏的权限。[设置使用 Amazon Bedrock 护栏的权限](guardrails-permissions.md)有关详细的 IAM 策略示例，请参阅

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

1. <a name="enable-bedrock-policy-type"></a>

**启用 Amazon Bedrock 政策键入 AWS Organizations**
   + 使用 AWS 管理控制台 — 要使用控制台启用 Amazon Bedrock 策略类型，请执行以下操作：

     1. 导航到控制 AWS Organizations 台

     1. 选择**政策**

     1. 选择 **Amazon Bedrock 政策**（目前为预览版）

     1. 选择 “**启用 Amazon Bedrock 策略**”，为您的组织启用 Amazon Bedrock 策略类型
   + 使用 API — 使用具有策略类型 AWS Organizations [EnablePolicyType](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnablePolicyType.html)的 API `BEDROCK_POLICY`

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

1. <a name="create-attach-organizations-policy"></a>

**创建并附加 AWS Organizations 策略**

   创建管理策略来指定您的护栏并将其附加到您的目标账户或. OUs 
   + 使用 AWS 管理控制台 — 要使用控制台创建和附加 AWS Organizations 策略，请执行以下操作：

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

     1. 选择**创建策略**

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

     1. 配置`input_tags`设置（设置为忽略以防止成员账户通过护栏输入标签绕过输入上的[护栏](guardrails-tagging.md)）。

        ```
        {
            "bedrock": {
                "guardrail_inference": {
                    "us-east-1": {
                        "config_1": {
                            "identifier": {
                                "@@assign": "arn:aws:bedrock:us-east-1:account_id:guardrail/guardrail_id:1"
                            },
                            "input_tags": {
                                "@@assign": "honor"
                            }
                        }
                    }
                }
            }
        }
        ```

     1. 保存政策

     1. **导航到 “目标” 选项卡并选择 “附加” OUs，即可将策略附加到所需的**目标**（组织根账户或个人账户）**
   + 使用 API-使用具有策略类型 AWS Organizations [CreatePolicy](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreatePolicy.html)的 API `BEDROCK_POLICY`。用于附[AttachPolicy](https://docs.aws.amazon.com/organizations/latest/APIReference/API_AttachPolicy.html)着在目标上

   了解更多：[Amazon Bedrock 政策 AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_bedrock.html)

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

1. <a name="test-verify-org-enforcement"></a>

**测试和验证执法情况**

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

**验证哪个护栏是强制使用的**
   + 使用 AWS 管理控制台 — 从成员账户，导航到 Amazon Bedrock 控制台，点击左侧面板中的 **Guardrails**。在 Guardrails 主页上，您应该在管理账户的 “组织级强制**配置” 和 “成员账户中的组织级强制**护栏” 部分下看到**组织**强制实施的护栏
   + 使用 API — 从成员账户，[DescribeEffectivePolicy](https://docs.aws.amazon.com/organizations/latest/APIReference/API_DescribeEffectivePolicy.html)使用您的成员账户 ID 作为目标 ID 进行呼叫

**使用成员账号进行测试**

   1. 使用[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)、、[InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)Con [verse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 或进行 Amazon Bedrock 推理调用。[ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html)

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

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

### 教程：账户级强制执行
<a name="account-level-enforcement"></a>

本教程将引导您完成在单个 AWS 账户中设置护栏强制措施。最后，您将拥有一个自动适用于您账户中所有 Amazon Bedrock 模型调用的防护栏。

**谁应该学习本教程**  
AWS 拥有创建防护栏和配置账户级别设置权限的账户管理员。

**你需要什么**  
完成本教程需要以下内容：
+ 具有相应 IAM 权限的 AWS 账户
+ 了解您账户的安全要求<a name="account-level-enforcement-steps"></a>

**设置账户级别的护栏强制执行**

1. <a name="plan-account-guardrail-config"></a>

**规划您的护栏配置**

**定义您的安全措施**  
要定义您的安全措施，请执行以下操作：
   + 在 A [mazon Bedro](guardrails.md) ck Guardrails 文档中查看可用的护栏过滤器
   + 确定您需要哪种过滤器。当前，支持内容过滤器、拒绝的主题、单词过滤器、敏感信息过滤器、上下文基础检查。
   + **注意：**请勿包含自动推理策略，因为护栏强制执行不支持自动推理策略，并且会导致运行时故障

1. <a name="create-account-guardrail"></a>

**创建护栏**

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

**Via AWS 管理控制台**  
要使用控制台创建护栏，请执行以下操作：

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

   1. 在左侧导航面板中，选择 **Guardrails**

   1. 选择**创建护栏**

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

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

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

**通过 API**  
使用 `CreateGuardrail` API

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

1. <a name="create-account-guardrail-version"></a>

**创建护栏版本**

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

**Via AWS 管理控制台**  
要使用控制台创建护栏版本，请执行以下操作：

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

   1. 选择 “**创建版本**”

   1. 记下护栏 ARN 和版本号（例如，“1”、“2” 等）

**通过 API**  
使用 `CreateGuardrailVersion` API

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

1. <a name="attach-account-resource-policy"></a>

**附加基于资源的策略（可选）**

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

**Via AWS 管理控制台**  
要使用控制台附加基于资源的策略，请执行以下操作：

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

   1. 单击 “**添加**” 以添加基于资源的策略

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

   1. 保存政策

1. <a name="enable-account-enforcement"></a>

**启用账户级强制执行**

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

**Via AWS 管理控制台**  
要使用控制台启用账户级别的强制执行，请执行以下操作：

   1. 导航到 Amazon Bedrock 控制台

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

   1. **在 “**账户级强制配置**” 部分下，选择添加**

   1. 选择您的护栏和版本

   1. 配置`input_tags`设置（设置为 IGNORE 以防止成员账户通过 Guardrails 输入标签绕过输入的护栏）

   1. 提交配置

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

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

**Verify**  
您应该在 Guardrails 页面的 “**账户强制护栏配置” 部分下看到账户强制护栏**。您可以调用 [ListEnforcedGuardrailsConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListEnforcedGuardrailsConfiguration.html)API 来确保已列出强制护栏

1. <a name="test-verify-account-enforcement"></a>

**测试和验证执法情况**

**使用账户中的角色进行测试**  
要测试账户的强制执行情况，请执行以下操作：

   1. 使用`InvokeModel`、`Converse`、或进行 Amazon Bedrock 推理调用 `InvokeModelWithResponseStream` `ConverseStream`

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

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

## 监控
<a name="monitoring"></a>
+ 使用 [Amazon Bedrock Guardrails 的指标跟踪护栏干预措施和CloudWatch 指标](monitoring-guardrails-cw-metrics.md)
+ 查看 `ApplyGuardrail` API 调用 CloudTrail 日志，监控使用模式，例如指示 IAM 权限配置问题的 AccessDenied 异常。在中查看 [Amazon Bedrock 数据事件 CloudTrail](logging-using-cloudtrail.md#service-name-data-events-cloudtrail)

## 定价
<a name="pricing"></a>

Amazon Bedrock Guardrails 的执法遵循亚马逊 Bedrock Guardrails 的当前定价模式，该模式基于每个配置的防护措施消耗的文本单元数量。根据其配置的防护措施，对每条强制护栏收取费用。有关各项保障措施的详细定价信息，请参阅 [Amazon Bedrock 定价](https://aws.amazon.com/bedrock/pricing/)。

## 常见问题
<a name="faq"></a>

**适用强制性护栏时，如何计算配额消耗？**  
消耗量将按与每个请求关联的护栏 ARN 进行计算，并将计入发出 API 调用的 AWS 账户。例如：一个包含 1000 个字符的文本和 3 个护栏的`ApplyGuardrail`通话将为护栏中的每个防护装置生成每个护栏的 3 个文本消耗单位。  
使用 Amazon Bedrock 政策的会员账户通话将计入该成员账户的服务配额。查看 Service Quotas 控制台或 S [ervice Quotas 文档](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)，并确保您的 Guardrails 运行时限制足以满足您的呼叫量。

**如何使用输入标签防止成员账号绕过护栏？**  
使用以下版本中提供的`input_tags`控件：  
+ 亚马逊 Bedrock 政策 AWS Organizations 
+ [PutEnforcedGuardrailConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PutEnforcedGuardrailConfiguration.html) API
将该值设置为 ignore，以防止成员账户标记部分内容。

**如果我的申请中既有组织级和账户级的强制护栏又有护栏，会发生什么？**  
所有 3 个护栏都将在运行时强制执行。最终效果是所有护栏的结合，最严格的控制措施优先。

**不支持护栏的型号会怎样？**  
对于不支持 Guardrails 的模型（例如嵌入模型），将引发运行时验证错误。

**我能否删除强制配置中使用的护栏？**  
不是。 默认情况下，[DeleteGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteGuardrail.html)API 会阻止删除与账户级或组织级强制配置相关的护栏。