View a markdown version of this page

Configurer la connectivité VPC pour une source de données - Amazon Bedrock

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.

Configurer la connectivité VPC pour une source de données

Certaines sources de données s'exécutent sur des ressources privées qui ne sont pas accessibles via Internet public, comme une instance de centre de données Confluence sur site que vous connectez à un équilibreur de charge interne dans votre VPC. Pour analyser ces sources de données, vous devez créer une configuration VPC. Amazon Bedrock utilise cette configuration pour fournir un chemin réseau privé vers votre VPC et atteindre la ressource.

Une configuration VPC est une ressource réutilisable de votre base de connaissances. Vous le créez une fois, puis vous le référencez par identifiant à partir d'une ou de plusieurs sources de données. Lorsque vous créez une source de données nécessitant une connectivité privée, vous sélectionnez une configuration VPC existante ou vous en créez une nouvelle.

Note

Lorsqu'Amazon Bedrock fournit une configuration VPC, il assume un rôle Gestion des identités et des accès AWS (IAM) associé à votre base de connaissances afin de créer un petit ensemble de ressources réseau dans votre compte. Chaque ressource créée par Amazon Bedrock est baliséeManagedBy=VPCProxyService, et le rôle ne peut agir que sur les ressources qui portent cette étiquette. Consultez Base de connaissances : autorisations relatives aux rôles IAM.

Ce que vous offrez

Pour créer une configuration VPC, vous devez fournir les informations suivantes :

Entrées de configuration VPC
Input Pourquoi c'est nécessaire
Un VPC et un ou plusieurs sous-réseaux Où Amazon Bedrock place le point d'entrée réseau (une passerelle privée) dans votre VPC. Vous fournissez 1 à 6 sous-réseaux à partir du VPC choisi.
Une cible de ressources et un port Adresse IP privée ou nom DNS (et port) de la ressource que vous souhaitez atteindre.
Un rôle IAM dans la base de connaissances Amazon Bedrock assume ce rôle pour mettre à disposition les ressources réseau de votre compte. Consultez Base de connaissances : autorisations relatives aux rôles IAM.

Vous ne fournissez pas de groupes de sécurité. Amazon Bedrock utilise le groupe de sécurité par défaut de votre VPC pour la passerelle. Assurez-vous que les règles sortantes (de sortie) du groupe de sécurité par défaut permettent d'atteindre votre cible sur le port demandé. Consultez Sortir du groupe de sécurité par défaut.

Exigences réseau

