View a markdown version of this page

Utilisez les points de terminaison VPC de l'interface (AWS PrivateLink) pour créer une connexion privée entre votre VPC et vos ressources Amazon Bedrock AgentCore - Amazon Bedrock AgentCore

Utilisez les points de terminaison VPC de l'interface (AWS PrivateLink) pour créer une connexion privée entre votre VPC et vos ressources Amazon Bedrock AgentCore

Vous pouvez l'utiliser AWS PrivateLink pour créer une connexion privée entre votre VPC et Amazon Bedrock. AgentCore Vous pouvez y accéder AgentCore comme s'il se trouvait dans votre VPC, sans utiliser de passerelle Internet, de périphérique NAT, de connexion VPN ou de connexion Direct Connect. Les instances de votre VPC n'ont pas besoin d'adresses IP publiques pour y accéder. AgentCore

Vous établissez cette connexion privée en créant un point de terminaison d'interface, alimenté par AWS PrivateLink. Nous créons une interface réseau de point de terminaison dans chaque sous-réseau que vous activez pour le point de terminaison d’interface. Il s'agit d'interfaces réseau gérées par le demandeur qui servent de point d'entrée pour le trafic destiné à AgentCore.

Pour plus d'informations, consultez la section Accès aux AWS services AWS PrivateLink dans le AWS PrivateLink Guide.

Considérations relatives à AgentCore

Avant de configurer un point de terminaison d'interface pour AgentCore, consultez les considérations du AWS PrivateLink guide.

AgentCore fournit trois AWS PrivateLink points de terminaison :

  • Point de terminaison du plan de données - com.amazonaws.region.bedrock-agentcore

  • Point de terminaison du plan de contrôle - com.amazonaws.region.bedrock-agentcore-control

  • Point de terminaison de passerelle - com.amazonaws.region.bedrock-agentcore.gateway

Le tableau suivant indique l'état de prise en AWS PrivateLink charge de chaque AgentCore primitive :

Primitif Plan de données Plan de contrôle

Environnement d’exécution

Pris en charge

Pris en charge

Mémoire

Pris en charge

Pris en charge

Built-in Outils (interpréteur de code, outil de navigateur)

Pris en charge

Pris en charge

Identity

Pris en charge

Pris en charge

Passerelle

Pris en charge

Pris en charge

Évaluations et optimisations

Pris en charge

Pris en charge

Politique

Pris en charge

Pris en charge

Pour obtenir la liste des AWS régions dans lesquelles les points de terminaison AgentCore d'interface sont disponibles, consultez la section AWS Régions prises en charge.

Important

Les API du plan de données prennent en charge à la fois les en-têtes AWS Signature Version 4 (SigV4) pour l'authentification et l'authentification Bearer Token (OAuth). Les politiques de point de terminaison VPC ne peuvent restreindre les appelants qu'en fonction des principes IAM et non des utilisateurs OAuth. Pour que les OAuth-based demandes aboutissent via le point de terminaison du VPC, le principal doit être défini sur * dans la politique du point de terminaison. Sinon, seuls les appelants autorisés par SigV4 peuvent effectuer des appels réussis via le point de terminaison VPC.

AWS Les clés de contexte de condition globale IAM sont prises en charge. Par défaut, l'accès complet à AgentCore est autorisé via le point de terminaison de l'interface. Vous pouvez contrôler l'accès en attachant une politique de point de terminaison au point de terminaison de l'interface ou en associant un groupe de sécurité aux interfaces réseau du point de terminaison.

Créez un point de terminaison d'interface pour AgentCore

Vous pouvez créer un point de terminaison d'interface pour AgentCore utiliser la console Amazon VPC ou l'interface de ligne de AWS commande (AWS CLI). Pour plus d'informations, consultez la section Création d'un point de terminaison d'interface dans le AWS PrivateLink Guide.

