View a markdown version of this page

Configure la autorización de salida para su puerta de enlace - Amazon Bedrock AgentCore

Configure la autorización de salida para su puerta de enlace

La autorización de salida permite a AgentCore las pasarelas de Amazon Bedrock acceder de forma segura a los destinos de las pasarelas de enlace en nombre de los usuarios que se autenticaron y autorizaron durante la autorización de entrada.

AgentCore Gateway admite los siguientes tipos de autorización saliente:

  • Sin autorización (no se recomienda): algunos tipos de destino ofrecen la opción de omitir la autorización de salida. No se recomienda esta opción menos segura.

  • IAM-based autorización de salida: utilice la función de servicio de puerta de enlace para autenticar el acceso al destino de la puerta de enlace con la versión 4 de AWS Signature (Sig V4).

  • Credenciales de IAM de la persona que llama: la puerta de enlace utiliza las credenciales de IAM de la persona que llama para firmar las solicitudes dirigidas al destino. La pasarela asume una función en nombre de la persona que llama mediante el Servicio de Acceso Federado (FAS) y firma la solicitud saliente con la identidad de la persona que llama. Esto resulta útil cuando el servicio de destino necesita autorizar basándose en la identidad de la persona que llama originalmente y no en la función del servicio de puerta de enlace.

  • OAuth: un marco de autorización abierto que permite a una aplicación cliente acceder a los recursos. Puedes usar OAuth con un proveedor de identidades integrado o con uno personalizado. Para obtener más información, consulta OAuth 2.0. Puedes usar los siguientes tipos de concesiones de autorización de OAuth:

    • Concesión de credenciales de cliente: Machine-to-machine autenticación (también conocida como OAuth bidireccional). La aplicación cliente accede a los recursos en nombre de la aplicación y no en nombre del usuario.

    • Concesión de código de autorización: User-delegated acceso (también conocido como OAuth de tres vías). El usuario da su consentimiento para que la aplicación cliente acceda a los recursos en nombre del usuario.

    • Concesión de intercambio de tokens (On-behalf-of): la pasarela intercambia el token de acceso del usuario entrante por un nuevo token de acceso limitado que se dirige a un recurso descendente. El token intercambiado contiene tanto la identidad del usuario como la del agente, lo que permite a los servicios intermedios aplicar una autorización detallada en cada salto sin activar flujos de consentimiento adicionales. Para obtener más información, consulta el tema sobre el intercambio de fichas. On-behalf-of

  • Transferencia de token: la puerta de enlace pasa el token de autorización entrante directamente al destino sin modificarlo. El servicio de destino es responsable de validar el token. Esto requiere que la puerta de enlace utilice AUTHENTICATE_ONLY la autorización de entrada para que el token se valide pero se conserve para su reenvío.

  • Clave de API: utilice el AgentCore servicio para generar una clave de API para autenticar el acceso al destino de la puerta de enlace.

El tipo de autorización saliente que puede configurar depende del tipo de destino de puerta de enlace al que autorice el acceso:

Tipo de destino Sin autorización Función de servicio de puerta de enlace Credenciales de IAM de la persona que llama OAuth (credenciales de cliente) OAuth (código de autorización) OAuth (intercambio de fichas) Transferencia de fichas Clave de API

Etapa de API Gateway

No

No

No

No

No

Función de Lambda

No

No

No

No

No

No

No

Servidor MCP

No

No

Esquema OpenAPI

No

No

Esquema de Smithy

No

No

No

No

No

No

AgentCore Tiempo de ejecución (HTTP)

No

No

No

No

nota

Si utiliza una plantilla de proveedor de integración como destino, revise los tipos de autorización admitidos para las distintas plantillas en las Built-in plantillas de los proveedores de integración como destino.

Antes de añadir un destino a su puerta de enlace, debe configurar su autorización mediante uno de los métodos compatibles.

nota

Puede omitir este requisito previo si planea usar la consola de AWS administración o la AgentCore CLI para crear la puerta de enlace. Si utiliza alguna de estas herramientas, puede crear AgentCore automáticamente un rol de servicio para usted con los permisos necesarios para acceder al destino. Cada vez que añada un destino, los permisos necesarios se asociarán automáticamente a su función de servicio.

