View a markdown version of this page

指定存取閘道目標的授權類型和憑證 - Amazon Bedrock AgentCore

指定存取閘道目標的授權類型和憑證

CreateGatewayTarget 請求內文中,您可以在credentialProviderConfigurations陣列中指定登入資料提供者組態。組態取決於您設定的傳出授權類型。如需登入資料提供者組態 API 結構的參考資訊,請參閱 CredentialProviderConfiguration。如需傳出授權的詳細資訊,請參閱設定閘道的傳出授權

若要進一步了解登入資料提供者組態,請選取主題:

AgentCore Gateway 服務角色 (IAM) 授權

如果您透過目標的 AgentCore Gateway 服務角色使用 IAM 授權,請將 指定credentialProviderTypeGATEWAY_IAM_ROLE 。組態取決於您的目標類型。

對於 Lambda、API Gateway、Smithy 和 Connector 目標

不需要iamCredentialProvider組態,因為 AgentCore Gateway 服務已經知道目標服務名稱。僅使用 credentialProviderType組態,如下列範例所示:

{ "credentialProviderType": "GATEWAY_IAM_ROLE" }

對於 MCP 伺服器和 OpenAPI 目標

對於 MCP 伺服器和 OpenAPI 目標,您還必須提供用於AWS 簽署第 4 版 (Sig V4) 簽署iamCredentialProvider的服務名稱。service 欄位是必要的。region 欄位為選用,預設為閘道的區域。

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

下表說明 iamCredentialProvider 物件中的欄位:

欄位 必要 描述

service

用於 SigV4 簽署 AWS 的服務名稱。此值必須符合目標在驗證 SigV4 簽章時預期的服務名稱。以下是常見的值:

  • bedrock-agentcore – 適用於託管在 Amazon Bedrock AgentCore 上的 MCP 伺服器,例如執行期 (請參閱在 AgentCore 執行期中部署 MCP 伺服器) 或其他閘道。

  • execute-api – 適用於 Amazon API Gateway 後方的 MCP 伺服器或 OpenAPI 目標。

  • lambda – 適用於 Lambda 函數 URLs MCP 伺服器。

region

SigV4 簽署 AWS 的區域。如果省略, 會預設為閘道的區域。

OAuth 授權

如果您使用 OAuth 授權,請將 指定credentialProviderTypeOAUTH 。在 credentialProvider 欄位映射的 物件中,將oauthCredentialProvider欄位名稱映射至 OAuthCredentialProvider 物件,並根據您的傳出授權設定提供值。

OAuthCredentialProvider 的結構會根據您設定的身分驗證模式類型而有所不同。若要進一步了解不同的身分驗證模式,請參閱支援的身分驗證模式

  • 如果您設定machine-to-machine身分驗證,也稱為用戶端憑證授予或 2 段式 OAuth (2LO),請遵循用戶端憑證索引標籤中的結構。

  • 如果您設定使用者委派的存取權,也稱為授權碼授予或 3 邊 OAuth (3LO),請遵循授權碼索引標籤中的結構。

  • 如果您設定on-behalf-of權杖交換,將已驗證的使用者身分傳播到下游服務,或取得具有演員內容的存取權杖,請遵循權杖交換 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. 將 指定grantType為 ,AUTHORIZATION_CODE並在 defaultReturnUrl 欄位中包含取得授權碼後要重新導向最終使用者瀏覽器的 URL,如下列範例所示:

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

    若要進一步了解 3LO 身分驗證,請參閱 OAuth 2.0 授權 URL 工作階段繫結。

Token exchange (On-behalf-of)
  1. 將 指定grantTypeTOKEN_EXCHANGE。閘道會透過登入資料提供者,將傳入使用者的存取權杖交換為目標範圍的權杖。在 中包含任何 IdP 特定參數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 還需要 audience 參數subject_token_type。如需詳細資訊,請參閱您的身分提供者的文件和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 傳遞授權

如果您希望閘道將承載字符從傳入的請求直接傳遞到下游目標,而不進行任何修改,請將 指定credentialProviderTypeJWT_PASSTHROUGH。閘道會驗證傳入字符,然後將其轉送至傳出請求中的目標。當目標服務使用原始呼叫者的字符處理自己的授權時,這很有用。

注意

JWT_PASSTHROUGH 僅適用於 HTTP 目標 (傳遞和 AgentCore 執行期)。

{ "credentialProviderType": "JWT_PASSTHROUGH" }