

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon Bedrock Guardrails 強制執行套用跨帳戶防護
<a name="guardrails-enforcements"></a>

Amazon Bedrock Guardrails 可讓您透過 [AWS Organizations Amazon Bedrock 政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_bedrock.html)，在組織中的多個帳戶之間自動套用保護措施。這可透過集中式控制和管理，在所有帳戶中實現統一的保護。此外，此功能還提供靈活性，可根據使用案例需求套用帳戶層級和應用程式特定的控制項。

**關鍵功能**

以下是護欄強制執行的主要功能：
+ **組織層級強制執行** – 使用 Amazon Bedrock 政策，跨組織單位 (OUs)、個別帳戶或整個組織套用 Amazon Bedrock 的所有模型調用護欄 AWS Organizations。
+ **帳戶層級強制執行** – 為帳戶內所有來自該 AWS 帳戶的 Amazon Bedrock 模型調用指定特定版本的護欄。
+ **分層保護** – 當兩者都存在時，結合組織和應用程式特定的護欄。有效的安全控制將是兩個護欄的聯集，其中最嚴格的控制優先於兩個護欄的相同控制。

下列主題說明如何使用 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 組織中設定護欄強制執行。設定完成後，您將有一個護欄，自動套用到指定帳戶或 OUs 的所有 Amazon Bedrock 模型調用。

**先決條件**  
AWS 具有建立護欄和管理 AWS Organizations 政策許可的組織管理員 （具有管理帳戶存取權）。

**您需要什麼**

