在Amazon Bedrock AgentCore Identity中引用您自己的AWS Secrets Manager密鑰
Amazon Bedrock AgentCore Identity現在支持引用您自己的AWS Secrets Manager密鑰,使您能夠完全控制密鑰的加密、輪換、複製、標籤和資源策略,同時擴展組織現有的密鑰治理流程。
AI代理的強大程度取決於它們能訪問的工具。無論是從CRM檢索客户數據、在Slack上發佈更新,還是查詢GitHub倉庫,代理都需要調用外部API,這意味着在運行時安全地傳遞憑證。在不將密鑰硬編碼在代碼中或暴露在代理提示中的情況下做到這一點,是構建生產級代理系統的關鍵挑戰之一。
Amazon Bedrock AgentCore Identity通過憑證提供程序和令牌保險庫應對這一挑戰,它們會自動在您賬户的AWS Secrets Manager中為每個出站憑證提供程序資源創建並管理一個密鑰。該密鑰包含API密鑰或客户端密鑰以及外部身份提供程序的其他元數據。雖然AgentCore Identity完全創建並管理這些密鑰,但客户在創建時無法配置自定義標籤、輪換策略或客户管理的AWS KMS密鑰加密。
今天,我們激動地宣佈AgentCore Identity支持引用AWS Secrets Manager中的密鑰,因此您可以引用自己預先配置的Secrets Manager密鑰,並保留對其管理的完全控制。憑藉此功能,您可以將組織現有的密鑰治理流程擴展到AgentCore。您可以為憑證提供程序資源提供現有的、預先配置的AWS Secrets Manager密鑰。您保留對其加密配置、輪換、複製、標籤和資源策略的完全控制,就像管理Secrets Manager中的其他密鑰一樣。您還可以從同一AWS區域內的另一個AWS賬户中選擇密鑰,但不支持跨區域密鑰共享。這還支持通過AWS Secrets Manager外部連接器引入的密鑰,從而實現與第三方密鑰管理器的集成。
本文中,我們將回顧示例用例,並逐步介紹如何開始使用現有密鑰配置憑證提供程序資源。
示例用例
以下是一些示例用例:
- 您的代理訪問一個您團隊已有密鑰的外部API:提供該現有密鑰的ARN給您的憑證提供程序資源,而不是讓AgentCore Identity創建一個新密鑰。您還可以引用同一區域中另一個AWS賬户的密鑰,以及通過AWS Secrets Manager外部連接器引入的密鑰,支持與第三方密鑰管理器集成。
- 您希望出於安全最佳實踐輪換密鑰,並且希望代理在輪換期間繼續工作:當您輪換密鑰值時,AgentCore Identity會在下一次讀取時檢索更新後的值。您無需更新或重新創建憑證提供程序資源。
- 您將密鑰訪問範圍限定於預期的代理使用:直接在AWS Secrets Manager中配置密鑰的資源策略。您可以控制哪些AWS Identity and Access Management(IAM)主體可以訪問密鑰,並限定訪問條件。
- 您的代理在受監管環境中運行,每個憑證都必須使用您客户管理的密鑰加密:在將密鑰提供給AgentCore Identity之前,使用您的客户管理加密密鑰創建密鑰。如果您的組織強制執行SCP和RCP以確保所有數據使用客户管理的CMK加密,這將特別有用。通過引用現有密鑰,您的加密配置完全保留。
- 您的組織需要密鑰上的資源標籤以進行成本分配、合規跟蹤或治理審計:在將密鑰提供給AgentCore Identity之前,根據您的標準創建並標記密鑰。
有關密鑰配置選項的更多信息,請參閲《AWS Secrets Manager用户指南》。
前提條件
要跟隨操作,您需要以下內容:
- 一個包含API密鑰或OAuth客户端密鑰的現有AWS Secrets Manager密鑰。
- IAM權限,允許AgentCore Identity服務主體對密鑰執行secretsmanager:GetSecretValue操作。
- 如果使用客户管理的AWS KMS密鑰,則需為該服務主體提供kms:Decrypt權限。
- 訪問Amazon Bedrock AgentCore Identity控制台或AWS Command Line Interface(AWS CLI)。
入門
要引用AWS Secrets Manager中的密鑰,在通過AgentCore Identity API創建憑證提供程序資源時提供密鑰ARN和JSON鍵。AgentCore Identity會在運行時從指定JSON鍵中檢索憑證值。
以下部分展示瞭如何使用AWS Management Console、AWS CLI或AI代理創建帶引用密鑰的憑證提供程序資源。
使用控制台
您可以在Amazon Bedrock AgentCore Identity控制台中直接創建新的憑證提供程序資源時配置引用密鑰。該功能支持API密鑰和OAuth客户端憑證類型。
圖1:AgentCore Identity控制台,使用引用密鑰創建出站Auth資源。
A. 使用引用密鑰添加API密鑰
要使用引用密鑰添加API密鑰,請完成以下步驟:
- 打開Amazon Bedrock AgentCore控制台。
- 在左側導航窗格中,選擇Identity。
- 在Outbound Auth部分,選擇Add Outbound Auth。
- 選擇Add API key。
- 為您的Outbound Auth資源輸入名稱。
- 在API key selection method下,選擇Provide API key via Secrets Manager。
- 在Secrets Manager ARN字段中,輸入或選擇您現有密鑰的ARN。列表顯示您賬户中的可用密鑰。例如:arn:aws:secretsmanager:us-east-1:123456789012:secret:myApiKeySecret-AbCdEf。
- 在JSON key字段中,指定包含API密鑰值的密鑰中的鍵。
- 選擇Add。
- 驗證憑證提供程序已創建,檢查它出現在Outbound Auth列表中。
圖2:AgentCore Identity控制台,從Secrets Manager添加API密鑰。
B. 使用引用密鑰添加OAuth客户端密鑰
要使用引用密鑰添加OAuth客户端密鑰,請完成以下步驟:
- 在Identity頁面,選擇Add Outbound Auth。
- 選擇Add OAuth client。
- 為您的OAuth客户端輸入名稱(例如,google-oauth-client-v5fz5)。
- 在Provider下,選擇您打算使用的內置或自定義提供程序。
- 輸入您的客户端ID(身份提供程序分配的)。
- 在Client secret下,選擇Provide Client secret via Secrets Manager。
- 在Secrets Manager ARN字段中,輸入包含OAuth客户端密鑰的密鑰ARN。
- 在JSON key字段中,指定包含客户端密鑰值的密鑰中的鍵。
- 選擇Add OAuth Client。
- 驗證憑證提供程序已創建,檢查它出現在Outbound Auth列表中。
圖3:AgentCore Identity控制台,從Secrets Manager添加OAuth客户端密鑰。
使用AWS CLI
您可以通過AWS CLI直接為OAuth客户端密鑰創建新的出站Auth資源時配置引用密鑰,如以下代碼所示:
aws bedrock-agentcore-control create-oauth2-credential-provider \ --name "google-oauth-client-v5fz5" \ --credential-provider-vendor "GoogleOauth2" \ --oauth2-provider-config-input '{ "googleOauth2ProviderConfig": { "clientId": "", "clientSecretSource": "EXTERNAL", "clientSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myGoogleKeySecret-AbCdEf", "jsonKey": "key" } } }'
使用桌面上的AI代理
如果您使用AI編碼代理(如Kiro或類似工具),您可以提示它直接配置引用密鑰:
“我在AWS Secrets Manager中有一個現有密鑰,ARN為arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-key。在Amazon Bedrock AgentCore Identity中創建一個名為<NAME>的OAuth2憑證提供程序,使用GoogleOauth2作為供應商。客户端ID是<CLIENT_ID>,客户端密鑰源是EXTERNAL,密鑰JSON鍵是key。”
注意:將<NAME>和<CLIENT_ID>替換為您的值。
重要:給AgentCore Identity讀取密鑰的權限,在密鑰上添加資源策略,允許服務主體調用secretsmanager:GetSecretValue。如果密鑰使用客户管理的KMS密鑰加密,還需為該服務主體提供kms:Decrypt權限。
結論
通過引用AWS Secrets Manager密鑰的能力,AgentCore Identity為您提供了在配置AI代理的出站認證時使用現有密鑰和密鑰管理實踐的靈活性。您可以完全控制憑證的加密、輪換和訪問方式,而AgentCore Identity負責在運行時檢索它們。
要開始使用,請參閲Amazon Bedrock AgentCore Identity文檔。有關密鑰管理的更多信息,請參閲《AWS Secrets Manager用户指南》。
關於作者