Selecciona un tema para obtener información sobre cómo configurar ese tipo de autorización:

Configure la autorización IAM-based de salida con un rol de servicio de puerta de enlace

IAM-based la autorización saliente le permite utilizar las credenciales de IAM del rol de servicio de puerta de enlace para autorizar con la AWS firma de la versión 4 (Sig V4). Esta opción permite que el AgentCore servicio Amazon Bedrock se autentique en los destinos de la puerta de enlace en nombre de las personas que llaman a la puerta de enlace.

Si utiliza esta opción, compruebe que el rol del servicio de puerta de enlace tenga permisos. bedrock-agentcore:InvokeGateway La puerta de enlace utiliza las credenciales del rol de servicio para la autenticación durante la invocación.

Configuración adicional para el servidor MCP y los destinos OpenAPI

Cuando utiliza la autorización de IAM-based salida con un servidor MCP o un destino OpenAPI, debe proporcionar una configuración adicional para la firma SigV4. EncredentialProviderConfigurations, incluya una iamCredentialProvider con los siguientes campos:

  • servicio (obligatorio): el nombre del AWS servicio utilizado para la firma de SigV4. Por ejemplo, bedrock-agentcore para los servidores MCP alojados en Amazon Bedrock AgentCore.

  • región (opcional): la AWS región para la firma de SigV4. Si no especificas una región, la puerta de enlace utilizará su propia región.

En el caso de los destinos Lambda, API Gateway y Smithy, no incluya el campo. iamCredentialProvider Estos tipos de objetivos solo admiten la GATEWAY_IAM_ROLE configuración básica concredentialProviderType. Para obtener más información sobre cómo especificar la configuración del proveedor de credenciales, consulte Autorización del rol de servicio (IAM) de AgentCore Gateway.

Prácticas recomendadas de seguridad para IAM-based la autorización de salida

La función de ejecución de la puerta de enlace se comparte entre todos los destinos configurados conGATEWAY_IAM_ROLE. Sus permisos son el límite superior que cualquier persona autorizada puede ejercer a través de la puerta de enlace. Siga estas prácticas recomendadas para limitar la exposición:

  • Limite la función de ejecución a los permisos mínimos: conceda solo los permisos necesarios en todos los destinos configurados. Evite los caracteres amplios Action o Resource comodín.

  • Utilice puertas de enlace independientes para distintos límites de confianza: si los objetivos tienen diferentes niveles de sensibilidad o atienden cargas de trabajo diferentes, despliéguelos detrás de puertas de enlace independientes con funciones de ejecución distintas.

  • Utilice el motor de políticas para restringir el acceso de las personas que llaman: en las pasarelas compartidas, utilice el motor de políticas para controlar qué personas que llaman pueden invocar qué objetivos, lo que limita el radio de alcance de los permisos de cada persona que llama.

Configura la autorización de salida con un cliente OAuth

Para configurar la autorización saliente con un cliente OAuth, debes utilizar el servicio de AgentCore identidad y especificar las credenciales de cliente que recibes al crear un cliente en un proveedor de identidades integrado (consulta Configuración y configuración del proveedor) o un proveedor de identidades personalizado.

Para configurar la autorización saliente con un cliente OAuth

  1. Registra tu aplicación cliente con un proveedor externo compatible.

  2. Recibirás un ID de cliente, un secreto de cliente y, posiblemente, otros valores a los que harás referencia cuando configures la autorización de salida.

  3. Siga uno de los pasos que se indican a continuación, en función de sus requisitos:

  4. Tome nota del ARN de la credencial generado credentialProviderArn (en la API) y del ARN secreto de Secrets AWS Manager secretArn (en la API). Utilizará estos valores al crear su destino de puerta de enlace.

  5. (Si utiliza una función de servicio de puerta de enlace personalizada) Adjunte la siguiente política basada en la identidad a su función de servicio de puerta de enlace:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/oauth2credentialprovider/CredentialName" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }

    Sustituya los valores de los siguientes campos:

    • En la GetWorkloadAccessToken declaración, sustituya el GatewayName de la Resource lista por el nombre de su puerta de enlace.

    • En la GetResourceOauth2Token declaración, sustituya el valor de la Resource lista por el ARN de la credencial que acaba de generar.

    • En la GetSecretValue declaración, sustituya el valor de la Resource lista por el ARN del AWS secreto devuelto en la respuesta al generar la credencial.

Ejemplos de configuración de la autorización del cliente de OAuth

En los siguientes ejemplos, se muestra cómo configurar la autorización a través de un cliente OAuth para el destino de la puerta de enlace:

ejemplo
AgentCore CLI
  1. Los comandos de credenciales de la AgentCore CLI deben ejecutarse dentro de un proyecto agentcore existente. Si aún no tiene uno, cree primero un proyecto con. agentcore create

    agentcore add credential \ --name oauth-credential-provider \ --type oauth \ --discovery-url <DiscoveryUrl> \ --client-id <ClientId> \ --client-secret <ClientSecret> agentcore deploy
AWS CLI
  1. aws bedrock-agentcore-control create-oauth2-credential-provider \ --name oauth-credential-provider \ --credential-provider-vendor CustomOAuth2 \ --oauth2-provider-config-input '{ "customOAuth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "<DiscoveryUrl>" }, "clientId": "<ClientId>", "clientSecret": "<ClientSecret>" } }'
Boto3
  1. import boto3 client = boto3.client("bedrock-agentcore-control") client.create_oauth2_credential_provider( name="oauth-credential-provider", credentialProviderVendor="CustomOAuth2", oauth2ProviderConfigInput={ "oauthDiscovery": { "discoveryUrl": "<DiscoveryUrl>" }, "clientId": "<ClientId>", "clientSecret": "<ClientSecret>" } )

Configura la autorización de salida con una clave de API

Para configurar la autorización de salida con una clave de API, utilice el servicio de AgentCore identidad y especifique una clave de API que reciba de un proveedor de identidad compatible.

Para configurar la autorización saliente con un cliente OAuth

  1. Registra tu aplicación cliente con un proveedor externo compatible.

  2. Configura una clave de API para el servicio del proveedor. Toma nota de los siguientes valores, que especificarás cuando agregues el destino de la puerta de enlace:

    • Ubicación de las credenciales: si la clave de API debe colocarse en el encabezado o como parámetro de consulta.

    • Prefijo de credencial: el prefijo de la credencial (p. ej. Portador).

  3. Siga uno de los pasos que se indican a continuación, en función de sus necesidades:

  4. Toma nota de los siguientes valores, que especificarás cuando agregues el destino de la puerta de enlace:

    • ARN del proveedor de credenciales: un nombre de recurso de Amazon (ARN) generado para el proveedor de credenciales.

    • Nombre: el nombre que le diste a la clave de API.

    • ARN secreto: un ARN secreto de AWS Secrets Manager generado para la clave de API.

  5. (Si utiliza una función de servicio de puerta de enlace personalizada) Adjunte la siguiente política basada en la identidad a su función de servicio de puerta de enlace:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/apikeycredentialprovider/Name" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }

    Sustituya los valores de los siguientes campos:

    • En la GetWorkloadAccessToken declaración, sustituya el GatewayName de la Resource lista por el nombre de su puerta de enlace.

    • En la GetResourceApiKey declaración, sustituya el valor de la Resource lista por el ARN de la credencial que acaba de generar.

    • En la GetSecretValue declaración, sustituya el valor de la Resource lista por el ARN del AWS secreto devuelto en la respuesta al generar la credencial.

Ejemplos de configuración de una clave de API

En los siguientes ejemplos, se muestra cómo configurar una clave de API para el destino de la puerta de enlace:

ejemplo
AgentCore CLI
  1. Los comandos de credenciales de la AgentCore CLI deben ejecutarse dentro de un proyecto agentcore existente. Si aún no tiene uno, cree primero un proyecto con. agentcore create

    agentcore add credential \ --name api-key-credential-provider \ --type api-key \ --api-key <API_KEY_VALUE> agentcore deploy
AWS CLI
  1. aws bedrock-agentcore-control create-api-key-credential-provider \ --name api-key-credential-provider \ --api-key <API_KEY_VALUE>
Boto3
  1. import boto3 client = boto3.client("bedrock-agentcore-control") client.create_api_key_credential_provider( name="api-key-credential-provider", apiKey="<API_KEY_VALUE>" )