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_ONLYla 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 |
Sí |
Sí |
No |
No |
No |
No |
No |
Sí |
|
Función de Lambda |
No |
Sí |
No |
No |
No |
No |
No |
No |
|
Servidor MCP |
Sí |
Sí |
No |
Sí |
Sí |
Sí |
No |
Sí |
|
Esquema OpenAPI |
Sí |
Sí |
No |
Sí |
Sí |
Sí |
No |
Sí |
|
Esquema de Smithy |
No |
Sí |
No |
Sí |
No |
No |
No |
No |
|
AgentCore Tiempo de ejecución (HTTP) |
No |
Sí |
Sí |
Sí |
No |
No |
Sí |
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:
Temas
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-agentcorepara 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
ActionoResourcecomodí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
-
Registra tu aplicación cliente con un proveedor externo compatible.
-
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.
-
Siga uno de los pasos que se indican a continuación, en función de sus requisitos:
-
Para configurar la autorización saliente en la consola mediante un proveedor de identidad integrado, sigue los pasos que se indican en Añadir un cliente OAuth mediante el proveedor incluido.
-
Para configurar la autorización saliente en la consola mediante un proveedor de identidad personalizado, sigue los pasos que se indican en Añadir un cliente OAuth mediante un proveedor personalizado.
-
Para configurar la autorización de salida mediante la API, envía una CreateOauth2CredentialProvidercon uno de los puntos finales del AgentCore plano de control. Para ver ejemplos, consulta Ejemplos de configuración de la autorización del cliente de OAuth.
nota
La forma del objeto JSON al que se asigna el
oauth2ProviderConfigInputcampo depende del proveedor que utilices y debe ser congruente con elcredentialProviderVendorvalor que especifiques. Para ver ejemplos de distintas configuraciones para distintos proveedores de credenciales, consulta los ejemplos de autorizaciones salientes del proveedor de credenciales que prefieras en Configuración y configuración del proveedor.
-
-
Tome nota del ARN de la credencial generado
credentialProviderArn(en la API) y del ARN secreto de Secrets AWS ManagersecretArn(en la API). Utilizará estos valores al crear su destino de puerta de enlace. -
(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
GetWorkloadAccessTokendeclaración, sustituya elGatewayNamede laResourcelista por el nombre de su puerta de enlace. -
En la
GetResourceOauth2Tokendeclaración, sustituya el valor de laResourcelista por el ARN de la credencial que acaba de generar. -
En la
GetSecretValuedeclaración, sustituya el valor de laResourcelista 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
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
-
Registra tu aplicación cliente con un proveedor externo compatible.
-
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).
-
-
Siga uno de los pasos que se indican a continuación, en función de sus necesidades:
-
Para crear una clave de API en la AgentCore consola, sigue los pasos que se indican en Añadir una clave de API y especifica el valor de la clave de API.
-
Para crear una clave de API mediante la AgentCore API, envía una CreateApiKeyCredentialProvidersolicitud con uno de los puntos finales del plano de AgentCore control y especifica el valor de la clave de API en el
apiKeycampo. Para ver ejemplos, consulta Ejemplos de configuración de una clave de API.
-
-
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.
-
-
(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
GetWorkloadAccessTokendeclaración, sustituya elGatewayNamede laResourcelista por el nombre de su puerta de enlace. -
En la
GetResourceApiKeydeclaración, sustituya el valor de laResourcelista por el ARN de la credencial que acaba de generar. -
En la
GetSecretValuedeclaración, sustituya el valor de laResourcelista 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: