View a markdown version of this page

安全性和存取控制 - Amazon Bedrock AgentCore

安全性和存取控制

該機制為您提供與 AgentCore 其他部分相同的安全基本概念,以組態連接。

  • 隔離的執行。每個工作階段都會在 AgentCore 執行期中的自己的 Firecracker microVM 中執行。 AgentCore 無共用狀態,無共用檔案系統。

  • IAM 執行角色。繫帶會擔任您擁有的 IAM 角色,可設定為包含 Bedrock、ECR、CloudWatch 及其觸及的 AgentCore 基本概念。請參閱以下範例執行角色政策

  • IAM 許可模型。繫留 APIs 需要繫留資源和基礎 AgentCore 執行期資源的許可。例如,呼叫 InvokeHarness需要集合 ARN 的 bedrock-agentcore:InvokeHarnessbedrock-agentcore:InvokeAgentRuntime許可。相同的模式適用於控制平面操作: UpdateHarness需要 bedrock-agentcore:UpdateAgentRuntimeDeleteHarness需要 bedrock-agentcore:DeleteAgentRuntime等。如需完整清單,請參閱執行角色政策

  • 傳入 OAuth 支援。JWT 設定的 Harness 資源要求發起人出示由已設定的身分提供者發出的有效 JWT,然後才能叫用該集合。AgentCore Identity 透過代理程式執行最終使用者身分,因此下游工具可以使用範圍使用者憑證呼叫 APIs,而不是共用服務帳戶。

  • VPC。將繫帶工作階段連接至您的 VPC,以私有存取內部資源。

  • Gateway 上的政策。透過 AgentCore Gateway 提供工具時,可以設定以 Cedar 為基礎的政策來閘道每個呼叫:誰可以呼叫哪些工具、哪些條件、哪些引數。

注意

SigV4 和每個使用者身分。當呼叫者向 SigV4 (AWS IAM) 進行身分驗證時,繫帶不會將每個使用者身分傳播到下游工具呼叫中。這表示 AgentCore Identity Token Vault 中的每個使用者憑證範圍功能 - 例如使用者範圍的 OAuth 字符儲存和on-behalf-of權杖交換 - 只有在呼叫者透過 OAuth 傳入路徑向承載 JWT 進行身分驗證時才能使用。如果您的使用案例需要下游工具的每個使用者登入資料範圍,請在繫帶上設定傳入 OAuth。預計未來版本會支援每個使用者身分的 SigV4。

共同責任模型

繫帶建置在 AgentCore 執行期上。安全界限相同:IAM 或 JWT 身分驗證結合 microVM 隔離。繫帶不會在發起人和 microVM 之間新增安全層。

AWS 責任:
  • 在硬體層級保護基礎設施和microVM隔離

  • 作業系統核心修補

  • 適用於直接程式碼部署的語言執行期修補

  • 網路基礎設施安全性

  • 服務可用性和彈性

您的責任:
  • 代理程式程式碼安全性和相依性管理

  • IAM 存取控制和資源政策

  • 在執行階段工作階段中執行命令的安全性

  • Session-to-user映射強制執行

  • 輸入驗證和提示注入預防 - 包括驗證所有InvokeHarness輸入 (請參閱 信任界限和輸入驗證)

  • 模型組態驗證 - 例如 additionalParamsapiBasemodelId 欄位 (請參閱 模型組態參數)

  • 技能和指示來源 - 確保用於技能的 S3 儲存貯體、Git 儲存庫和 URLs 包含信任的內容 (請參閱 技能和指示)

  • 容器映像更新 (適用於容器部署) - 定期使用最新的安全基礎映像重建

  • 網路組態 (安全群組、VPC 端點、路由表)

如需完整的 AgentCore 執行期共同責任模型,請參閱 AgentCore 執行期的安全最佳實務

信任界限和輸入驗證

所有 InvokeHarnessInvokeAgentRuntimeCommand輸入都受信任。任何傳遞 IAM 或 JWT 身分驗證和授權閘道的委託人都可以存取完整的 microVM 工作階段,包括在集合上設定的工具和功能。繫帶不會淨化輸入、篩選內容區塊或強制執行行為限制。

如果您向未完全信任的最終使用者公開 (員工、外部消費者或第三方整合),請在將訊息傳遞至 之前,先驗證並淨化應用程式層中的訊息InvokeHarness。這包括分割內容區塊類型或您不希望分派的模型組態欄位。此模式與任何接受來自授權發起人承載的服務相同,例如 Lambda、Amazon API Gateway 和 Amazon SQS。

模型組態參數

中的 model 欄位InvokeHarnessadditionalParams接受 Bedrock、OpenAI 和 LiteLLM 組態。這些參數會以不變的方式傳遞至基礎模型提供者。繫帶不會驗證、篩選或限制這些參數。

可以設定的來電者additionalParams可以:

  • 將請求重新導向至任意端點 - LiteLLM 的 aws_bedrock_runtime_endpoint 參數會覆寫 Bedrock 端點 URL。發起人可以將已簽署的請求 - 包括 SigV4 簽章和工作階段登入資料 - 路由到信任模型組態中指定的端點。

  • 覆寫 HTTP 標頭 - OpenAI 的extra_headers參數會插入或覆寫傳出請求給模型提供者的 HTTP 標頭,包括 Authorization標頭。

  • 嘗試 IAM 角色假設 - LiteLLM 的 aws_role_name 參數會指示執行期在呼叫模型提供者之前擔任不同的 IAM 角色。根據執行角色的sts:AssumeRole許可,嘗試成功或失敗。

  • 變更目標模型或區域 - modelIdapiBase 欄位可以將推論完全重新導向至不同的模型、區域或提供者。

如果您的應用程式向未完全信任的發起人公開InvokeHarness功能,請考慮在應用程式層中實作輸入驗證。範例包括:

  • 在轉送請求之前分割或允許列出model欄位

  • 驗證或移除 additionalParamsapiBasemodelId

  • 如果不需要角色切換,sts:AssumeRole則拒絕執行角色

  • 使用 VPC 安全群組來擴展繫帶網路存取

技能和指示

技能是在調用時從 Amazon S3 或 Git 擷取的 Markdown 和指令碼套件,並注入代理程式的內容。繫帶會將所有技能內容視為信任的輸入。在將技能的內容或來源提供給客服人員之前,不會對其進行驗證、淨化或檢查。

您負責:

  • 確保技能來源 (S3 儲存貯體、Git 儲存庫、URLs) 受到信任和存取控制

  • 檢閱技能內容 - 包括 Markdown 說明和任何內嵌指令碼 - 之後再設定在工具上

  • 控制哪些委託人可以覆寫每次調用skills的欄位,因為發起人可以將繫帶指向任意 S3 或 Git 來源

每個InvokeHarness呼叫都可以覆寫技能。如果您的應用程式轉送發起人提供的輸入到 InvokeHarness,發起人可以提供自己的技能來源,其中包含任意指示或指令碼。緩解措施的範例包括:

  • 從來電者提供的請求中分割或忽略skills欄位

  • 允許列出允許的 S3 字首或 Git 儲存庫

可觀測性和追蹤相互關聯性

該機制會自動將相互關聯識別符傳播到下游 AgentCore 基本概念 (閘道、記憶體、程式碼解譯器、瀏覽器),以在 CloudWatch 中啟用統一追蹤檢視。這些識別符僅用於可觀測性,絕不會用於授權或資料存取決策。

網路組態

根據預設,掛載工作階段會在公有網路上執行。若要存取私有資源 (資料庫、內部 APIs、私有子網路),請在 VPC 中部署繫帶。

範例
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "VpcHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{"agentCoreRuntimeEnvironment": {"networkConfiguration": {"networkMode": "VPC", "vpcConfig": {"securityGroupIds": ["sg-0abc1234def56789a"], "subnetIds": ["subnet-0abc1234def56789a"]}}}}'
AgentCore CLI
agentcore add harness --name internal-agent \ --network-mode VPC \ --subnets subnet-0abc1234def56789a \ --security-groups sg-0abc1234def56789a agentcore deploy
重要

