本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon Bedrock 中為 Amazon Bedrock Prompt 流程建立服務角色
若要在 Amazon Bedrock 中建立和管理提示流程,您必須使用具有此頁面所概述必要許可的服務角色。您可以使用 Amazon Bedrock 在主控台中自動為您建立的服務角色,或使用您自行自訂的服務角色。
注意
如果您使用 Amazon Bedrock 在主控台中自動為您建立的服務角色,則當您將節點新增至流程並儲存流程時,它會動態連接許可。但是,如果您移除節點,則不會刪除許可,因此您必須刪除不再需要的許可。若要管理為您建立之角色的許可,請遵循 IAM 使用者指南中的修改角色步驟。
若要為 Amazon Bedrock Prompt 流程建立自訂服務角色,請依照建立IAM角色以將許可委派給 AWS 服務 的步驟來建立角色。然後將下列許可連接至角色。
-
信任政策
-
下列身分型許可:
-
存取提示流程將使用的 Amazon Bedrock 基礎模型。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您使用佈建輸送量叫用模型,則存取和叫用佈建模型的許可。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您調用自訂模型,則存取和調用自訂模型的許可。將提示流程中使用的每個模型新增至
Resource
清單。 -
根據您新增至流程的節點而定的許可:
-
如果您包含使用提示管理提示的提示節點,則存取提示的許可。將提示流程中使用的每個提示新增至
Resource
清單。 -
如果您包含知識庫節點,則查詢知識庫的許可。將提示流程中查詢的每個知識庫新增至
Resource
清單。 -
如果您包含代理程式節點,則可以叫用代理程式的別名。將提示流程中叫用的每個客服人員新增至
Resource
清單。 -
如果您包含 S3 擷取節點,則存取要從中擷取資料的 Amazon S3 儲存貯體的許可。將擷取資料的每個儲存貯體新增至
Resource
清單中。 -
如果您包含 S3 儲存節點,則允許寫入要儲存輸出資料的 Amazon S3 儲存貯體。將資料寫入
Resource
清單的每個儲存貯體新增。 -
如果您加密了在提示流程中叫用的任何資源,則解密金鑰的許可。將每個金鑰新增至
Resource
清單。
-
-
您可能還需要連接下列資源型政策:
-
如果您包含 Lambda 函數節點,請將資源型政策連接至 Lambda 函數,提示流程會叫用該函數,以提供服務角色存取函數的許可。如需詳細資訊,請參閱資源型政策,允許 Amazon Bedrock 叫用動作群組 Lambda 函數。
-
如果您包含 Amazon Lex 節點,請將資源型政策連接至提示流程調用的 Amazon Lex 機器人,以提供服務角色存取 Amazon Lex 機器人的許可。如需詳細資訊,請參閱 Amazon Lex 的資源型政策範例。
-
如果您加密提示流程,請將金鑰政策連接至您用來加密提示流程的KMS金鑰。
信任關係
將下列信任政策連接至提示流程執行角色,以允許 Amazon Bedrock 擔任此角色並管理提示流程。取代 values
視需要。政策包含選用的條件金鑰 (請參閱 Amazon Bedrock 的條件金鑰和AWS 全域條件內容金鑰 ),其位於建議您做為安全最佳實務的Condition
欄位中。
注意
最佳實務是取代 *
建立後,使用提示流程 ID。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
FlowsTrustBedrock
", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${account-id}
" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/*
" } } } ] }
流程服務角色的身分型許可。
連接下列政策以提供服務角色的許可,取代 values
視需要。政策包含下列陳述式。如果陳述式不適用於您的使用案例,請省略該陳述式。政策包含選用的條件金鑰 (請參閱 Amazon Bedrock 的條件金鑰和AWS 全域條件內容金鑰 ),其位於建議您用作安全最佳實務的Condition
欄位中。
-
存取提示流程將使用的 Amazon Bedrock 基礎模型。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您使用佈建輸送量叫用模型,則存取和叫用佈建模型的許可。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您調用自訂模型,則存取和調用自訂模型的許可。將提示流程中使用的每個模型新增至
Resource
清單。 -
根據您新增至流程的節點而定的許可:
-
如果您包含使用提示管理提示的提示節點,則存取提示的許可。將提示流程中使用的每個提示新增至
Resource
清單。 -
如果您包含知識庫節點,則查詢知識庫的許可。將提示流程中查詢的每個知識庫新增至
Resource
清單。 -
如果您包含代理程式節點,則可以叫用代理程式的別名。將提示流程中叫用的每個客服人員新增至
Resource
清單。 -
如果您包含 S3 擷取節點,則存取要從中擷取資料的 Amazon S3 儲存貯體的許可。將擷取資料的每個儲存貯體新增至
Resource
清單中。 -
如果您包含 S3 儲存節點,則允許寫入要儲存輸出資料的 Amazon S3 儲存貯體。將資料寫入
Resource
清單的每個儲存貯體新增。 -
如果您加密了在提示流程中叫用的任何資源,則解密金鑰的許可。將每個金鑰新增至
Resource
清單。
-
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
InvokeModel
", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}
::foundation-model/${model-id}
" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:provisioned-model/${model-id}
" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:custom-model/${model-id}
" ] }, { "Sid": "UsePromptManagement
", "Effect": "Allow", "Action": [ "bedrock:GetPrompt" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:prompt/${prompt-id}
" ] }, { "Sid": "QueryKnowledgeBase
", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:knowledge-base/knowledge-base-id
" ] }, { "Sid": "InvokeAgent
", "Effect": "Allow", "Action": [ "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:agent-alias/${agent-alias-id}
" ] }, { "Sid": "AccessS3Bucket
", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}
/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } }, { "Sid": "WriteToS3Bucket
", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}
", "arn:aws:s3:::${bucket-name}
/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } }, { "Sid": "KMSPermissions
", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${region}
:${account-id}
:key/${key-id}
" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } } ] }
提示流程的資源型政策
如果您在提示流程中包含 Lambda 函數節點或 Amazon Lex 節點,則必須將下列政策連接至每個資源,以便在調用提示流程時提供 Amazon Bedrock 存取該節點的許可。
主題
資源型政策,允許 Amazon Bedrock 在叫用提示流程時叫用 Lambda 函數
請遵循 使用資源型政策進行 Lambda 的步驟,並將下列資源型政策連接至 Lambda 函數,以允許 Amazon Bedrock 存取 Lambda 函數以進行提示流程,取代 values
視需要。政策包含選用的條件金鑰 (請參閱 Amazon Bedrock 的條件金鑰和AWS 全域條件內容金鑰 ),其位於建議您做為安全最佳實務的Condition
欄位中。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowBedrockToAccessLambdaFunction", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:
${region}
:${account-id}
:function:${function-name}
", "Condition": { "StringEquals": { "AWS:SourceAccount": "${account-id}
" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/${flow-id}
" } } }] }
以資源為基礎的政策,以允許 Amazon Bedrock 呼叫 Amazon Lex 機器人
請遵循 Amazon Lex 資源型政策範例的步驟,並將下列資源型政策連接至 Amazon Lex 機器人,以允許 Amazon Bedrock 以提示流程呼叫它,取代 values
視需要。政策包含選用的條件金鑰 (請參閱 Amazon Bedrock 的條件金鑰和AWS 全域條件內容金鑰 ),其位於建議您做為安全最佳實務的Condition
欄位中。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockToAccessLexBot", "Effect": "Allow", "Principal": { "Service": [ "bedrock.amazonaws.com" ] }, "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:
${region}
:${account-id}
:bot-alias/${bot-id}
/${bot-alias-id}
" ], "Condition": { "StringEquals": { "AWS:SourceAccount":${account-id}
}, "ArnEquals": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/${flow-id}
" } } } ]
允許 Amazon Bedrock 加密和解密流程的金鑰政策
請遵循建立金鑰政策的步驟,並將下列金鑰政策連接至KMS金鑰,以允許 Amazon Bedrock 使用金鑰加密和解密流程,取代 values
視需要。政策包含選用的條件金鑰 (請參閱 Amazon Bedrock 的條件金鑰和AWS 全域條件內容金鑰 ),其位於建議您用作安全最佳實務的 Condition
欄位中。
{ "Sid": "EncryptFlowKMS", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext": "arn:aws:bedrock:
${region}
:${account-id}
:flow/${flow-id}
" } } }