View a markdown version of this page

安全性和访问控制 - Amazon Bedrock AgentCore

安全性和访问控制

该安全带为您提供了与其他安全原语相同的安全原语 AgentCore,并通过配置进行连接。

  • 孤立执行。在运行时,每个会话都在自己的 Firecracker microVM 中运行。AgentCore 没有共享状态,没有共享文件系统。

  • IAM 执行角色。该工具承担您拥有的 IAM 角色,可配置为包括 Bedrock、ECR 和它所涉及 AgentCore 的原语。 CloudWatch请参阅下面的执行角色策略示例。

  • IAM 权限模型。Harness API 需要对线束资源和底层AgentCore 运行时资源的权限。例如,调用InvokeHarness需要对线束 ARN bedrock-agentcore:InvokeAgentRuntime 具有bedrock-agentcore:InvokeHarness和权限。同样的模式也适用于控制平面操作:DeleteHarness要求bedrock-agentcore:UpdateAgentRuntimebedrock-agentcore:DeleteAgentRuntimeUpdateHarness要求等。有关完整列表,请参阅执行角色策略

  • 入站 OAuth Support。JWT 配置的 Harness 资源要求呼叫者在调用安全带之前出示由已配置的身份提供商颁发的有效 JWT。AgentCore I@@ d entity 通过代理线程化最终用户身份,因此下游工具可以使用限定范围的用户凭据而不是共享服务帐户调用 API。

  • VPC。将 Harness 会话连接到您的 VPC,以私密访问内部资源。

  • 网关上的策略。当通过 AgentCore Gateway 提供工具时,可以配置 Cedar-based 策略来控制每次调用:谁可以调用哪个工具,在什么条件下,使用哪些参数。

注意

Sigv4 和每个用户的身份。当呼叫者使用 Sigv4 (AWS IAM) 进行身份验证时,该工具不会将每个用户的身份传播到下游工具调用中。这意味着AgentCore 身份令牌库中的每用户凭证范围界定功能(例如用户范围的 OAuth 令牌存储和代替令牌交换)仅在呼叫者通过 OAuth 入站路径向 Bearer JWT 进行身份验证时才可用。如果您的用例需要为下游工具设定每个用户的凭据范围,请在工具上配置入站 OAuth。计划在 future 版本中提供对每用户身份的 Sigv4 支持。

责任共担模式

该安全带建立在 R AgentCore untime 之上。安全边界是相同的:IAM 或 JWT 身份验证与 microVM 隔离相结合。该安全带不会在调用方和 microVM 之间添加安全层。

AWS 职责:
  • 硬件级别的安全基础设施和 microVM 隔离

  • 操作系统内核修补

  • 用于直接部署代码的语言运行时补丁

  • 网络基础设施安全

  • 服务可用性和弹性

