為 Amazon Bedrock 代理程式建立服務角色 - Amazon Bedrock

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

為 Amazon Bedrock 代理程式建立服務角色

若要為客服人員使用自訂服務角色,而非 Amazon Bedrock 自動建立的服務角色,請建立 IAM 角色,並依照建立角色以將許可委派給 AWS服務中的步驟連接下列許可

  • 信任政策

  • 包含下列身分型許可的政策:

    • Amazon Bedrock 基本模型的存取。

    • 包含代理程式中動作群組的 OpenAPI 結構描述的 Amazon S3 物件的存取。

    • Amazon Bedrock 查詢您想要附加至代理程式的知識庫所需的許可。

    • 如果您的使用案例符合下列任何情況,請將陳述式新增至政策,或將包含該陳述式的政策新增至服務角色:

      • (選用) 如果您啟用多代理協同作業,則需取得別名和調用代理程式協作者的許可。

      • (選用) 如果您將佈建輸送量與代理程式別名建立關聯,則需使用該佈建輸送量執行模型調用的許可。

      • (選用) 如果您將防護機制與您的代理程式建立關聯,則需套用該防護機制的許可。如果防護機制使用 KMS 金鑰加密,則服務角色還需要解密金鑰的許可

      • (選用) 如果您使用 KMS 金鑰加密代理程式,則需要解密金鑰的許可

無論您是否使用自訂角色,您還需要將資源型政策連接到 Lambda 函數,以便為代理程式中的動作群組提供服務角色存取這些函數的許可。如需詳細資訊,請參閱資源型政策,允許 Amazon Bedrock 調用動作群組 Lambda 函數

信任關係

下列信任政策允許 Amazon Bedrock 擔任此角色,並建立和管理代理程式。視需要取代 ${values}。政策包含 Condition 欄位中的選用條件索引鍵 (請參閱 Amazon Bedrock 的條件索引鍵AWS全域條件內容索引鍵),建議您將其用作安全最佳實務。

注意

基於最佳實務,請在建立特定代理程式 ID 之後將其取代為 *

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/*" } } } ] }

代理程式服務角色的身分型許可

連接下列政策以提供服務角色的許可,並視需要取代 ${values}。政策包含以下陳述式。如果陳述式不適用於您的使用案例,請省略該陳述式。政策包含 Condition 欄位中的選用條件索引鍵 (請參閱 Amazon Bedrock 的條件索引鍵AWS全域條件內容索引鍵),建議您將其用作安全最佳實務。

注意

如果您使用客戶自管 KMS 金鑰加密代理程式,請參閱 針對 2025 年 1 月 22 日之前建立的代理程式,加密代理程式資源 以取得您需要新增的進一步許可。

  • 使用 Amazon Bedrock 基礎模型對代理程式協同運作中使用的提示執行模型推論的許可。

  • 允許在 Amazon S3 中存取代理程式動作群組 API 結構描述的許可。如果您的代理程式沒有動作群組,請省略此陳述式。

  • 存取與代理程式相關聯知識庫的許可。如果您的代理程式沒有相關聯的知識庫,請省略此陳述式。

  • 存取與代理程式相關聯之第三方 (Pinecone 或 Redis Enterprise Cloud) 知識庫的許可。如果您的知識庫是第一方 (Amazon OpenSearch Serverless 或 Amazon Aurora),或者您的代理程式沒有相關聯的知識庫,請省略此陳述式。

  • 從提示管理存取提示的許可。如果您不打算使用 Amazon Bedrock 主控台中的代理程式來測試提示管理的提示,請省略此陳述式。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AgentModelInvocationPermissions", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2", "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2:1", "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1" ] }, { "Sid": "AgentActionGroupS3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/SchemaJson" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Sid": "AgentKnowledgeBaseQuery", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id" ] }, { "Sid": "Agent3PKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:AssociateThirdPartyKnowledgeBase" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id", "Condition": { "StringEquals": { "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:kms:us-east-1:123456789012:key/KeyId" } } }, { "Sid": "AgentPromptManagementConsole", "Effect": "Allow", "Action": [ "bedrock:GetPrompt" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:prompt/prompt-id" ] } ] }

(選用) 身分型政策,允許 Amazon Bedrock 搭配您的代理程式別名使用佈建輸送量

如果您將佈建輸送量與代理程式的別名建立關聯,請將下列身分型政策連接至服務角色,或將陳述式新增至代理程式服務角色的身分型許可中的政策。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "UseProvisionedThroughput", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/${provisioned-model-id}" ] } ] }

(選用) 身分型政策,以允許 Amazon Bedrock 關聯和調用代理程式協作者

如果您啟用多代理協同作業,請將下列身分型政策連接至服務角色,或將陳述式新增至代理程式服務角色的身分型許可中的政策。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentMultiAgentsPolicyProd", "Effect": "Allow", "Action": [ "bedrock:GetAgentAlias", "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:agent-alias/${agent-id}/${agent-alias-id}" ] } ] }

(選用) 身分型政策,以允許 Amazon Bedrock 搭配您的代理程式使用防護機制

如果您將防護機制與代理程式建立關聯,請將下列身分型政策連接至服務角色,或將陳述式新增至代理程式服務角色的身分型許可中的政策。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/${guardrail-id}" ] } ] }

(選用) 身分型政策,允許 Amazon Bedrock 從 S3 存取檔案,以搭配程式碼解譯使用

如果您啟用在 Amazon Bedrock 中啟用程式碼解譯,請將下列身分型政策連接至服務角色,或將陳述式新增至代理程式服務角色的身分型許可中的政策。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentFileAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectVersionAttributes", "s3:GetObjectAttributes" ], "Resource": [ "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]" ] } ] }

資源型政策,允許 Amazon Bedrock 調用動作群組 Lambda 函數

請遵循使用 Lambda 的資源型政策中的步驟,將下列資源型政策連接至 Lambda 函數,以允許 Amazon Bedrock 存取代理程式動作群組的 Lambda 函數,並視需要取代 ${values}。政策包含 Condition 欄位中的選用條件索引鍵 (請參閱 Amazon Bedrock 的條件索引鍵AWS全域條件內容索引鍵),建議您將其用作安全最佳實務。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AccessLambdaFunction", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }