

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
<a name="kb-managed-vpc-configuration"></a>

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ée`ManagedBy=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](#kb-managed-vpc-configuration-role).

## Ce que vous offrez
<a name="kb-managed-vpc-configuration-provide"></a>

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](#kb-managed-vpc-configuration-role). | 

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](#kb-managed-vpc-configuration-egress).

## Exigences réseau
<a name="kb-managed-vpc-configuration-network"></a>

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 exemple`10.{{x}}`,`172.{{x}}`, ou`192.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
<a name="kb-managed-vpc-configuration-create"></a>

------
#### [ 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.

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

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

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

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

1. Dans ** Port**, entrez le numéro de port sur lequel vous souhaitez vous connecter (par exemple, `443` ou`8090`).

1. Pour ** Protocole**, choisissez ** HTTPS ** ou ** HTTP**.

1. 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.

1. (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'`Host`en-tête HTTP.

1. (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`

1. 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](#kb-managed-vpc-configuration-target). | 
| 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. `CreateVpcConfiguration`renvoie une `202` réponse avec un `vpcConfigurationId` et un statut de`CREATING`. Effectuez un sondage `GetVpcConfiguration` jusqu'à ce que le statut soit `CREATED` (ou`CREATE_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
<a name="kb-managed-vpc-configuration-fields"></a>

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'`HTTPS`invoquer via TLS.

`tlsServerName`  
Obligatoire quand `protocol` c'est`HTTPS`. 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'`Host`en-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ée`Host`, 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 exemple`10.0.5.20`) fonctionne dans les deux modes, car il n'y a aucun nom DNS à résoudre.

## Restrictions relatives aux ressources cibles
<a name="kb-managed-vpc-configuration-target"></a>

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'instance`169.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
<a name="kb-managed-vpc-configuration-egress"></a>

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
<a name="kb-managed-vpc-configuration-role"></a>

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:PutResourcePolicy``ram:CreateResourceShare`, et `iam:CreateServiceLinkedRole` (une seule fois `ram:TagResource``ram:AssociateResourceShare`, pour le rôle lié au service VPC Lattice).
+ **Supprimer ** — `vpc-lattice:DeleteResourceGateway``vpc-lattice:DeleteResourceConfiguration`, et`ram:DeleteResourceShare`.
+ **Lire (validation et idempotence) ** —`vpc-lattice:GetResourceGateway`,`vpc-lattice:GetResourceConfiguration`, `ram:GetResourceShares` `ec2:DescribeSubnets``ec2:DescribeSecurityGroups`, et. `ec2:DescribeVpcs`

**Important**  
Accordez les deux `vpc-lattice:GetResourceGateway` et`vpc-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
<a name="kb-managed-vpc-configuration-lifecycle"></a>
+ Une configuration VPC passe `CREATING` à `CREATED` ou à`CREATE_FAILED`. Lorsque vous le supprimez, son statut est`DELETING`, ou`DELETE_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.