Créez un point de terminaison d'interface pour AgentCore utiliser le format de nom de service suivant :

  • Toutes les primitives du plan de données (Runtime, Built-in Tools, Memory, Identity) : com.amazonaws.region.bedrock-agentcore

  • Pour AgentCore Gateway : com.amazonaws.region.bedrock-agentcore.gateway

  • Pour les opérations du plan de contrôle (gestion du temps d'exécution et de la mémoire) : com.amazonaws.region.bedrock-agentcore-control

Si vous activez le DNS privé pour le point de terminaison de l'interface, vous pouvez envoyer des demandes d'API à AgentCore l'aide de son nom DNS régional par défaut. Par exemple, bedrock-agentcore.us-east-1.amazonaws.com.

Création d’une politique de point de terminaison pour votre point de terminaison d’interface

Une politique de point de terminaison est une ressource IAM que vous pouvez attacher à votre point de terminaison d’interface. La politique de point de terminaison par défaut autorise un accès complet AgentCore via le point de terminaison de l'interface. Pour contrôler l'accès autorisé AgentCore depuis votre VPC, associez une politique de point de terminaison personnalisée au point de terminaison de l'interface.

Une politique de point de terminaison spécifie les informations suivantes :

  • Principaux habilités à effectuer des actions (AWS comptes, utilisateurs IAM et rôles IAM).

    • Pour AgentCore Gateway, si l'entrée de votre passerelle n'est pas basée sur AWS Signature Version 4 (Sigv4) (par exemple, si vous utilisez OAuth à la place), vous devez spécifier le Principal champ comme caractère générique *. L'authentification basée sur SigV4 vous permet de définir l'identité Principal en tant qu' AWS identité spécifique. Cela vaut également pour AgentCore Runtime.

  • Les actions qui peuvent être effectuées.

  • La ressource sur laquelle les actions peuvent être effectuées.

Pour plus d'informations, consultez la section Contrôler l'accès aux services à l'aide des politiques relatives aux terminaux dans le AWS PrivateLink Guide.

Politiques de point de terminaison pour différentes primitives

Les exemples suivants présentent les politiques relatives aux points de terminaison pour différents AgentCore composants :

Exemple
Runtime
  1. La politique de point de terminaison suivante permet à des principaux IAM spécifiques d'invoquer les ressources d'exécution de l'agent.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:user/USERNAME" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    Authentification mixte IAM et OAuth

    L'InvokeAgentRuntimeAPI prend en charge deux modes d'autorisation des points de terminaison VPC. L'exemple de politique suivant permet aux principaux IAM et aux appelants OAuth d'accéder aux différentes ressources d'exécution de l'agent.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent1" }, { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent2" } ] }

    La politique ci-dessus permet uniquement au principal IAM de InvokeAgentRuntime passer des appels àcustomAgent1. Il permet également aux correspondants IAM et aux appelants OAuth de passer des appels. InvokeAgentRuntime customAgent2

    Politiques relatives aux points de terminaison des métadonnées de ressources protégées (PRM)

    L'GetRuntimeProtectedResourceMetadataAPI implémente les métadonnées des ressources protégées OAuth 2.0 (RFC 9728). Les clients appellent ce point de terminaison avant de disposer des informations d'identification, afin de découvrir quel serveur d'autorisation protège le temps d'exécution d'un agent donné. Ce point de terminaison n'est pas authentifié par conception, Principal il doit donc être défini sur * dans la politique du point de terminaison.

    Les politiques relatives aux points de terminaison VPC sont appliquées aux demandes PRM. Si votre politique de point de terminaison ne l'autorise pas explicitementbedrock-agentcore:GetRuntimeProtectedResourceMetadata, les demandes PRM via ce point de terminaison sont refusées avec le protocole HTTP 403. Tout environnement d'exécution d' OAuth-configured agent accessible via un point de terminaison VPC nécessite un accès PRM pour la découverte du serveur d'autorisation.

    Note

    Si vous avez une politique de refus de tout point de terminaison pour l'application du périmètre des données et que vous n'utilisez pas l'authentification OAuth ou JWT, les demandes PRM sont automatiquement refusées. Aucune configuration supplémentaire n'est nécessaire.

    La politique de point de terminaison suivante permet à tout appelant de découvrir le serveur d'autorisation (PRM) tout en limitant les appels d'exécution à un principal IAM spécifique :

    { "Statement": [ { "Sid": "AllowPRMDiscovery", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    Pour bloquer les recherches PRM entre comptes via votre point de terminaison VPC (application du périmètre des données), appliquez l'instruction PRM allow uniquement aux environnements d'exécution de votre compte :

    { "Statement": [ { "Sid": "AllowPRMOwnAccountOnly", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "DenyCrossAccountPRM", "Effect": "Deny", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "NotResource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" } ] }
Code Interpreter Tool
  1. La politique de point de terminaison suivante permet à des principaux IAM spécifiques d'invoquer des ressources d'interpréteur de code.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:code-interpreter/CODE_INTERPRETER_ID" } ] }
Memory
  1. ====== Toutes les opérations du plan de données

    La politique de point de terminaison suivante permet à des principaux IAM spécifiques d'accéder aux opérations du plan de données us-east-1 pour une mémoire spécifique. AgentCore

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }

    Accès à tous les souvenirs

    La politique de point de terminaison suivante permet à des principaux IAM spécifiques d'accéder à toutes les mémoires.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/*" } ] }

    Restriction d'accès par les API

    La politique de point de terminaison suivante autorise un principal IAM spécifique à créer des événements dans une ressource AgentCore mémoire spécifique.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }
Browser Tool
  1. La politique de point de terminaison suivante permet à des principaux IAM spécifiques de se connecter aux ressources du Browser Tool.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:ConnectBrowserAutomationStream" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:browser/BROWSER_ID" } ] }