你的职责:
  • 代理代码安全和依赖关系管理

  • IAM 访问控制和资源策略

  • 运行时会话中执行的命令的安全性

  • Session-to-user 测绘执法

  • 输入验证和提示注入预防-包括验证所有InvokeHarness输入(参见信任边界和输入验证

  • 模型配置验证-例如additionalParamsapiBase、和modelId字段(请参阅模型配置参数

  • 技能和说明来源-确保用于技能的 S3 存储桶、Git 存储库和网址包含可信内容(参见技能和说明

  • 容器镜像更新(用于容器部署)-定期使用最新的安全基础镜像进行重建

  • 网络配置(安全组、VPC 终端节点、路由表)

有关完整的 AgentCore 运行时分担责任模型,请参阅 AgentCore 运行时安全最佳实践

信任边界和输入验证

所有InvokeHarnessInvokeAgentRuntimeCommand输入都是可信的。任何通过 IAM 或 JWT 身份验证和授权门禁的委托人都可以访问完整的 microVM 会话,包括该工具上配置的工具和功能。该工具不会清理输入、筛选内容块或强制执行行为约束。

如果您向不完全信任的最终用户(员工、外部消费者或第三方集成)公开该工具,请在将消息传递给应用程序层之前对其进行验证和消毒。InvokeHarness这包括删除您不想分发的内容块类型或模型配置字段。这与任何接受来自授权调用者的有效负载的服务(例如 Lambda、Amazon API Gateway 和 Amazon SQS)的模式相同。

模型配置参数

中的model字段InvokeHarness接受 additionalParams 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字段或将其列入许可名单

  • 正在验证或删除additionalParamsapiBase、和 modelId

  • 如果不需要角色切换,则拒绝sts:AssumeRole执行角色

  • 使用 VPC 安全组确定线束网络访问的范围

技能和说明

技能是指套件在调用时从 Amazon S3 或 Git 中获取并注入代理上下文的降价和脚本捆绑包。安全带将所有技能内容视为可信输入。在向代理提供内容或技能来源之前,它不会对内容或技能来源进行验证、消毒或检查。

您有责任做到以下几点:

  • 确保技能来源(S3 存储桶、Git 存储库、URL)可信且受访问控制

  • 在安全带上配置技能内容之前,请先查看技能内容(包括 markdown 指令和任何嵌入式脚本)

  • 控制哪些委托人可以在每次调用时覆盖该skills字段,因为调用者可以将工具指向任意 S3 或 Git 源

每次InvokeHarness通话可以重写技能。如果您的应用程序将来电者提供的输入转发给InvokeHarness,则呼叫者可以提供自己的技能来源,其中包含任意指令或脚本。缓解措施的例子包括:

  • 从来电者提供的请求中skills删除或忽略该字段

  • 允许列入允许的 S3 前缀或 Git 存储库

可观测性和迹线相关性

该工具会自动将关联标识符传播到下游 AgentCore 基元(网关、内存、代码解释器、浏览器),以便在中启用统一的跟踪视图。 CloudWatch这些标识符仅用于可观察性——它们从不用于授权或数据访问决策。

网络配置

默认情况下,线束会话在公共网络上运行。要访问私有资源(数据库、内部 API、私有子网),请在您的 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 配置。有关通过进行的入站 API 连接 PrivateLink,请参阅 VPC 接口终端节点

入站 OAuth

要求呼叫者在调用安全带之前出示由已配置的身份提供商签发的有效 JWT。AgentCore I@@ d entity 通过代理线程化最终用户身份,因此下游工具可以使用限定范围的用户凭据而不是共享服务帐户调用 API。

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-typeIPV4IPV6)均为必填项。

有关完整的 OAuth 设置流程,请参阅入站 JWT 授权方。

Interactive

agentcore在项目目录中运行,选择添加,选择 H arn ess,然后进入高级设置。使用 Spac e 启用身份验证(以及 VPC 访问的网络),然后按 Enter

  1. 为 OIDC 持有者令牌身份验证选择授权者类型: AWS IAM(默认)或自定义 JWT

    选择安全带授权者类型
  2. 对于自定义 JWT,请输入 OIDC 发现 URL。

    配置自定义 JWT:发现 URL
  3. 选择要验证的代币限制-允许的受众、允许的客户、允许的范围或自定义声明。

    选择要配置的 JWT 约束
  4. 选择安全带到达 IdP 发现端点的方式:(可公开访问)、VP C Lattice 资源或托管 V PC 终端节点()。PrivateLink

    PrivateLink IdP 发现端点的选项
  5. 对于网络,请选择 VPC 模式并提供子网 ID 和安全组 ID。

    输入 VPC 子网 ID

确认向导,然后运行agentcore deploy以应用。

了解更多:AgentCore 身份·入站 JWT 授权机构·出站凭证

网关策略

当通过 AgentCore Gateway 提供工具时, Cedar-based 策略会限制每个调用:谁可以调用哪个工具,在什么条件下,用哪些参数。

了解更多:AgentCore 政策·常见模式

执行角色策略

该工具承担您提供的 IAM 执行角色。角色的信任策略必须允许 AgentCore 服务主体承担以下责任:

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

来电者必需的 IAM 权限

Harness API 需要对线束资源和底层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>

GetHarnessEndpointUpdateHarnessEndpoint、和DeleteHarnessEndpoint操作需要安全带 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 资源。要缩小范围,请将资源 ARN 替换为特定的推理配置文件,这样您就可以使用单个 ARN 跨模型和区域路由请求。例如:与所有允许的区域arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId>配对arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>

对于生产工作负载,请将Resource值范围缩小到您的线束需要而不是使用的"*"特定 ARN。

可选功能的额外权限

以下是您可以根据您的线束使用的功能附加到执行角色的示例策略。遵循最低权限原则-仅向您的线束代理授予其推理所需的特定工具和证书。有关占位符占位符参考的定义,请参阅。

私有 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 网关

当您的线束使用配置了 Sigv4 入站身份验证的网关时,请添加此策略。

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

亚马逊 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-protected

当您的安全工具使用 OAuth2 凭证提供商作为网关工具时,请添加此策略。 OAuth-protected

{ "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>-*" } ] }

占位符参考

将上述策略中的以下占位符替换为特定于您的环境的值:

Placeholder 说明

<region>

您的资源部署的地 AWS 区。

<accountId>

您的 AWS 账户 ID。

<agentName>

你的安全带代理的名字。

<memoryId>

您的 AgentCore 内存资源的 ID。

<browserCustomId>

您的自定义浏览器资源的 ID。

<codeInterpreterCustomId>

您的自定义代码解释器资源的 ID。

<gatewayId>

您的 AgentCore 网关资源的 ID。

<apiKeyName>

您的 API 密钥凭证提供商的名称。

<skillBucket>

存放您的技能文件的 S3 存储桶的名称。

<oauthProviderName>

您的 OAuth2 凭证提供商的名称。

<ecrRegion>

托管 ECR 存储库的区域。

<ecrAccountId>

拥有 ECR 存储库的 AWS 账户 ID。

<ecrRepoName>

您的 ECR 存储库的名称。

注意

Secrets Manager 资源的尾-*随机解释了 Secrets Manager 附加到机密 ARN 的随机后缀。