

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

# 提示注入安全性
<a name="prompt-injection"></a>

 根據[AWS 共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)， AWS 負責保護基礎雲端基礎設施，包括執行 AWS 服務的硬體、軟體、聯網和設施。不過，客戶必須負責保護其部署的應用程式、資料和資源 AWS。

在 Amazon Bedrock 的環境中， 會 AWS 處理基礎基礎設施的安全性，包括實體資料中心、聯網和 Amazon Bedrock 服務本身。不過，安全應用程式開發和防止如提示注入等漏洞的責任在於客戶。

提示注入是應用程式層級的安全問題，類似於資料庫應用程式中的 SQL Injection 隱碼攻擊。就像 Amazon RDS 和 Amazon Aurora 等 AWS 服務提供安全的資料庫引擎一樣，但客戶負責在其應用程式中防止 SQL 注入。Amazon Bedrock 為自然語言處理提供了安全的基礎，但客戶必須採取措施來防止程式碼中發生提示注入漏洞。此外， AWS 提供有關 Bedrock 和其他 AWS 服務的安全編碼實務的詳細文件、最佳實務和指導。

為了防止在使用 Amazon Bedrock 時出現提示注入和其他安全漏洞，客戶應遵循下列最佳實務：
+ **輸入驗證** – 在將所有使用者輸入傳遞至 Amazon Bedrock API 或字符化工具之前，驗證並淨化所有使用者輸入。這包括移除或逸出特殊字元，並確保輸入符合預期的格式。
+ **安全編碼實務** - 遵循安全編碼實務，例如使用參數化查詢、避免輸入字串串連，以及在授予資源存取權時練習最低權限原則。
+ **安全測試** – 使用滲透測試、靜態程式碼分析和動態應用程式安全測試 (DAST) 等技術，定期測試您的應用程式是否有提示注入和其他安全漏洞。
+ **保持更新** – 透過最新的安全修補程式和更新，讓您的 Amazon Bedrock SDK、程式庫和相依性保持最新狀態。監控 AWS 安全公告和公告是否有任何相關的更新或指引。 AWS 提供詳細的文件、部落格文章和範本程式碼，協助客戶使用 Bedrock 和其他 AWS 服務建置安全的應用程式。客戶應檢閱這些資源，並遵循建議的安全最佳實務，以保護其應用程式免受提示注入和其他漏洞的影響。

您可以使用 Amazon Bedrock 防護機制協助防範提示注入攻擊。如需詳細資訊，請參閱[使用 Amazon Bedrock 防護機制偵測提示攻擊](guardrails-prompt-attack.md)。

建立 Amazon Bedrock 代理人時，請使用下列技術來協助防範提示注入攻擊。
+ 將防護機制與代理程式建立關聯。如需詳細資訊，請參閱[透過將防護機制與代理程式建立關聯，為您的應用程式實作保護措施](agents-guardrail.md)。
+ 使用[進階提示](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html)來啟用預設的預先處理提示。每個代理程式都有您可以啟用的預設預先處理提示。這是輕量型提示，使用基礎模型來判斷是否可安全地處理使用者輸入。您可以使用其預設行為，或完全自訂提示以包含任何其他分類類別。或者，您可以在 [AWS Lambda](https://docs.aws.amazon.com/bedrock/latest/userguide/lambda-parser.html) 函數中編寫自己的基礎模型回應剖析器，以實作自己的自訂規則。

  如需詳細資訊，請參閱[Amazon Bedrock 代理程式的運作方式](agents-how.md)。
+ 使用進階提示功能更新系統提示。較新的模型會區分系統和使用者提示。如果您在代理程式中使用系統提示，建議您明確定義代理程式可執行和不可執行的操作範圍。此外，請檢查模型提供者自己的文件，以取得模型特定指引。若要了解 Amazon Bedrock 中的哪些無伺服器模型支援系統提示，請參閱 [基礎模型的推論請求參數和回應欄位](model-parameters.md)。