以下是必要項目：
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) 具有管理帳戶存取權
+ 建立護欄[和管理 AWS Organizations 政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions_overview.html)的 [IAM 許可](guardrails-permissions.md#guardrails-permissions-use) 
+ 了解組織的安全需求<a name="org-level-enforcement-steps"></a>

**設定組織層級護欄強制執行**

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

**規劃您的護欄組態**

   1. 定義您的防護：
      + 檢閱 [Amazon Bedrock Guardrails 文件中可用的護](guardrails.md)欄篩選條件
      + 識別您需要的篩選條件。目前，支援內容篩選條件、拒絕的主題、字詞篩選條件、敏感資訊篩選條件、內容基礎檢查。
      + 
**重要**  
請勿包含自動推理政策，因為它不支援護欄強制執行，並會導致執行時間失敗。

   1. 識別目標帳戶：
      + 決定要強制執行此護欄OUs、帳戶或整個組織

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

**在管理帳戶中建立護欄**

   在您想要使用下列其中一種方法強制執行護欄的每個區域中建立護欄：
   + 使用 AWS 管理主控台：

     1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

     1. 在左側導覽面板中，選擇**護欄**

     1. 選擇**建立護欄**

     1. 遵循精靈來設定所需的篩選條件或防護措施 （內容篩選條件、拒絕主題、單字篩選條件、敏感資訊篩選條件、內容基礎檢查）

     1. 請勿啟用自動推理政策

     1. 完成精靈以建立護欄
   + 使用 API：使用 [CreateGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateGuardrail.html) API

**確認**  
建立後，您應該會在護欄登陸頁面上的護欄清單中看到它，或使用護欄名稱在護欄清單中搜尋它

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

**確認**  
檢查 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. 儲存政策

**確認**  
使用 [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`許可。如需詳細的 IAM 政策範例[設定使用 Amazon Bedrock 防護機制的許可](guardrails-permissions.md)，請參閱

**確認**  
確認成員帳戶中具有縮小範圍許可的角色可以使用護欄成功呼叫 `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`

**確認**  
確認 Amazon Bedrock 政策類型在 AWS Organizations 主控台中顯示為已啟用。

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

**建立和連接 AWS Organizations 政策**

   建立指定護欄的管理政策，並將其連接到您的目標帳戶或 OUs。
   + 使用 AWS 管理主控台 – 使用主控台建立和連接 AWS Organizations 政策：

     1. 在 AWS Organizations 主控台中，導覽至**政策** > **Amazon Bedrock 政策**

     1. 選擇 **Create policy (建立政策)**

     1. 指定您的護欄 ARN 和版本
**重要**  
請確定您在政策中指定正確的護欄 ARN。指定不正確或無效的 ARN 會導致政策違規、未強制執行保護措施，以及無法在 Amazon Bedrock 中使用模型進行推論。

     1. 設定選擇性內容保護控制 （選用）。
        + Amazon Bedrock APIs發起人在其[輸入提示中標記特定內容](guardrails-tagging.md)以進行護欄評估。
        + 選擇性內容保護控制可讓管理員決定是否遵守 API 呼叫者所做的標記決策。
        + `system` 和 `messages`控制項會決定護欄如何處理系統提示和訊息內容。每個 接受下列其中一個值：
          + **Selective**：僅評估防護內容標籤中的內容。未指定標籤時，行為取決於控制項。對於 `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"]
                                }
                            }
                        }
                    }
                }
            }
        }
        ```

     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)

**確認**  
檢查政策是否連接到 AWS Organizations 主控台中的正確目標。

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

**測試和驗證強制執行**

   測試成員帳戶是否強制執行護欄。

**驗證強制執行的護欄**
   + 使用 AWS 管理主控台 – 從成員帳戶導覽至 Amazon Bedrock 主控台，在左側導覽面板中選擇**護欄**。在護欄首頁上，您應該會在管理帳戶中的組織**層級強制執行組態**和成員帳戶中的組織**層級強制執行護欄區段下看到組織強制執行的護欄** 
   + 使用 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)、[Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 或 [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html) 進行 Amazon Bedrock 推論呼叫。

   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>

**規劃您的護欄組態**

**定義您的防護措施**  
若要定義您的保護措施：
   + 檢閱 [Amazon Bedrock Guardrails 文件中可用的護](guardrails.md)欄篩選條件
   + 識別您需要的篩選條件。目前，支援內容篩選條件、拒絕的主題、字詞篩選條件、敏感資訊篩選條件、內容基礎檢查。
   + 
**重要**  
請勿包含自動推理政策，因為它不支援護欄強制執行，並會導致執行時間失敗

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

**建立防護機制**

   在您要強制執行護欄的每個區域中建立護欄。

**透過 AWS 管理主控台**  
若要使用主控台建立護欄：

   1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

   1. 在左側導覽面板中，選擇**護欄**

   1. 選擇**建立護欄**

   1. 遵循精靈來設定所需的政策 （內容篩選條件、拒絕主題、單字篩選條件、敏感資訊篩選條件）

   1. 請勿啟用自動推理政策

   1. 完成精靈以建立護欄

**透過 API**  
使用 `CreateGuardrail` API

**確認**  
建立後，您應該會在護欄登陸頁面上的護欄清單中看到它，或使用護欄名稱在護欄清單中搜尋它

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

**建立護欄版本**

   建立數值版本，以確保護欄組態保持不可變，且無法由成員帳戶修改。

**透過 AWS 管理主控台**  
若要使用主控台建立護欄版本：

   1. 在 Amazon Bedrock 主控台的護欄頁面中選取在上一個步驟中建立的護欄

   1. 選擇**建立版本**

   1. 請注意護欄 ARN 和版本編號 （例如 "1"、"2")

**透過 API**  
使用 `CreateGuardrailVersion` API

**確認**  
檢查 Guardrail 詳細資訊頁面上的版本清單，確認已成功建立版本。

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

**連接以資源為基礎的政策 （選用）**

   如果您想要與帳戶中的特定角色共用護欄，請連接以資源為基礎的政策。

**透過 AWS 管理主控台**  
若要使用主控台連接以資源為基礎的政策：

   1. 在 Amazon Bedrock Guardrails 主控台中，選取您的護欄

   1. 選擇**新增**以新增資源型政策

   1. 新增將`bedrock:ApplyGuardrail`許可授予所需角色的政策

   1. 儲存政策

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

**啟用帳戶層級強制執行**

   設定帳戶以針對所有 Amazon Bedrock 調用使用您的護欄。這必須在您想要強制執行的每個區域中完成。

**透過 AWS 管理主控台**  
若要使用主控台啟用帳戶層級強制執行：

   1. 導覽至 Amazon Bedrock 主控台

   1. 在左側導覽面板中選擇**護欄** 

   1. 在**帳戶層級強制執行組態**區段下，選擇**新增**

   1. 選取您的護欄和版本

   1. 設定選擇性內容保護控制 （選用）。
      + Amazon Bedrock APIs發起人在其[輸入提示中標記特定內容](guardrails-tagging.md)，以進行護欄評估。
      + 選擇性內容保護控制可讓管理員決定是否遵守 API 呼叫者所做的標記決策。
      + `system` 和 `messages`控制項會決定護欄如何處理系統提示和訊息內容。每個 接受下列其中一個值：
        + **Selective**：僅評估防護內容標籤中的內容。
        + **全面**：評估所有內容，無論護衛內容標籤為何。
      + 如果未設定，這兩個控制項都會預設為**全面**。

   1. 提交組態

   1. 針對您想要強制執行的每個區域重複此步驟

**透過 API**  
在您要強制執行護欄的每個區域中使用 `PutEnforcedGuardrailConfiguration` API

**確認**  
您應該會在 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`、`InvokeModelWithResponseStream`、 或 進行 Amazon Bedrock `Converse`推論呼叫 `ConverseStream`

   1. 帳戶強制執行的護欄應自動套用至輸入和輸出

   1. 檢查護欄評估資訊的回應。護欄回應將包含強制執行的護欄資訊。

