View a markdown version of this page

指定访问网关目标的授权类型和凭据 - Amazon Bedrock AgentCore

指定访问网关目标的授权类型和凭据

CreateGatewayTarget请求正文中,您可以在credentialProviderConfigurations数组中指定凭证提供程序配置。配置取决于您设置的出站授权类型。有关证书提供者配置的 API 结构的参考信息,请参阅CredentialProviderConfiguration。有关出站授权的更多信息,请参阅为网关设置出站授权

要了解有关凭据提供者配置的更多信息,请选择一个主题:

AgentCore 网关服务角色 (IAM) 授权

如果您通过 AgentCore 网关服务角色对目标使用 IAM 授权,请指定credentialProviderTypeGATEWAY_IAM_ROLE。配置取决于您的目标类型。

对于 Lambda、API Gateway、Smithy 和 Connector 目标

不需要iamCredentialProvider配置,因为 AgentCore 网关服务已经知道目标服务名称。仅使用credentialProviderType配置,如以下示例所示:

{ "credentialProviderType": "GATEWAY_IAM_ROLE" }

适用于 MCP 服务器和 OpenAPI 目标

对于 MCP 服务器和 OpenAPI 目标,您还必须提供iamCredentialProviderAWS 用于签名版本 4 (Sig V4) 签名的服务名称。service 字段为必填项。该region字段是可选的,默认为网关的区域。

{ "credentialProviderType": "GATEWAY_IAM_ROLE", "credentialProvider": { "iamCredentialProvider": { "service": "execute-api", "region": "us-west-2" } } }

下表描述了iamCredentialProvider对象中的字段:

字段 必填 描述

service

用于 SigV4 签名的 AWS 服务名称。此值必须与目标在验证 Sigv4 签名时期望的服务名称相匹配。以下是常用值:

  • bedrock-agentcore— 适用于托管在 Amazon Bedrock 上的 MCP 服务器 AgentCore,例如运行时(参见在 AgentCore 运行时部署 MCP 服务器)或其他网关。

  • execute-api— 适用于 MCP 服务器或 Amazon API Gateway 后面的 OpenAPI 目标。

  • lambda— 适用于 Lambda 函数网址后面的 MCP 服务器。

region

SigV4 签名的 AWS 区域。如果省略,则默认为网关的区域。

OAuth 授权

如果您使用的是 OAuth 授权,请将指定为。credentialProviderType OAUTHcredentialProvider字段映射到的对象中,将oauthCredentialProvider字段名称映射到OAuthCredentialProvider对象,并根据您的出站授权设置提供值。

的结构因您设置的身份验证模式的类型而OAuthCredentialProvider异。要了解有关不同身份验证模式的更多信息,请参阅支持的身份验证模式

  • 如果您设置了机器对机器身份验证(也称为客户端凭据授予或双方 OAuth (2LO)),请按照 “客户端凭据” 选项卡中的结构进行操作。

  • 如果您设置了用户委托的访问权限(也称为授权码授予或三条腿的 OAuth (3LO)),请按照 “授权码” 选项卡中的结构进行操作。

  • 如果您将代币交换设置为将经过身份验证的用户的身份传播到下游服务,或者通过参与者上下文获取访问令牌,请按照 Token e xchange () 选项卡中的结构进行操作。On-behalf-of

选择以下方法之一:

Client credentials
  1. 指定grantTypeCLIENT_CREDENTIALS,如以下示例所示:

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "CLIENT_CREDENTIALS", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }
Authorization code
  1. 指定 a grantType s,AUTHORIZATION_CODE并在defaultReturnUrl字段中包含获取授权码后将最终用户的浏览器重定向到的 URL,如以下示例所示:

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "AUTHORIZATION_CODE", "defaultReturnUrl": "string", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }

    要了解有关 3LO 身份验证的更多信息,请参阅 OAuth 2.0 授权网址会话绑定。

Token exchange (On-behalf-of)
  1. grantType 指定为 TOKEN_EXCHANGE。网关通过凭证提供商将入站用户的访问令牌交换为目标范围的令牌。在中包含任何 IdP-specific 参数customParameters。有关配置凭据提供程序的更多信息,请参阅On-behalf-of 令牌交换

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "TOKEN_EXCHANGE", "scopes": [ "string", ... ], "customParameters": { "subject_token_type": "urn:ietf:params:oauth:token-type:access_token" } } } }
    注意

    customParameters字段将值直接传递到身份提供商的令牌端点。所需参数因提供商而异。例如,除了 Okta 还需要subject_token_type一个audience参数。有关详细信息,请参阅您的身份提供商的文档和On-behalf-of 令牌交换

API 密钥授权

如果您设置 API 密钥授权,则将指定credentialProviderTypeAPI_KEY。在credentialProvider字段映射到的对象中,将apiKeyCredentialProvider字段名称映射到ApiKeyCredentialProvider对象,并根据您的出站授权设置提供值。以下 JSON 显示了结构:

{ "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "string", "credentialLocation": "HEADER" | "QUERY_PARAMETER", "credentialParameterName": "string", "credentialPrefix": "string" } } }

来电者 IAM 证书授权

如果您希望网关使用调用者的 IAM 身份和权限来签署对下游目标的请求,请指定credentialProviderTypeCALLER_IAM_CREDENTIALS。使用此授权类型,网关代表网关调用者使用 Sigv4 向下游目标发出请求。这允许下游目标根据最初调用网关的人来应用 IAM 策略。

注意

CALLER_IAM_CREDENTIALS仅适用于具有AWS_IAMAUTHENTICATE_ONLY作为授权者类型的网关。

{ "credentialProviderType": "CALLER_IAM_CREDENTIALS" }

JWT 直通授权

如果您希望网关不加修改地将传入请求中的持有者令牌直接传递到下游目标,请指定 a credentialProviderType s JWT_PASSTHROUGH。网关验证入站令牌,然后将其转发到出站请求中的目标。当目标服务使用原始调用者的令牌处理自己的授权时,这很有用。

注意

JWT_PASSTHROUGH仅适用于 HTTP 目标(直通和 AgentCore 运行时)。

{ "credentialProviderType": "JWT_PASSTHROUGH" }