View a markdown version of this page

Connectez-vous à des fournisseurs d'identité privés - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Amazon Bedrock AgentCore Identity prend en charge la connexion à 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 l'autorisation JWT entrante avec AgentCore Runtime et AgentCore Gateway, ainsi que pour les fournisseurs d'informations d'identification OAuth2 sortants.

La connectivité privée au VPC hébergé IdPs est établie à l'aide des passerelles de ressources et des configurations de ressources Amazon VPC Lattice, selon le même schéma que celui utilisé par AgentCore Gateway VPC Egress. AgentCore Identity utilise le rôle AWSServiceRoleForBedrockAgentCoreIdentity lié à un service pour créer et gérer les ressources VPC Lattice de votre compte afin d'assurer une connectivité privée à 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 support multicompte et visibilité complète de la gouvernance). Chaque mode propose 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 Modes de sortie VPC pris en charge.

Cas d’utilisation

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

  • Exécutez des serveurs d'autorisation auto-hébergés dans 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 atteindre les 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 AgentCore Runtime ou Gateway.

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 équilibreur de charge d'application interne avec un certificat ACM public devant celui-ci. Pour plus d'informations, consultez la section 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'informations d'identification OAuth sortantes avec un IdP privé

Lorsque vous configurez un fournisseur d'informations d'identification OAuth2 sortant qui utilise un IdP privé, AgentCore Identity 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 accorder des informations d'identification client. Si le point de terminaison du 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é configuré manuellement.

Exemple : création d'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 de 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 le Lattice géré, votre responsable 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 le Lattice géré, votre principal IAM a également besoin de l'autorisation Amazon EC2 suivante : ec2:CreateNetworkInterface

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é à un service pour gérer la connectivité à votre IdP hébergé par un 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 de l'iam:CreateServiceLinkedRoleautorisation requise.

Pour le document de politique complet et les instructions relatives à la création, à la modification et à la suppression de ce rôle, consultez la section 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 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, consultez la section 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 multi-comptes.

Pour des limitations 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.