View a markdown version of this page

Conéctese a proveedores de identidad privados - Amazon Bedrock AgentCore

Conéctese a proveedores de identidad privados

Amazon Bedrock AgentCore Identity permite conectarse a proveedores de identidad de OAuth 2.0 (IdPs) alojados en su AWS VPC, como Keycloak autohospedado, u otros servidores de OIDC-compliant autorización PingFederate, sin exponerlos a la Internet pública. Esto le permite utilizar la autorización JWT privada tanto IdPs para la autorización JWT entrante con AgentCore Runtime y AgentCore Gateway como para la de los proveedores de credenciales OAuth2 salientes.

La conectividad privada con la VPC alojada IdPs se establece mediante pasarelas de recursos y configuraciones de recursos de Amazon VPC Lattice, siguiendo el mismo patrón utilizado por la salida de VPC de Gateway. AgentCore AgentCore Identity usa el rol AWSServiceRoleForBedrockAgentCoreIdentity vinculado al servicio para crear y administrar los recursos de VPC Lattice en su cuenta para la conectividad privada con sus puntos de enlace de IdP.

importante

AgentCore admite dos modos de conectividad de VPC Lattice: Lattice gestionado (más sencillo, AgentCore gestiona el ciclo de vida de los recursos) y Lattice autogestionado (avanzado, con soporte multicuenta y visibilidad total de la gobernanza). Cada modo tiene diferentes ventajas y desventajas en cuanto a complejidad, coste y control. Para obtener una comparación detallada de los pros y los contras, consulte Modos de salida de VPC compatibles.

Casos de uso

Los proveedores de identidades privadas son habituales en los entornos empresariales, en los que las organizaciones:

  • Ejecute servidores de autorización autohospedados dentro de su VPC para cumplir con los requisitos de conformidad o residencia de datos

  • Utilice terminales de detección de OIDC privados a los que no se pueda acceder públicamente

  • Exija que todo el tráfico de autenticación permanezca dentro de la AWS red sin atravesar la Internet pública

Autorización JWT entrante con un IdP privado

Al configurar la autorización JWT entrante para AgentCore Runtime o AgentCore Gateway, el autorizador utiliza la URL de descubrimiento para obtener las claves públicas del IdP (JWKS) y validar los tokens de JWT entrantes. Si su IdP está alojado en una VPC y la URL de descubrimiento no es de acceso público, debe configurar un punto de conexión privado para que AgentCore Identity pueda llegar a los puntos de enlace de detección OIDC y JWKS del IdP.

Configurar la autorización entrante con un IdP privado

Para configurar la autorización JWT entrante con un IdP privado, incluya el privateEndpoint bloque en la configuración del autorizador al crear o actualizar su Runtime o Gateway. AgentCore

Ejemplo: CreateAgentRuntime con un IdP privado para la autenticación entrante

{ "agentRuntimeName": "my-runtime", "authorizerConfiguration": { "customJWTAuthorizer": { "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration", "allowedAudiences": [ "my-agent-audience" ], "allowedClients": [ "my-client-id" ], "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": [ "subnet-0abc123", "subnet-0def456" ], "endpointIpAddressType": "IPV4", "securityGroupIds": [ "sg-0abc123def" ] } } } } }

Ejemplo: CreateGateway con un IdP privado para la autenticación entrante

{ "name": "my-gateway", "authorizerConfiguration": { "customJWTAuthorizer": { "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration", "allowedAudiences": [ "my-gateway-audience" ], "allowedClients": [ "my-client-id" ], "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": [ "subnet-0abc123", "subnet-0def456" ], "endpointIpAddressType": "IPV4", "securityGroupIds": [ "sg-0abc123def" ] } } } } }

Si su IdP usa un certificado TLS emitido por una entidad de certificación privada, puede colocar un Application Load Balancer interno con un certificado ACM público delante. Para obtener más información, consulte Solución alternativa para los certificados privados: ALB.

En el caso de Lattice autogestionado, sustitúyalo por: managedVpcResource selfManagedLatticeResource

Ejemplo: CreateAgentRuntime con Lattice autogestionado para la autenticación entrante

{ "agentRuntimeName": "my-runtime", "authorizerConfiguration": { "customJWTAuthorizer": { "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration", "allowedAudiences": [ "my-agent-audience" ], "allowedClients": [ "my-client-id" ], "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123" } } } } }

