View a markdown version of this page

Connectez-vous à des fournisseurs d'identité privés - Amazon Bedrock AgentCore

Connectez-vous à des fournisseurs d'identité privés

Amazon Bedrock AgentCore Identity permet de se connecter à des fournisseurs d'identité OAuth 2.0 (IdPs) hébergés dans votre AWS VPC, tels que Keycloak auto-hébergé ou à d'autres serveurs d' OIDC-compliant autorisation PingFederate, sans les exposer à l'Internet public. Cela vous permet d'utiliser le mode privé à la fois IdPs pour les autorisations JWT entrantes avec AgentCore Runtime et AgentCore Gateway, ainsi que pour les fournisseurs d'informations d'identification OAuth2 sortants.

La connectivité privée avec le VPC hébergé IdPs est établie à l'aide des passerelles de ressources Amazon VPC Lattice et des configurations de ressources, selon le même schéma que celui utilisé pour Gateway VPC Outress. AgentCore AgentCore Identity utilise le rôle AWSServiceRoleForBedrockAgentCoreIdentity lié au service pour créer et gérer les ressources VPC Lattice dans votre compte afin d'établir une connectivité privée avec vos points de terminaison IdP.

Important

AgentCore prend en charge deux modes de connectivité VPC Lattice : Lattice géré (plus simple, AgentCore gère le cycle de vie des ressources) et Lattice autogéré (avancé, avec prise en charge entre comptes et visibilité complète de la gouvernance). Chaque mode comporte des compromis différents en termes de complexité, de coût et de contrôle. Pour une comparaison détaillée des avantages et des inconvénients, consultez la section Modes de sortie VPC pris en charge.

Cas d’utilisation

Les fournisseurs d'identité privée sont courants dans les environnements d'entreprise où les organisations :

  • Exécutez des serveurs d'autorisation auto-hébergés au sein de leur VPC pour répondre aux exigences de conformité ou de résidence des données

  • Utiliser des points de terminaison de découverte OIDC privés qui ne sont pas accessibles au public

  • Exiger que tout le trafic d'authentification reste sur le AWS réseau sans passer par l'Internet public

Autorisation JWT entrante avec un IdP privé

Lorsque vous configurez l'autorisation JWT entrante pour AgentCore Runtime ou AgentCore Gateway, l'autorisateur utilise l'URL de découverte pour récupérer les clés publiques de l'IdP (JWKS) et valider les jetons JWT entrants. Si votre IdP est hébergé dans un VPC et que l'URL de découverte n'est pas accessible au public, vous devez configurer un point de terminaison privé afin qu' AgentCore Identity puisse accéder aux points de terminaison OIDC et JWKS de l'IdP.

Configurer l'autorisation entrante avec un IdP privé

Pour configurer l'autorisation JWT entrante avec un IdP privé, incluez le privateEndpoint bloc dans la configuration de l'autorisateur lors de la création ou de la mise à jour de votre Runtime ou de votre Gateway. AgentCore

Exemple : CreateAgentRuntime avec un IdP privé pour l'authentification 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" ] } } } } }

Exemple : CreateGateway avec un IdP privé pour l'authentification 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 votre IdP utilise un certificat TLS émis par une autorité de certification privée, vous pouvez placer un Application Load Balancer interne avec un certificat ACM public devant celui-ci. Pour plus d'informations, voir Solution pour les certificats privés : ALB.

Pour Lattice autogéré, remplacez par managedVpcResource : selfManagedLatticeResource

Exemple : CreateAgentRuntime avec Lattice autogéré pour l'authentification 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" } } } } }

Exemple : CreateGateway avec Lattice autogéré pour l'authentification 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" } } } } }

Fournisseur d'identifiants OAuth sortants avec un IdP privé

Lorsque vous configurez un fournisseur d'informations d'identification OAuth2 sortant qui utilise un IdP privé, Identity AgentCore doit atteindre le point de terminaison du jeton de l'IdP pour échanger des codes d'autorisation contre des jetons d'accès ou pour octroyer des informations d'identification aux clients. Si le point de terminaison jeton de l'IdP est hébergé dans votre VPC, vous devez configurer un point de terminaison privé sur le fournisseur d'informations d'identification.

Configurer le fournisseur d'informations d'identification sortantes avec un IdP privé

Pour configurer un fournisseur d'informations d'identification OAuth sortant avec un IdP privé, incluez le privateEndpoint bloc lors de la création du fournisseur d'informations d'identification à l'aide d'un fournisseur personnalisé avec configuration manuelle.

Exemple : créer un fournisseur d'informations d'identification OAuth avec un IdP privé

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

Pour Lattice autogéré, remplacez par 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" } } } }

Conditions préalables

Avant de configurer un fournisseur d'identité privé, assurez-vous de ce qui suit :

  • Votre fournisseur d'identité fonctionne et est accessible au sein de votre VPC.

  • Le point de terminaison de découverte OIDC (/.well-known/openid-configuration), le point de terminaison JWKS et le point de terminaison jeton de l'IdP sont accessibles depuis les sous-réseaux spécifiés.

  • Vos groupes de sécurité autorisent le trafic entrant sur le port utilisé par votre IdP (généralement le port 443 pour HTTPS).

  • Pour Lattice géré, votre principal IAM doit disposer de l'iam:CreateServiceLinkedRoleautorisation nécessaire pour AgentCore créer le rôle lié au service Identity Network en votre nom. Pour connaître la politique IAM requise, consultez la section Rôle lié au service Identity Network.

  • Pour gérer Lattice, votre principal IAM a également besoin de l'autorisation ec2:CreateNetworkInterface Amazon EC2 suivante : également.

Service-linked rôle des fournisseurs d'identité privés

Lorsque vous configurez un point de terminaison privé pour un fournisseur d' AgentCore identité, Identity utilise le rôle AWSServiceRoleForBedrockAgentCoreIdentity lié au service pour gérer la connectivité à votre IdP hébergé par VPC. Ce rôle est créé automatiquement la première fois que vous configurez un point de terminaison privé géré pour un fournisseur d'identité, à condition que votre principal IAM dispose des iam:CreateServiceLinkedRole autorisations requises.

Pour le document de politique complet et les instructions relatives à la création, à la modification et à la suppression de ce rôle, voir Rôle lié au service Identity Network.

Limites et considérations

  • L'URL de découverte doit être HTTPS : l'URL de découverte OIDC de l'IdP doit utiliser le protocole HTTPS. Les points de terminaison HTTP ne sont pas pris en charge.

  • Certificats privés : votre IdP doit utiliser un certificat TLS approuvé par le public, ou vous devez placer un ALB avec un certificat ACM public devant celui-ci. Pour plus d'informations, voir Solution pour les certificats privés : ALB.

  • Cross-account: la connectivité IdP Cross-account privée nécessite l'option Lattice autogérée. Managed Lattice ne prend pas en charge les scénarios entre comptes.

Pour connaître les limites supplémentaires liées à la connectivité VPC Lattice, consultez Limitations et considérations dans Connexion aux ressources privées de votre VPC à l'aide de VPC Lattice.