本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon Bedrock 中為 Amazon Bedrock 流程建立服務角色
若要在 Amazon Bedrock 中建立和管理流程,您必須使用具有此頁面所概述必要許可的服務角色。您可以使用 Amazon Bedrock 在主控台中自動為您建立的服務角色,或使用您自己自訂的服務角色。
注意
如果您使用 Amazon Bedrock 在主控台中自動為您建立的服務角色,則當您將節點新增至流程並儲存流程時,它會動態連接許可。但是,如果您移除節點,則不會刪除許可,因此您必須刪除不再需要的許可。若要管理為您建立之角色的許可,請遵循 IAM 使用者指南中的修改角色步驟。
若要為 Amazon Bedrock Flows 建立自訂服務角色,請依照建立角色以將許可委派給 AWS 服務中的步驟來建立 IAM 角色。然後將下列許可連接到角色。
-
信任政策
-
下列身分型許可:
-
存取流程將使用的 Amazon Bedrock 基礎模型。將流程中使用的每個模型新增至
Resource
清單。 -
如果您使用佈建輸送量叫用模型,則存取和叫用佈建模型的許可。將流程中使用的每個模型新增至
Resource
清單。 -
如果您調用自訂模型,則存取和調用自訂模型的許可。將流程中使用的每個模型新增至
Resource
清單。 -
根據您新增至流程的節點的許可:
-
如果您包含使用提示管理提示的提示節點,則需要存取提示的許可。將流程中使用的每個提示新增至
Resource
清單。 -
如果您包含知識庫節點,則需要查詢知識庫的許可。將流程中查詢的每個知識庫新增至
Resource
清單。 -
如果您包含代理程式節點,則需要許可來叫用代理程式的別名。將流程中叫用的每個客服人員新增至
Resource
清單。 -
如果您包含 S3 擷取節點,則需要存取要從中擷取資料的 Amazon S3 儲存貯體的許可。將擷取資料的每個儲存貯體新增至
Resource
清單中。 -
如果您包含 S3 儲存節點,則需要許可,才能寫入要儲存輸出資料的 Amazon S3 儲存貯體。新增資料寫入
Resource
清單的每個儲存貯體。 -
如果您包含知識庫節點或提示節點的護欄,您需要許可才能在流程中套用護欄。將流程中使用的每個護欄新增至
Resource
清單。 -
如果您包含 Lambda 節點,則需要叫用 Lambda 函數的許可。新增每個需要調用到
Resource
清單的 Lambda 函數。 -
如果您包含 Amazon Lex 節點,則需要使用 Amazon Lex 機器人的許可。新增每個需要用於
Resource
清單的機器人別名。 -
如果您加密流程中叫用的任何資源,則需要解密金鑰的許可。將每個金鑰新增至
Resource
清單。
-
-
-
如果您加密流程,您也需要將金鑰政策連接至您用來加密流程的 KMS 金鑰。
注意
下列變更最近已實作:
-
先前, AWS Lambda 使用 Amazon Bedrock 服務主體叫用 Amazon Lex 資源。對於在 2024-11-22 之後建立的流程,此行為正在變更,Amazon Bedrock Flows 服務角色將用於叫用 AWS Lambda 和 Amazon Lex 資源。如果您在 2024-11-22 之前建立任何使用這些資源的流程,您應該使用 AWS Lambda 和 Amazon Lex 許可來更新 Amazon Bedrock Flows 服務角色。
-
先前,提示管理資源是使用
bedrock:GetPrompt
動作轉譯的。對於在 2024-11-22 之後建立的流程,此行為會變更,而bedrock:RenderPrompt
動作將用於轉譯提示資源。如果您在 2024-11-22 之前建立任何使用提示資源的流程,您應該使用bedrock:RenderPrompt
許可更新您的 Amazon Bedrock Flows 服務角色。
如果您使用的是 Amazon Bedrock 在主控台中自動為您建立的服務角色,Amazon Bedrock 會在您儲存流程時動態附加修正的許可。
信任關係
將下列信任政策連接至流程執行角色,以允許 Amazon Bedrock 擔任此角色並管理流程。視需要取代值
。政策包含選用的條件索引鍵 (請參閱 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/*
" } } } ] }
流程服務角色的身分型許可。
連接下列政策以提供服務角色的許可,並視需要取代值
。政策包含下列陳述式。如果陳述式不適用於您的使用案例,請省略該陳述式。政策包含選用的條件索引鍵 (請參閱 Amazon Bedrock 的條件索引鍵和AWS 全域條件內容索引鍵)Condition
,建議您將其用作安全最佳實務。
-
存取流程將使用的 Amazon Bedrock 基礎模型。將流程中使用的每個模型新增至
Resource
清單。 -
如果您使用佈建輸送量叫用模型,則存取和叫用佈建模型的許可。將流程中使用的每個模型新增至
Resource
清單。 -
如果您調用自訂模型,則存取和調用自訂模型的許可。將流程中使用的每個模型新增至
Resource
清單。 -
根據您新增至流程的節點的許可:
-
如果您包含使用提示管理提示的提示節點,則需要存取提示的許可。將流程中使用的每個提示新增至
Resource
清單。 -
如果您包含知識庫節點,則需要查詢知識庫的許可。將流程中查詢的每個知識庫新增至
Resource
清單。 -
如果您包含代理程式節點,則需要許可來叫用代理程式的別名。將流程中叫用的每個客服人員新增至
Resource
清單。 -
如果您包含 S3 擷取節點,則需要存取要從中擷取資料的 Amazon S3 儲存貯體的許可。將擷取資料的每個儲存貯體新增至
Resource
清單中。 -
如果您包含 S3 儲存節點,則需要許可,才能寫入要儲存輸出資料的 Amazon S3 儲存貯體。新增資料寫入
Resource
清單的每個儲存貯體。 -
如果您包含知識庫節點或提示節點的護欄,您需要許可才能在流程中套用護欄。將流程中使用的每個護欄新增至
Resource
清單。 -
如果您包含 Lambda 節點,則需要叫用 Lambda 函數的許可。新增每個需要調用到
Resource
清單的 Lambda 函數。 -
如果您包含 Amazon Lex 節點,則需要使用 Amazon Lex 機器人的許可。新增每個需要用於
Resource
清單的機器人別名。 -
如果您加密流程中叫用的任何資源,則需要解密金鑰的許可。將每個金鑰新增至
Resource
清單。
-
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
InvokeModel
", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}
::foundation-model/${model-id}
" ] }, { "Sid": "InvokeProvisionedThroughput
", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:provisioned-model/${model-id}
" ] }, { "Sid": "InvokeCustomModel
", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:custom-model/${model-id}
" ] }, { "Sid": "UsePromptFromPromptManagement
", "Effect": "Allow", "Action": [ "bedrock:RenderPrompt" ], "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": "GuardrailPermissions
", "Effect": "Allow", "Action": "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:${Partition}
:bedrock:${Region}
:${Account}
:guardrail/${GuardrailId}
" ] }, { "Sid": "LambdaPermissions
", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:${region}
:${account-id}
:function:${function-name}
" ] }, { "Sid": "AmazonLexPermissions
", "Effect": "Allow", "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:${region}
:${account-id}
:bot-alias/${bot-id}
/${bot-alias-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}
" } } } ] }