View a markdown version of this page

Configure la autorización de salida para su puerta de enlace - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

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

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 saliente. No se recomienda esta opción menos segura.

  • IAM-based autorización saliente: 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 destinatario. 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 original y no en función de 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 identidad integrado o con uno personalizado. Para obtener más información, consulta OAuth 2.0. Puedes usar los siguientes tipos de autorizaciones 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, no en nombre del usuario.

    • Concesión del código de autorización: User-delegated acceso (también conocido como OAuth triple). 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 con un ámbito específico destinado a un recurso intermedio. 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 generar flujos de consentimiento adicionales. Para obtener más información, consulta el artículo sobre el intercambio de tokens. On-behalf-of

  • Transferencia de tokens: la puerta de enlace transfiere 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 la autorización AUTHENTICATE_ONLY entrante para que el token se valide y se conserve para su reenvío.

  • Clave de API: utilice el AgentCore servicio para generar una clave de API a fin de 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 la 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 tokens 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 usa una plantilla de proveedor de integración como destino, revise los tipos de autorización admitidos para las diferentes plantillas en las Built-in plantillas de los proveedores de integración como destinos.

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 usa alguna de estas herramientas, puede permitir que AgentCore se cree automáticamente un rol de servicio para usted con los permisos necesarios para acceder al destino. Cada vez que añadas un objetivo, los permisos necesarios se asignarán automáticamente a tu rol de servicio.

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

Configure la autorización IAM-based saliente con una función de servicio de puerta de enlace

IAM-based La autorización saliente le permite usar las credenciales de IAM del rol de servicio de puerta de enlace para autorizar con la versión 4 de AWS Signature (Sig V4). Esta opción permite al AgentCore servicio Amazon Bedrock autenticarse en los destinos de la pasarela en nombre de las personas que llaman a la puerta de enlace.

Si utiliza esta opción, compruebe que la función de 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 de OpenAPI

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

  • servicio (obligatorio): el nombre del AWS servicio utilizado para la firma de SigV4. Por ejemplo, bedrock-agentcore para 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 usa su propia región.

En el caso de los objetivos de Lambda, API Gateway y Smithy, no incluya el iamCredentialProvider campo. 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 la autorización del rol de servicio de AgentCore puerta de enlace (IAM).

Mejores prácticas de seguridad para IAM-based la autorización saliente

La función de ejecución de la puerta de enlace se comparte entre todos los objetivos con GATEWAY_IAM_ROLE los que se ha configurado. Sus permisos son el límite superior de lo 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 objetivos configurados. Evite usar caracteres amplios Action o Resource comodín.

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

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

Configura la autorización saliente con un cliente de OAuth

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

Para configurar la autorización saliente con un cliente de OAuth

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

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

  3. Sigue uno de los pasos que se indican a continuación, según tus requisitos:

  4. Toma nota del ARN de la credencial generado (credentialProviderArnen la API) y del ARN secreto de AWS Secrets Manager (en la API). secretArn Usarás estos valores al crear tu objetivo de puerta de enlace.

  5. (Si utilizas una función de servicio de puerta de enlace personalizada) Adjunta la siguiente política basada en la identidad a tu 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 instrucción, sustituya el valor GatewayName de la Resource lista por el nombre de su puerta de enlace.

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

    • En la GetSecretValue sentencia, 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 de un cliente de OAuth

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

ejemplo
AgentCore CLI
  1. Los comandos de credenciales de la AgentCore CLI se deben ejecutar dentro de un proyecto de 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 saliente con una clave de API, usa el servicio de AgentCore identidad y especifica una clave de API que recibirás de un proveedor de identidades compatible.

Para configurar la autorización saliente con un cliente de 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 objetivo de la puerta de enlace:

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

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

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

  4. Toma nota de los siguientes valores, que especificarás cuando agregues el objetivo 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 utilizas una función de servicio de puerta de enlace personalizada) Adjunta la siguiente política basada en la identidad a tu 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 instrucción, sustituya el valor GatewayName de la Resource lista por el nombre de su puerta de enlace.

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

    • En la GetSecretValue sentencia, 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 su puerta de enlace:

ejemplo
AgentCore CLI
  1. Los comandos de credenciales de la AgentCore CLI se deben ejecutar dentro de un proyecto de 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>" )