Ejemplo: CreateGateway con Lattice autogestionado para la autenticación entrante

{ "name": "my-gateway", "authorizerConfiguration": { "customJWTAuthorizer": { "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration", "allowedAudiences": [ "my-gateway-audience" ], "allowedClients": [ "my-client-id" ], "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123" } } } } }

Proveedor de credenciales OAuth salientes con un IdP privado

Al configurar un proveedor de credenciales OAuth2 saliente que usa un IdP privado, Identity AgentCore debe llegar al punto final del token del IdP para intercambiar códigos de autorización por tokens de acceso o para conceder credenciales de cliente. Si el punto de enlace del token del IdP está alojado en su VPC, debe configurar un punto de enlace privado en el proveedor de credenciales.

Configurar el proveedor de credenciales salientes con un IdP privado

Para configurar un proveedor de credenciales OAuth saliente con un IdP privado, incluye el privateEndpoint bloque al crear el proveedor de credenciales mediante un proveedor personalizado con configuración manual.

Ejemplo: crear un proveedor de credenciales de OAuth con un IdP privado

{ "name": "my-private-idp-provider", "credentialProviderType": "OAUTH", "oauthCredentialProvider": { "providerType": "CUSTOM", "customProviderConfiguration": { "issuer": "https://idp.internal.example.com/realms/my-realm", "authorizationEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/auth", "tokenEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/token" }, "clientId": "my-client-id", "clientSecret": "my-client-secret", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": [ "subnet-0abc123", "subnet-0def456" ], "endpointIpAddressType": "IPV4", "securityGroupIds": [ "sg-0abc123def" ] } } } }

En el caso de Lattice autogestionado, sustitúyalo por: managedVpcResource selfManagedLatticeResource

{ "name": "my-private-idp-provider", "credentialProviderType": "OAUTH", "oauthCredentialProvider": { "providerType": "CUSTOM", "customProviderConfiguration": { "issuer": "https://idp.internal.example.com/realms/my-realm", "authorizationEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/auth", "tokenEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/token" }, "clientId": "my-client-id", "clientSecret": "my-client-secret", "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123" } } } }

Requisitos previos

Antes de configurar un proveedor de identidad privado, asegúrese de lo siguiente:

  • Su proveedor de identidad se está ejecutando y está accesible en su VPC.

  • Se puede acceder al punto final de detección OIDC (/.well-known/openid-configuration), al punto final del JWKS y al punto final del token del IdP desde las subredes especificadas.

  • Sus grupos de seguridad permiten el tráfico entrante en el puerto utilizado por su IdP (normalmente el puerto 443 para HTTPS).

  • En el caso de un Lattice gestionado, su director de IAM debe tener el iam:CreateServiceLinkedRole permiso para AgentCore poder crear el rol vinculado al servicio de Identity Network en su nombre. Para conocer la política de IAM requerida, consulte el rol vinculado al servicio de Identity Network.

  • En el caso de Lattice gestionado, su director de IAM también necesita el siguiente permiso ec2:CreateNetworkInterface de Amazon EC2.

Service-linked función para los proveedores de identidad privada

Cuando configuras un punto final privado para un proveedor de identidades, AgentCore Identity usa la función AWSServiceRoleForBedrockAgentCoreIdentity vinculada al servicio para administrar la conectividad con tu IdP alojado en la VPC. Esta función se crea automáticamente la primera vez que se configura un punto final privado gestionado para un proveedor de identidades, siempre que el director de IAM tenga el permiso necesario. iam:CreateServiceLinkedRole

Para ver el documento de política completo y las instrucciones para crear, editar y eliminar esta función, consulte Función vinculada al servicio de Identity Network.

Limitaciones y consideraciones

  • La URL de detección debe ser HTTPS: la URL de detección del OIDC del IdP debe usar HTTPS. No se admiten los puntos de enlace HTTP.

  • Certificados privados: su IdP debe usar un certificado TLS de confianza pública o debe colocar un ALB con un certificado ACM público delante. Para obtener más información, consulte Solución alternativa para los certificados privados: ALB.

  • Cross-account: la conectividad de IdP Cross-account privado requiere la opción Lattice autogestionada. Managed Lattice no admite escenarios con varias cuentas.

Para conocer las limitaciones adicionales relacionadas con la conectividad de VPC Lattice, consulte Limitaciones y consideraciones en Conectarse a recursos privados de su VPC mediante VPC Lattice.