繫帶會在每個工作階段開始時從 Amazon ECR Public 提取其應用程式容器。在 VPC 模式下執行時,VPC 必須允許傳出存取 public.ecr.aws。Amazon ECR Public 不支援 VPC 端點,因此您的 VPC 必須具有路由至網際網路閘道的 NAT 閘道。如果無法使用此連線,由於映像提取逾時,工作階段將無法啟動。

如需其他網路組態指引,請參閱設定 AgentCore 執行期和內建工具 VPC 組態。如需透過 PrivateLink 的傳入 API 連線,請參閱 VPC 介面端點

傳入 OAuth

要求發起人出示由已設定身分提供者發出的有效 JWT,然後才能叫用該集合。AgentCore Identity 透過代理程式執行最終使用者身分,因此下游工具可以使用範圍使用者憑證呼叫 APIs,而不是共用服務帳戶。

範例
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "OAuthHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --authorizer-configuration '{"customJWTAuthorizer": {"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/<POOL_ID>/.well-known/openid-configuration", "allowedClients": ["<CLIENT_ID>"]}}'

使用承載字符而非 SigV4 登入資料叫用:

curl -X POST "https://bedrock-agentcore.us-west-2.amazonaws.com/harnesses/invoke?harnessArn=${HARNESS_ARN}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${ID_TOKEN}" \ -H "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: $(uuidgen)" \ -d '{"messages": [{"role": "user", "content": [{"text": "Hi"}]}]}'
AgentCore CLI
agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} agentcore deploy

使用承載字符調用:

agentcore invoke --harness MyNewHarness --bearer-token "{token}" "Hello"

當您的身分提供者的 OIDC 探索端點只能透過 PrivateLink 存取時,請將私有端點旗標新增至 CUSTOM_JWT 授權方。使用服務受管 VPC 端點:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-vpc-id vpc-0abc1234def56789a \ --private-endpoint-subnets subnet-0abc1234def56789a,subnet-0def5678abc12349b \ --private-endpoint-ip-type IPV4 \ --private-endpoint-security-groups sg-0abc1234def56789a agentcore deploy

或指向現有的 VPC Lattice 資源組態,而非受管 VPC 端點:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-lattice-arn rcfg-0abc1234def56789a agentcore deploy
注意

私有端點旗標僅適用於 --authorizer-type CUSTOM_JWT--private-endpoint-vpc-id--private-endpoint-lattice-arn是互斥的,請選擇一個。使用 --private-endpoint-vpc-id時,需要 --private-endpoint-subnets--private-endpoint-ip-type(IPV4IPV6)。

如需完整的 OAuth 設定流程,請參閱傳入 JWT 授權方

Interactive

agentcore 在專案目錄中執行,選取新增 ,選擇繫結 ,然後進入進階設定 。使用空格 啟用身分驗證 (以及 VPC 存取的網路),然後按 Enter

  1. 選擇授權方類型: AWS IAM (預設) 或 OIDC 承載字符身分驗證的自訂 JWT

    選取繫帶授權方類型
  2. 針對自訂 JWT ,輸入 OIDC 探索 URL。

    設定自訂 JWT:探索 URL
  3. 選取要驗證的字符限制 - 允許對象、允許用戶端、允許範圍或自訂宣告。

    選取要設定的 JWT 限制條件
  4. 選擇繫帶如何到達 IdP 探索端點: (可公開連線)、VPC Lattice 資源受管 VPC 端點 (PrivateLink)。

    IdP 探索端點的 PrivateLink 選項
  5. 針對網路 ,選擇 VPC 模式並提供子網路 IDs和安全群組 IDs。

    輸入 VPC IDs

確認精靈,然後執行 agentcore deploy以套用。

進一步了解:AgentCore Identity · 傳入 JWT 授權方 · 傳出憑證