## 監控
<a name="monitoring"></a>
+ 使用 [Amazon Bedrock Guardrails 的 CloudWatch 指標追蹤護欄介入和指標](monitoring-guardrails-cw-metrics.md)
+ 檢閱 `ApplyGuardrail` API 呼叫的 CloudTrail 日誌，以監控使用模式，例如指出 IAM 許可組態問題的 AccessDenied 例外狀況。請參閱 [ CloudTrail 中的 Amazon Bedrock 資料事件](logging-using-cloudtrail.md#service-name-data-events-cloudtrail)

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

Amazon Bedrock Guardrails 強制執行會遵循 Amazon 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。檢閱 Service Quotas 主控台或服務[Service Quotas文件](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)，並確保您的 Guardrails 執行時間限制足以容納您的通話量。

**如果我在請求中同時具有組織層級和帳戶層級強制執行的護欄以及護欄，會發生什麼情況？**  
所有 3 個護欄將在執行時間強制執行。淨效果是所有護欄的聯集，最嚴格的控制優先。

**我應該何時使用選擇性或全面的防護控制？**  
當您信任呼叫者標記正確的內容，並希望減少不必要的護欄處理時，請使用 **Selective**。當呼叫者處理預先驗證和使用者產生內容的混合時，這很有用，而且只需要套用到特定部分的護欄。當您想要在所有項目上強制執行護欄時，無論呼叫者標籤為何，都請使用**全面**。當您不想倚賴來電者正確識別敏感內容時，這是更安全的預設值。

**如何從強制執行中包含或排除特定模型？**  
使用模型強制執行控制項來限定護欄適用於 Amazon Bedrock 上的哪些模型以進行推論。如果未設定，強制執行預設會套用到 Amazon Bedrock 上的所有模型。此控制項接受下列清單：  
+ **包含的模型：**強制執行護欄的模型。接受特定模型識別符或關鍵字`ALL`，以明確包含所有模型。空白時，強制執行會套用至所有模型。
+ **排除的模型：**要從護欄強制執行排除的模型。空白時，不會排除任何模型。
如果兩個清單中都顯示模型，則會排除該模型。

**我應該何時使用包含與排除模型？**  
+ 當您只想要在特定**模型上強制執行護欄時，請使用包含**的模型。
+ 當您想要廣泛強制執行，但需要切出特定**模型的例外狀況時，請使用排除**模型。

**我可以刪除強制執行組態中使用的護欄嗎？**  
否。根據預設，[DeleteGuardrail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteGuardrail.html) API 可防止刪除與帳戶層級或組織層級強制執行組態相關聯的護欄。