Gateway
  1. Voici un exemple de politique de point de terminaison personnalisée. Lorsque vous attachez cette politique au point de terminaison de votre interface, elle permet à tous les principaux d'invoquer la passerelle spécifiée dans le Resource champ.

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock:InvokeGateway" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway" } ] }
Identity
  1. La politique de point de terminaison suivante autorise l'accès aux ressources d'identité.

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "*" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID" } ] }
Evaluations and Optimizations
  1. La politique de point de terminaison suivante permet à des responsables IAM spécifiques d'accéder aux opérations d'évaluation et d'optimisation.

    { "Statement": [ { "Sid": "AllowBatchEvaluations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:ListBatchEvaluations", "bedrock-agentcore:StopBatchEvaluation", "bedrock-agentcore:DeleteBatchEvaluation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:batch-evaluate/*" }, { "Sid": "AllowRecommendations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartRecommendation", "bedrock-agentcore:GetRecommendation", "bedrock-agentcore:ListRecommendations", "bedrock-agentcore:DeleteRecommendation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:recommendation/*" }, { "Sid": "AllowEvaluators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvaluator", "bedrock-agentcore:GetEvaluator", "bedrock-agentcore:ListEvaluators", "bedrock-agentcore:UpdateEvaluator", "bedrock-agentcore:DeleteEvaluator" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:evaluator/*" }, { "Sid": "AllowOnlineEvaluationConfigs", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateOnlineEvaluationConfig", "bedrock-agentcore:GetOnlineEvaluationConfig", "bedrock-agentcore:ListOnlineEvaluationConfigs", "bedrock-agentcore:UpdateOnlineEvaluationConfig", "bedrock-agentcore:DeleteOnlineEvaluationConfig" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:online-evaluation-config/*" }, { "Sid": "AllowABTests", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:ListABTests", "bedrock-agentcore:UpdateABTest", "bedrock-agentcore:DeleteABTest" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:ab-test/*" }, { "Sid": "AllowConfigurationBundles", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateConfigurationBundle", "bedrock-agentcore:GetConfigurationBundle", "bedrock-agentcore:GetConfigurationBundleVersion", "bedrock-agentcore:ListConfigurationBundles", "bedrock-agentcore:ListConfigurationBundleVersions", "bedrock-agentcore:UpdateConfigurationBundle", "bedrock-agentcore:DeleteConfigurationBundle" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:configuration-bundle/*" } ] }