閘道政策

透過 AgentCore Gateway 提供工具時,以 Cedar 為基礎的政策會觸發每次呼叫:誰可以呼叫哪個工具、哪些條件、哪些引數。

進一步了解:AgentCore 政策 · 常見模式

執行角色政策

繫帶會擔任您提供的 IAM 執行角色。角色的信任政策必須允許 AgentCore 服務主體擔任該角色:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "bedrock-agentcore.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

呼叫者所需的 IAM 許可

Harness APIs需要對集合資源和基礎 AgentCore 執行期和選用 AgentCore 記憶體資源的許可。下表列出每個 API 所需的動作:

API 必要的 IAM 動作

InvokeHarness

bedrock-agentcore:InvokeHarness, bedrock-agentcore:InvokeAgentRuntime

InvokeAgentRuntimeCommand

bedrock-agentcore:InvokeAgentRuntimeCommand, bedrock-agentcore:InvokeAgentRuntime

CreateHarness

bedrock-agentcore:CreateHarness, bedrock-agentcore:CreateAgentRuntime, bedrock-agentcore:CreateMemory

UpdateHarness

bedrock-agentcore:UpdateHarness, bedrock-agentcore:UpdateAgentRuntime, bedrock-agentcore:UpdateMemory

DeleteHarness

bedrock-agentcore:DeleteHarness, bedrock-agentcore:DeleteAgentRuntime, bedrock-agentcore:DeleteMemory

GetHarness

bedrock-agentcore:GetHarness

ListHarnesses

bedrock-agentcore:ListHarnesses

CreateHarnessEndpoint

bedrock-agentcore:CreateHarnessEndpoint, bedrock-agentcore:CreateAgentRuntimeEndpoint

UpdateHarnessEndpoint

bedrock-agentcore:UpdateHarnessEndpoint, bedrock-agentcore:UpdateAgentRuntimeEndpoint

DeleteHarnessEndpoint

bedrock-agentcore:DeleteHarnessEndpoint, bedrock-agentcore:DeleteAgentRuntimeEndpoint

GetHarnessEndpoint

bedrock-agentcore:GetHarnessEndpoint

ListHarnessEndpoints

bedrock-agentcore:ListHarnessEndpoints

ListHarnessVersions

bedrock-agentcore:ListHarnessVersions

大多數動作都會使用繫帶 ARN 做為資源範圍:arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>。端點動作也會使用繫帶端點 ARN:arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>/harness-endpoint/<endpointName>

GetHarnessEndpointUpdateHarnessEndpointDeleteHarnessEndpoint動作需要繫帶 ARN 和端點 ARN。 CreateHarnessEndpoint只需要繫帶 ARN。端點尚不存在,因此不需要端點 ARN。當您叫用自訂端點時, InvokeHarness 會同時InvokeAgentRuntimeCommand需要繫帶 ARN 和端點 ARN。

