在 Amazon Bedrock 中為 Amazon Bedrock 流程建立服務角色 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 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}" } } } ] }