View a markdown version of this page

Connect a provider di identità privati - Amazon Bedrock AgentCore

Connect a provider di identità privati

Amazon Bedrock AgentCore Identity supporta la connessione ai provider di identità OAuth 2.0 (IdPs) ospitati all'interno del tuo AWS VPC, come Keycloak con hosting autonomo, o altri server di OIDC-compliant autorizzazione PingFederate, senza esporli alla rete Internet pubblica. Ciò consente di utilizzare l'autorizzazione JWT privata sia IdPs per l'autorizzazione JWT in entrata con AgentCore Runtime e Gateway sia per i provider di credenziali OAuth2 in uscita. AgentCore

La connettività privata al VPC ospitato IdPs viene stabilita utilizzando i gateway di risorse e le configurazioni delle risorse Amazon VPC Lattice, seguendo lo stesso schema utilizzato dall'uscita di Gateway VPC. AgentCore AgentCore Identity utilizza il ruolo AWSServiceRoleForBedrockAgentCoreIdentity collegato al servizio per creare e gestire le risorse VPC Lattice nel tuo account per la connettività privata agli endpoint IdP.

Importante

AgentCore supporta due modalità di connettività VPC Lattice: Lattice gestita (più semplice, AgentCore gestisce il ciclo di vita delle risorse) e Lattice autogestita (avanzata, con supporto tra account e visibilità completa della governance). Ogni modalità presenta compromessi diversi in termini di complessità, costi e controllo. Per un confronto dettagliato dei pro e dei contro, consulta Modalità di uscita VPC supportate.

Casi d’uso

I provider di identità privati sono comuni negli ambienti aziendali in cui le organizzazioni:

  • Esegui server di autorizzazione ospitati autonomamente all'interno del loro VPC per requisiti di conformità o residenza dei dati

  • Utilizza endpoint di rilevamento OIDC privati non accessibili al pubblico

  • Richiedi che tutto il traffico di autenticazione rimanga all'interno della AWS rete senza attraversare la rete Internet pubblica

Autorizzazione JWT in entrata con un IdP privato

Quando configuri l'autorizzazione JWT in entrata per AgentCore Runtime o AgentCore Gateway, l'autorizzatore utilizza l'URL di rilevamento per recuperare le chiavi pubbliche dell'IdP (JWKS) e convalidare i token JWT in entrata. Se il tuo IdP è ospitato all'interno di un VPC e l'URL di rilevamento non è accessibile pubblicamente, devi configurare un endpoint privato in modo che Identity AgentCore possa raggiungere gli endpoint OIDC Discovery e JWKS dell'IdP.

Configura l'autorizzazione in entrata con un IdP privato

Per configurare l'autorizzazione JWT in entrata con un IdP privato, includi il privateEndpoint blocco nella configurazione dell'autorizzatore durante la creazione o l'aggiornamento del Runtime o del Gateway. AgentCore

Esempio: CreateAgentRuntime con IdP privato per l'autenticazione in entrata

{ "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" ] } } } } }

Esempio: CreateGateway con IdP privato per l'autenticazione in entrata

{ "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" ] } } } } }

Se il tuo IdP utilizza un certificato TLS emesso da un'autorità di certificazione privata, puoi anteporre un Application Load Balancer interno con un certificato ACM pubblico. Per ulteriori informazioni, consulta Soluzione alternativa per i certificati privati: ALB.

Per Lattice autogestito, sostituiscilo con: managedVpcResource selfManagedLatticeResource

Esempio: CreateAgentRuntime con Lattice autogestito per l'autenticazione in entrata

{ "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" } } } } }

Esempio: CreateGateway con Lattice autogestito per l'autenticazione in entrata

{ "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" } } } } }

Provider di credenziali OAuth in uscita con un IdP privato

Quando configuri un provider di credenziali OAuth2 in uscita che utilizza un IdP privato, Identity AgentCore deve raggiungere l'endpoint token dell'IdP per scambiare i codici di autorizzazione per i token di accesso o per eseguire la concessione delle credenziali del client. Se l'endpoint token dell'IdP è ospitato all'interno del tuo VPC, devi configurare un endpoint privato sul provider di credenziali.

Configurazione del provider di credenziali in uscita con un IdP privato

Per configurare un provider di credenziali OAuth in uscita con un IdP privato, includi il privateEndpoint blocco durante la creazione del provider di credenziali utilizzando un provider personalizzato con configurazione manuale.

Esempio: creare un provider di credenziali OAuth con un IdP privato

{ "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" ] } } } }

Per Lattice autogestito, sostituiscilo con: 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" } } } }

Prerequisiti

Prima di configurare un provider di identità privato, assicurati quanto segue:

  • Il tuo provider di identità è attivo e accessibile all'interno del tuo VPC.

  • L'endpoint di rilevamento OIDC (/.well-known/openid-configuration), l'endpoint JWKS e l'endpoint token dell'IdP sono raggiungibili dalle sottoreti specificate.

  • I tuoi gruppi di sicurezza consentono il traffico in entrata sulla porta utilizzata dal tuo IdP (in genere la porta 443 per HTTPS).

  • Per gestire Lattice, il responsabile IAM deve disporre dell'iam:CreateServiceLinkedRoleautorizzazione necessaria per AgentCore poter creare il ruolo collegato al servizio Identity Network per tuo conto. Per la policy IAM richiesta, consulta il ruolo collegato al servizio Identity Network.

  • Per gestire Lattice, il tuo responsabile IAM necessita anche della seguente autorizzazione Amazon EC2ec2:CreateNetworkInterface:.

Service-linked ruolo per i provider di identità privati

Quando configuri un endpoint privato per un provider di AgentCore identità, Identity utilizza il ruolo AWSServiceRoleForBedrockAgentCoreIdentity collegato al servizio per gestire la connettività al tuo IdP ospitato su VPC. Questo ruolo viene creato automaticamente la prima volta che configuri un endpoint privato gestito per un provider di identità, a condizione che il responsabile IAM disponga dell'autorizzazione richiesta. iam:CreateServiceLinkedRole

Per il documento completo sulla policy e le istruzioni per la creazione, la modifica e l'eliminazione di questo ruolo, consulta Identity Network service-linked role.

Considerazioni e limitazioni

  • L'URL di scoperta deve essere HTTPS: l'URL di scoperta OIDC dell'IdP deve utilizzare HTTPS. Gli endpoint HTTP non sono supportati.

  • Certificati privati: il tuo IdP deve utilizzare un certificato TLS pubblicamente affidabile oppure devi inserire un ALB con un certificato ACM pubblico davanti ad esso. Per ulteriori informazioni, consulta Soluzione alternativa per i certificati privati: ALB.

  • Cross-account: la connettività IdP Cross-account privata richiede l'opzione Lattice autogestita. Managed Lattice non supporta scenari tra account.

Per ulteriori limitazioni relative alla connettività VPC Lattice, consulta Limitazioni e considerazioni in Connect a risorse private nel tuo VPC usando VPC Lattice.