範例執行角色政策

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:<region>:<accountId>:*" ] }, { "Sid": "EcrPublicTokenAccess", "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "StsForEcrPublicPull", "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" }, { "Sid": "XRayTracingAccess", "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*" }, { "Sid": "CloudWatchLogsGroup", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*" }, { "Sid": "CloudWatchLogsDescribeGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:*" }, { "Sid": "CloudWatchLogsStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" }, { "Sid": "CloudWatchMetricsPublish", "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "AgentCoreWorkloadIdentity", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreBrowserDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:browser/*" }, { "Sid": "AgentCoreCodeInterpreterDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:code-interpreter/*" } ] }

當您堆疊繫帶專案時,AgentCore CLI 會自動建立具有這些許可的角色。上述政策適用於您自己建立角色的情況。

注意

上述BedrockModelInvocation範例陳述式允許調用您帳戶中所有區域和所有 Bedrock 資源的所有基礎模型。若要縮小範圍,請將資源 ARNs 取代為特定推論描述檔,這可讓您使用單一 ARN 跨模型和區域路由請求。例如:與所有允許的區域 arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId>配對arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>

對於生產工作負載,將Resource值範圍縮小到您設備所需的特定 ARNs,而不是使用 "*"

選用功能的其他許可

以下是範例政策,您可以根據您繫帶使用的功能,將其附加到您的執行角色。遵循最低權限原則 - 僅授予您的繫帶代理程式推論所需的特定工具和登入資料。如需預留位置定義預留位置參考,請參閱 。

私有 ECR 存取 (自訂容器映像)

當您的繫帶使用自訂容器的私有 ECR 映像時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:<ecrRegion>:<ecrAccountId>:repository/<ecrRepoName>" }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

AgentCore 記憶體

當您的繫帶使用客戶擁有的記憶體執行個體時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreMemory", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:memory/<memoryId>" } ] }

AgentCore 瀏覽器 (自訂)

當您的繫帶使用客戶擁有的自訂瀏覽器資源時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreBrowserCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:browser-custom/<browserCustomId>" } ] }

AgentCore 程式碼解譯器 (自訂)

當您的繫帶使用客戶擁有的自訂程式碼解譯器時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreCodeInterpreterCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:code-interpreter-custom/<codeInterpreterCustomId>" } ] }

AgentCore Gateway

當您的繫帶使用以 SigV4 傳入身分驗證設定的閘道時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreGatewayAccess", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:gateway/<gatewayId>" } ] }

Amazon S3 和 Git 中的技能來源

當您的繫帶從 Amazon S3 來源擷取技能時,請新增此政策。執行角色會列出並下載儲存貯體字首下的技能物件。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreSkillS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<skillBucket>", "arn:aws:s3:::<skillBucket>/*" ] } ] }

若要從私有 Git 儲存庫擷取技能,集合會從 API 金鑰登入資料提供者讀取個人存取字符。針對保留字符的登入資料提供者,授予如下所示的 API 金鑰登入資料提供者政策。

API 金鑰登入資料提供者 (OpenAI、Gemini、LiteLLM 或 MCP 標頭 ARN 參考)

當您的繫帶使用適用於 OpenAI、Gemini 或 LiteLLM 等模型提供者的 API 金鑰登入資料提供者時,請新增此政策。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreApiKeyTokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreApiKeyTokenVaultPerKey", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/apikeycredentialprovider/<apiKeyName>" }, { "Sid": "AgentCoreApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/apikey/<apiKeyName>-*" } ] }

OAuth2 登入資料提供者 (OAuth 保護的閘道)

當您的繫帶針對 OAuth 保護的閘道工具使用 OAuth2 登入資料提供者時,請新增此政策。 OAuth

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreOAuth2TokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreOAuth2TokenVaultPerProvider", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/oauth2credentialprovider/<oauthProviderName>" }, { "Sid": "AgentCoreOAuth2Secret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/oauth2/<oauthProviderName>-*" } ] }

預留位置參考

將上述政策中的下列預留位置取代為您的環境特有的值:

預留位置 說明

<region>

部署資源 AWS 的區域。

<accountId>

AWS 您的帳戶 ID。

<agentName>

您的繫帶代理程式的名稱。

<memoryId>

AgentCore 記憶體資源的 ID。

<browserCustomId>

自訂瀏覽器資源的 ID。

<codeInterpreterCustomId>

自訂程式碼解譯器資源的 ID。

<gatewayId>

AgentCore Gateway 資源的 ID。

<apiKeyName>

API 金鑰登入資料提供者的名稱。

<skillBucket>

存放技能檔案的 S3 儲存貯體名稱。

<oauthProviderName>

OAuth2 登入資料提供者的名稱。

<ecrRegion>

託管 ECR 儲存庫的區域。

<ecrAccountId>

擁有 ECR 儲存庫 AWS 的帳戶 ID。

<ecrRepoName>

ECR 儲存庫的名稱。

注意

Secrets Manager 資源-*的結尾會考量 Secrets Manager 附加至秘密 ARNs 的隨機尾碼。