本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Amazon 基岩中的快速流程建立服務角色
若要在 Amazon Bdrock 中建立和管理迅速流程,您必須使用具有本頁所述必要許可的服務角色。您可以使用 Amazon Bdrock 在主控台中為您自動建立的服務角色,也可以使用自己自訂的角色。
注意
如果您使用 Amazon Bdrock 在主控台中為您自動建立的服務角色,則當您將節點新增到流程並儲存流程時,它將動態連接許可。但是,如果您移除節點,則不會刪除權限,因此您必須刪除不再需要的權限。若要管理為您建立的角色的許可,請按照 IAM 使用者指南中修改角色中的步驟進行操作。
若要為提示流程建立自訂服務角色,請按照建立角色以委派權限給 AWS 服務中的步驟建立 IAM 角色。然後將下列權限附加至角色。
-
信任政策
-
以下是以身分識別為基礎的權限:
-
存取快速流程將使用的 Amazon 基礎基礎模型。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您使用佈建輸送量叫用模型,則存取和呼叫已佈建模型的權限。將提示流程中使用的每個模型新增至
Resource
清單。 -
如果您叫用自訂模型,則存取和叫用自訂模型的權限。將提示流程中使用的每個模型新增至
Resource
清單。 -
權限取決於您新增至流程的節點:
-
如果您包含使用「提示管理」提示的提示節點,則存取提示的權限。將提示流程中使用的每個提示新增至
Resource
清單。 -
如果您包含知識庫節點,查詢知識庫的權限。將提示流程中查詢的每個知識庫新增至
Resource
清單。 -
如果您包含代理程式節點,則需要呼叫代理程式別名的權限。將提示流程中呼叫的每個代理程式新增至
Resource
清單。 -
如果您包含 S3 擷取節點,則存取要從中擷取資料的 Amazon S3 儲存貯體的許可。將從中擷取資料的每個值區新增至
Resource
清單。 -
如果您包含 S3 儲存節點,則允許寫入存放輸出資料的 Amazon S3 儲存貯體。將資料寫入
Resource
清單的每個值區新增。 -
如果您加密了在提示流程中調用的任何資源,則需要解密密鑰的權限。將每個金鑰新增至
Resource
清單。
-
-
您可能還需要附加以下以資源為基礎的策略:
-
如果您包含 Lambda 函數節點,請將以資源為基礎的政策附加至提示流程叫用的 Lambda 函數,以提供服務角色存取函數的許可。如需詳細資訊,請參閱 以資源為基礎的政策,可讓 Amazon 基岩叫用動作群組 Lambda 函數。
-
如果您包含 Amazon Lex 節點,請將資源型政策附加到 Amazon Lex 機器人,提示流程會叫用該政策,以便為服務角色提供存取 Amazon Lex 機器人的許可。如需詳細資訊,請參閱 Amazon Lex 的以資源為基礎的政策範例。
-
如果您加密提示流程,請將金鑰原則附加至用於加密提示流程的 KMS 金鑰。
信任關係
將下列信任政策附加到提示流程執行角色,以允許 Amazon Bedrock 擔任此角色並管理快速流程。視需要取代值
。此政策在我們建議您將其用作安AWS 全最佳實務的欄位中包含選用的條件金鑰 (請參閱 Amazon Beddrock 的條件金鑰和全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/*
" } } } ] }
流程服務角色的以身分識別為基礎的權限。
附加下列原則以提供服務角色的權限,視需要取代值
。此原則包含下列陳述式。如果語句不適用於您的用例,請省略該語句。此政策在我們建議您將其用作安AWS 全最佳實務的欄位中包含選用的條件金鑰 (請參閱 Amazon Beddrock 的條件金鑰和全Condition
域條件內容金鑰)。
-
存取快速流程將使用的 Amazon 基礎基礎模型。將提示流程中使用的每個模型新增至
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 基岩存取該節點的許可。
主題
以資源為基礎的政策,可讓 Amazon 基岩在叫用提示流程時叫用 Lambda 函數
請遵循使用 Lambda 以資源為基礎的政策中的步驟,並將下列以資源為基礎的政策附加至 Lambda 函數,以允許 Amazon 基岩針對您的快速流程存取 Lambda 函數,並視需要取代值。
此政策在我們建議您將其用作安AWS 全最佳實務的欄位中包含選用的條件金鑰 (請參閱 Amazon Beddrock 的條件金鑰和全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}
:flows/${flow-id}
" } } }] }
以資源為基礎的政策,允許亞馬遜基岩呼叫 Amazon Lex 機器人
請遵循 Amazon Lex 的資源型政策範例中的步驟,並將下列資源型政策附加到 Amazon Lex 機器人,以便讓 Amazon 基岩在快速流程中呼叫它,並視需要取代值。
此政策在我們建議您將其用作安AWS 全最佳實務的欄位中包含選用的條件金鑰 (請參閱 Amazon Beddrock 的條件金鑰和全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}
:flows/${flow-id}
" } } } ]
允許 Amazon 基岩加密和解密流程的金鑰政策
請遵循建立金鑰政策中的步驟,並將下列金鑰政策附加到 KMS 金鑰,以允許 Amazon Bedrock 使用金鑰加密和解密流程,並視需要取代值
。此政策在我們建議您將其用作安AWS 全最佳實務的欄位中包含選用的條件金鑰 (請參閱 Amazon Beddrock 的條件金鑰和全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}
" } } }