為 Amazon 基岩中的快速流程建立服務角色 - Amazon Bedrock

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

為 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}" } } }