Amazon Bedrock accède à votre ressource via une passerelle privée créée avec des interfaces réseau privées uniquement (pas d'adresse IP publique). La passerelle atteint votre cible via le réseau privé (local) de votre VPC et ne peut pas atteindre les adresses IP publiques. Votre cible de ressources doit être accessible en privé depuis votre VPC :

  • Un équilibreur de charge interne (scheme: internal) dont le nom DNS est résolu en adresses privées (par exemple10.x,172.x, ou192.168.x).

  • Une adresse IP privée ou un nom DNS privé qui se résout en une adresse privée intégrée au VPC.

Un équilibreur de charge connecté à Internet n'est pas pris en charge. Un équilibreur de charge connecté à Internet renvoie ses adresses IP publiques même aux requêtes DNS intégrées au VPC, et la passerelle privée ne peut pas atteindre ces adresses. Si votre ressource est actuellement exposée uniquement via un équilibreur de charge connecté à Internet, créez (ou pointez sur) un équilibreur de charge interne dans le même VPC et utilisez son nom DNS comme cible de ressource.

Création d'une configuration VPC

Console
Pour ajouter une configuration VPC
  1. Dans la configuration de la source de données, sous Configuration VPC, choisissez Ajouter une configuration VPC. Si une configuration appropriée existe déjà, sélectionnez-la à la place pour la réutiliser dans toutes les sources de données.

  2. (Facultatif) Entrez un nom et une description pour la configuration.

  3. Pour VPC ID, sélectionnez le VPC à utiliser pour la connectivité.

  4. Pour les ID de sous-réseau, sélectionnez un ou plusieurs sous-réseaux dans le VPC choisi.

  5. Pour Resource target, entrez le nom d'hôte ou l'adresse IP de votre ressource (par exemple, 10.0.1.50 ouconfluence.internal.example.com).

  6. Dans Port, entrez le numéro de port sur lequel vous souhaitez vous connecter (par exemple, 443 ou8090).

  7. Pour Protocole, choisissez HTTPS ou HTTP.

  8. Pour le mode Résolution, choisissez le mode de résolution de l'adresse cible de la ressource :

    • Public  : la cible de la ressource est un nom d'hôte ou une adresse IP pouvant être résolu publiquement.

    • Dans VPC  : la cible de ressources ne peut être résolue que dans votre VPC. C'est le cas le plus courant pour les ressources internes.

  9. (Facultatif) Pour l'en-tête Host, entrez la valeur Host d'en-tête à envoyer avec les requêtes. Définissez cette option uniquement si votre ressource (ou un routeur en amont) est acheminée par l'Hosten-tête HTTP.

  10. (Obligatoire pour HTTPS) Pour le nom du serveur TLS, entrez l'identité de certificat TLS attendue (nom alternatif du sujet) pour la ressource. Un seul caractère générique situé le plus à gauche est autorisé (par exemple,). *.example.com

  11. Choisissez Créer.

API

Pour créer une configuration VPC, envoyez une CreateVpcConfiguration demande. Toutes les opérations sont limitées à une base de connaissances via le paramètre knowledgeBaseId path ; le corps de la demande n'inclut pas d'ID de compte ni d'ARN de rôle, car Amazon Bedrock les résout à partir de la base de connaissances.

POST /knowledgebases/knowledgeBaseId/vpcconfigurations/

Le corps de la requête utilise les champs suivants.

CreateVpcConfiguration champs
Champ Obligatoire Description
vpcId Oui ID du VPC. ^vpc-[a-zA-Z0-9]+$Correspondances, jusqu'à 64 caractères.
subnetIds Oui 1 à 6 ID de sous-réseau du VPC spécifié. Chaque match^subnet-[a-zA-Z0-9]+$.
resourceTarget Oui Adresse IPv4 ou nom DNS de la ressource (1 à 255 caractères). Consultez Restrictions relatives aux ressources cibles.
port Oui Port sur lequel se connecter (1—65535).
protocol Oui HTTP ou HTTPS.
resolutionMode Oui PUBLIC ou IN_VPC. À utiliser IN_VPC lorsque la cible se résout uniquement à l'intérieur de votre VPC.
tlsServerName Conditionnel Obligatoire quand protocol c'estHTTPS. Le nom d'hôte correspondait au certificat TLS de la ressource (253 caractères maximum). Un seul caractère générique situé à l'extrême gauche est autorisé. Ne doit pas inclure de port.
hostHeader Non La valeur Host d'en-tête HTTP à envoyer (255 caractères maximum). À définir uniquement si vos ressources sont acheminées par l'Hosten-tête.
name Non Un nom lisible par l'homme (1 à 128 caractères).
description Non Une description (512 caractères maximum).
clientToken Non Un jeton d'idempotence.

La création est asynchrone. CreateVpcConfigurationrenvoie une 202 réponse avec un vpcConfigurationId et un statut deCREATING. Effectuez un sondage GetVpcConfiguration jusqu'à ce que le statut soit CREATED (ouCREATE_FAILED, dans ce cas, statusMessage nommez la cause). Utilisez-le ListVpcConfigurations pour répertorier les configurations et DeleteVpcConfiguration en supprimer une.

Note

Si vous créez plusieurs configurations dans le même VPC avec le même ensemble de sous-réseaux, elles partagent une passerelle. Un ensemble différent de sous-réseaux fournit une passerelle distincte.

Protocole, nom du serveur TLS et en-tête d'hôte

Ces trois paramètres sont les plus souvent mal configurés. Suivez les conseils suivants pour choisir les bonnes valeurs.

protocol

Choisissez HTTP d'invoquer la ressource via HTTP en texte brut ou de l'HTTPSinvoquer via TLS.

tlsServerName

Obligatoire quand protocol c'estHTTPS. Il s'agit du nom du serveur mis en correspondance avec les noms alternatifs de sujet du certificat TLS de votre ressource lors de l'invocation. Configurez-le sur le nom d'hôte pour lequel votre certificat est émis (par exemple,app.internal.example.com). Un seul caractère générique situé le plus à gauche est autorisé (par exemple,). *.example.com Si la ressource est accessible par adresse IP mais présente un certificat pour un nom, définissez tlsServerName ce nom. Si le certificat ne correspond pas, l'invocation échoue lors de la vérification d'identité TLS. Cette valeur doit être un nom d'hôte sans port.

hostHeader

Facultatif, et cela constitue un problème de couche d'application indépendant de. tlsServerName Configurez-le uniquement si votre ressource, ou un routeur ou une entrée en amont, est acheminée par l'Hosten-tête HTTP et que cet hôte diffère de celui que vous enverriez autrement. Si votre ressource ne dessert qu'un seul site et n'est pas acheminéeHost, ne la définissez pas.

resolutionMode

Choisissez PUBLIC quand la cible de la ressource est un nom pouvant être résolu publiquement ou une adresse IP publique. Choisissez le IN_VPC moment où la ressource cible est résolue uniquement dans votre VPC (DNS privé ou adresse IP privée), ce qui est le cas courant pour les ressources internes. Une cible IP privée littérale (par exemple10.0.5.20) fonctionne dans les deux modes, car il n'y a aucun nom DNS à résoudre.

Restrictions relatives aux ressources cibles

Amazon Bedrock valide resourceTarget lorsque vous créez la configuration pour empêcher que le service ne soit dirigé vers lui-même ou vers une infrastructure interne. Les cibles suivantes sont rejetées :

  • Adresses de bouclage (127.0.0.0/8,::1) et. localhost

  • Link-local adresses (169.254.0.0/16,fe80::/10), y compris le point de terminaison des métadonnées de l'instance169.254.169.254.

  • Un caractère générique ou une adresse locale quelconque (0.0.0.0,::) et le bloc. 0.0.0.0/8

  • Adresses de multidiffusion.

  • Littéraux IPv6. La passerelle étant configurée IPv4-only, les cibles IP doivent être une adresse IPv4 à quatre points.

Les noms DNS sont autorisés. La validation ne les résout pas. La cible doit donc toujours être accessible depuis les sous-réseaux de votre passerelle.

Sortir du groupe de sécurité par défaut

Comme Amazon Bedrock utilise le groupe de sécurité par défaut de votre VPC pour la passerelle, les règles de sortie de ce groupe de sécurité doivent autoriser l'accès. resourceTarget port Si le groupe de sécurité par défaut est verrouillé, la création échoue rapidement avec un message clair au lieu d'expirer ultérieurement. Avant de créer la configuration, assurez-vous qu'une règle de sortie autorise le trafic depuis les sous-réseaux de passerelle vers la cible et le port.

Base de connaissances : autorisations relatives aux rôles IAM

Amazon Bedrock assume le rôle IAM associé à votre base de connaissances pour provisionner puis supprimer les ressources réseau de votre compte. Le rôle doit accorder les autorisations de création et de suppression ci-dessous, ainsi que les autorisations de lecture qui rendent les nouvelles tentatives de suppression idempotentes. Chaque ressource créée par Amazon Bedrock est balisée ManagedBy=VPCProxyService et les autorisations destructrices sont limitées à cette balise, de sorte que le rôle ne peut agir que sur les ressources créées par cette fonctionnalité.

  • Créez vpc-lattice:CreateResourceGateway,,vpc-lattice:CreateResourceConfiguration, vpc-lattice:TagResource vpc-lattice:PutResourcePolicyram:CreateResourceShare, et iam:CreateServiceLinkedRole (une seule fois ram:TagResourceram:AssociateResourceShare, pour le rôle lié au service VPC Lattice).

  • Supprimer vpc-lattice:DeleteResourceGatewayvpc-lattice:DeleteResourceConfiguration, etram:DeleteResourceShare.

  • Lire (validation et idempotence) vpc-lattice:GetResourceGateway,vpc-lattice:GetResourceConfiguration, ram:GetResourceShares ec2:DescribeSubnetsec2:DescribeSecurityGroups, et. ec2:DescribeVpcs

Important

Accordez les deux vpc-lattice:GetResourceGateway etvpc-lattice:GetResourceConfiguration. Les autorisations de suppression étant limitées par des balises, la suppression d'une ressource déjà supprimée renvoie une erreur d'accès refusé plutôt qu'une erreur introuvable. Amazon Bedrock utilise ces autorisations de lecture non balisées pour distinguer une ressource déjà supprimée (considérée comme une réussite) d'un véritable problème d'autorisations. Sans eux, une nouvelle tentative de suppression après un échec partiel peut rester bloquée.

L'exemple de politique suivant accorde les autorisations requises. Remplacez region et accountId par vos valeurs.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VpcProxyCreateTagged", "Effect": "Allow", "Action": [ "vpc-lattice:CreateResourceGateway", "vpc-lattice:CreateResourceConfiguration", "vpc-lattice:TagResource" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService", "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["ManagedBy"] } } }, { "Sid": "VpcProxyPutResourcePolicy", "Effect": "Allow", "Action": "vpc-lattice:PutResourcePolicy", "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamCreate", "Effect": "Allow", "Action": "ram:CreateResourceShare", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService" }, "StringEqualsIfExists": { "ram:RequestedResourceType": "vpc-lattice:ResourceConfiguration" } } }, { "Sid": "VpcProxyRamAssociate", "Effect": "Allow", "Action": "ram:AssociateResourceShare", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamTagOnCreate", "Effect": "Allow", "Action": "ram:TagResource", "Resource": [ "arn:aws:ram:region:accountId:resource-share/*" ], "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService", "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["ManagedBy"] } } }, { "Sid": "VpcProxyDeleteTagged", "Effect": "Allow", "Action": [ "vpc-lattice:DeleteResourceConfiguration", "vpc-lattice:DeleteResourceGateway" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamDeleteTagged", "Effect": "Allow", "Action": "ram:DeleteResourceShare", "Resource": [ "arn:aws:ram:region:accountId:resource-share/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "StringLike": { "ram:ResourceShareName": "vpc-proxy-share-*" } } }, { "Sid": "VpcProxyGetResource", "Effect": "Allow", "Action": [ "vpc-lattice:GetResourceConfiguration", "vpc-lattice:GetResourceGateway" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ] }, { "Sid": "VpcProxyRamGetResourceShares", "Effect": "Allow", "Action": "ram:GetResourceShares", "Resource": "*" }, { "Sid": "VpcProxyEc2Describe", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "VpcProxyLatticeServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::accountId:role/aws-service-role/vpc-lattice.amazonaws.com/*" ], "Condition": { "StringEquals": { "iam:AWSServiceName": "vpc-lattice.amazonaws.com" } } } ] }

Cycle de vie

  • Une configuration VPC passe CREATING à CREATED ou àCREATE_FAILED. Lorsque vous le supprimez, son statut estDELETING, ouDELETE_FAILED.

  • La création et la suppression sont asynchrones. Sondage GetVpcConfiguration pour suivre les progrès. En cas d'échec, statusMessage indique la cause donnant lieu à une action, telle qu'une autorisation manquante.

  • La délétion est idempotente. Une suppression partiellement terminée converge lorsque vous la réessayez.