本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
先決條件和許可
先決條件
當您提交進階提示最佳化任務時,Amazon Bedrock 會使用呼叫身分的許可,代表您存取帳戶中的資源。您用來呼叫 API 或存取 AWS 主控台的 IAM 使用者或角色必須具有以下許可:
管理進階提示最佳化任務
叫用目標基礎模型
從 讀取輸入資料,並將結果寫入 Amazon S3 儲存貯體
(選用) 使用您的 AWS KMS 金鑰,使用客戶受管金鑰 (CMK) 加密任務輸出,或存取使用 CMK 的 S3 儲存貯體
(選用) 叫用 Lambda 函數以進行自訂評估
所需的 IAM 許可
API 許可
每個進階提示最佳化 API 都需要任務資源的特定 IAM 動作:
| API 作業 | IAM 動作 | 資源 | 存取層級 |
|---|---|---|---|
| CreateAdvancedPromptOptimizationJob | bedrock:CreateAdvancedPromptOptimizationJob |
arn:aws:bedrock: |
寫入 |
| GetAdvancedPromptOptimizationJob | bedrock:GetAdvancedPromptOptimizationJob |
arn:aws:bedrock: |
讀取 |
| ListAdvancedPromptOptimizationJobs | bedrock:ListAdvancedPromptOptimizationJobs |
arn:aws:bedrock: |
清單 |
| StopAdvancedPromptOptimizationJob | bedrock:StopAdvancedPromptOptimizationJob |
arn:aws:bedrock: |
寫入 |
| BatchDeleteAdvancedPromptOptimization 任務 | bedrock:BatchDeleteAdvancedPromptOptimization Job |
arn:aws:bedrock: |
寫入 |
模型調用許可
當您建立任務時,進階提示最佳化會使用呼叫者登入資料 (正向存取工作階段) 代表您叫用目標模型。您的 IAM 身分必須具有叫用指定模型的許可:
| 推論路徑 | 需要 IAM 動作 | 資源 ARN |
|---|---|---|
| ConverseStream (目前) | bedrock:InvokeModelWithResponseStream |
arn:aws:bedrock: |
| Converse (非串流) | bedrock:InvokeModel |
arn:aws:bedrock: |
| 跨區域推論設定檔 | bedrock:InvokeModelWithResponseStream |
arn:aws:bedrock:*: |
重要
如果您帳戶中的模型未啟用模型存取,任務將失敗:「模型無法存取推論 API。確認角色具有叫用模型的許可。」
S3 儲存貯體許可
您的呼叫身分必須具有輸入資料集的讀取存取權,以及輸出位置的寫入存取權。S3 儲存貯體必須與任務位於相同的區域。
{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }
如果您的 S3 儲存貯體使用 CMK 加密,請參閱使用 加密 AWS KMS 一節以取得所需的 KMS 許可。
使用 加密 AWS KMS (選用)
您可以透過兩種方式搭配進階提示最佳化使用 AWS KMS 客戶受管金鑰 (CMKs):
任務輸出加密 – 在建立任務時指定
encryptionConfig參數,以使用 CMK 加密最佳化結果。S3 儲存貯體加密 – 如果您的 S3 儲存貯體使用伺服器端加密搭配 KMS 金鑰 (SSE-KMS),您的身分需要 KMS 許可,才能讀取輸入並將結果寫入該儲存貯體。
您可以對兩者使用相同的 KMS 金鑰,或使用單獨的金鑰。
所需的 KMS 動作取決於您使用 KMS 的方式:
| 使用案例 | 必要的動作 |
|---|---|
加密任務輸出 (encryptionConfig) |
kms:Encrypt, kms:GenerateDataKey, kms:DescribeKey |
| 從 SSE-KMS 加密的 S3 儲存貯體讀取 | kms:Decrypt |
| 寫入 SSE-KMS 加密的 S3 儲存貯體 | kms:GenerateDataKey |
單一 KMS 金鑰
如果您針對輸出加密和 S3 儲存貯體加密使用相同的金鑰:
{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/your-kms-key-id" }
S3 輸入和任務輸出加密的個別 KMS 金鑰
如果您的 S3 輸入儲存貯體使用一個 KMS 金鑰,而且您想要使用不同的 KMS 金鑰來加密任務輸出:
{ "Sid": "KMSDecryptS3Input", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/s3-bucket-kms-key-id" }, { "Sid": "KMSEncryptJobOutput", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/output-encryption-kms-key-id" }
自訂評估 Lambda 許可 (選用)
如果您使用自訂 Lambda 函數來評估提示品質,您的呼叫身分必須具有叫用它的許可:
{ "Effect": "Allow", "Action": ["lambda:InvokeFunction","lambda:GetFunction"], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-evaluation-metric" }
範例 IAM 政策
身分型政策:允許 AdvPO 任務管理和模型調用
將此政策連接到將建立和管理 AdvPO 任務的 IAM 使用者或角色。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAndManageAdvPOJobs", "Effect": "Allow", "Action": [ "bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListAdvancedPromptOptimizationJobs", "bedrock:StopAdvancedPromptOptimizationJob", "bedrock:BatchDeleteAdvancedPromptOptimizationJob" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*" }, { "Sid": "InvokeModelsForOptimization", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:*:123456789012:inference-profile/*" ] }, { "Sid": "S3AccessForInputAndOutput", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::my-advpo-bucket/*" }, { "Sid": "S3ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::my-advpo-bucket" } ] }
身分型政策:唯讀存取 AdvPO 任務
對於只需要檢視任務狀態和結果的使用者,請使用此政策。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewAdvPOJobs", "Effect": "Allow", "Action": [ "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListAdvancedPromptOptimizationJobs" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*" }, { "Sid": "ReadOutputFromS3", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-advpo-bucket/output/*" } ] }
身分型政策:僅限特定模型
使用此政策僅允許 AdvPO 搭配特定模型 (例如,僅限 Claude Sonnet)。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AdvPOJobManagement", "Effect": "Allow", "Action": [ "bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:GetAdvancedPromptOptimizationJob", "bedrock:ListAdvancedPromptOptimizationJobs", "bedrock:StopAdvancedPromptOptimizationJob" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*" }, { "Sid": "InvokeOnlyClaudeSonnet", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/anthropic.claude-sonnet-*", "arn:aws:bedrock:*:123456789012:inference-profile/us.anthropic.claude-sonnet-*" ] }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::my-advpo-bucket/*" } ] }
拒絕政策:防止 AdvPO 用量 (SCP 範例)
使用 做為服務控制政策 (SCP),以防止整個組織的 AdvPO 使用。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAdvPO", "Effect": "Deny", "Action": [ "bedrock:CreateAdvancedPromptOptimizationJob", "bedrock:StopAdvancedPromptOptimizationJob", "bedrock:BatchDeleteAdvancedPromptOptimizationJob" ], "Resource": "*" } ] }
跨區域推論
服務可能會使用跨區域推論 (CRIS) 進行評估和提示重寫。對於歐洲區域,服務將使用 eu CRIS 區域。對於下列區域,它可以使用全域 CRIS:ap-south-1 (孟買)、sa-east-1 (聖保羅)、ap-northeast-2 (首爾)、ap-southeast-1 (新加坡)。