

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.

# Connexion à un cluster Amazon Neptune
<a name="get-started-connecting"></a>

Après avoir créé un cluster Neptune, vous pouvez configurer les méthodes de connexion pour y accéder.

## Configuration de `curl` ou awscurl pour communiquer avec le point de terminaison Neptune
<a name="get-started-access-graph-curl"></a>

Il est particulièrement utile d'avoir recours à un outil en ligne de commande pour envoyer des requêtes à votre cluster de bases de données Neptune, comme l'illustrent de nombreux exemples dans cette documentation. L'outil de ligne de commande [curl](https://curl.haxx.se/) est une excellente option pour communiquer avec les points de terminaison Neptune lorsque l'authentification IAM n'est pas activée. Les versions 7.75.0 et supérieures prennent en charge l'option `--aws-sigv4` de signature des demandes lorsque l'authentification IAM est activée.

Pour les points de terminaison sur lesquels l'authentification IAM *est* activée, vous pouvez également recourir à [awscurl](https://github.com/okigan/awscurl), qui utilise presque exactement la même syntaxe que `curl`, mais qui prend en charge la signature des demandes requise pour l'authentification IAM. En raison de la sécurité accrue offerte par l'authentification IAM, il est généralement judicieux de l'activer.

 Pour en savoir plus sur le fonctionnement de l'outil `curl` (ou `awscurl`), consultez la [page principale de curl](https://curl.haxx.se/docs/manpage.html) et le livre *[Everything curl](https://ec.haxx.se/)* (Tout sur curl).

Pour se connecter à l'aide du protocole HTTPS (requis par Neptune), `curl` doit avoir accès aux certificats appropriés. Dans la mesure où `curl` peut localiser les certificats appropriés, il gère les connexions HTTPS comme des connexions HTTP, sans paramètres supplémentaires. Il en va de même pour `awscurl`. Les exemples de cette documentation sont basés sur ce scénario.

Pour découvrir comment obtenir ces certificats et comment les mettre correctement en forme dans un magasin de certificats CA utilisable par `curl`, consultez [SSL Certificate Verification (Vérification des certificats SSL)](https://curl.haxx.se/docs/sslcerts.html) dans la documentation `curl`.

Vous pouvez ensuite spécifier l'emplacement de ce magasin de certificats CA à l'aide de la variable d'environnement `CURL_CA_BUNDLE`. Sous Windows, `curl` le recherche automatiquement dans un fichier nommé `curl-ca-bundle.crt`. Il examine d'abord dans le même répertoire que `curl.exe`, puis ailleurs sur le chemin. Pour plus d’informations, consultez [SSL Certificate Verification (Vérification des certificats SSL)](https://curl.haxx.se/docs/sslcerts.html).

## Différentes façons de se connecter à un cluster de bases de données Neptune
<a name="get-started-connect-ways"></a>

Les clusters de bases de données Amazon Neptune peuvent *uniquement* être créés dans un Amazon Virtual Private Cloud (Amazon VPC). Ses points de terminaison ne sont accessibles qu'au sein de ce VPC, sauf si vous activez et configurez les points de terminaison [publics Neptune](neptune-public-endpoints.md) pour le cluster de base de données.

Il existe différentes manières de configurer l’accès au cluster de bases de données Neptune dans son VPC :
+ [Connexion à partir d'une instance Amazon EC2 dans le même VPC](get-started-connect-ec2-same-vpc.md)
+ [Connexion à partir d'une instance Amazon EC2 dans un autre VPC](get-started-connect-ec2-other-vpc.md)
+ [Connexion à partir d'un réseau privé](get-started-connect-private-net.md)
+ [Connexion depuis un point de terminaison public](neptune-public-endpoints.md)

# Connexion d'une instance Amazon EC2 au cluster Amazon Neptune dans le même VPC
<a name="get-started-connect-ec2-same-vpc"></a>

L'un des moyens les plus courants de connexion à une base de données Neptune consiste à utiliser une instance Amazon EC2 située dans le même VPC que le cluster de bases de données Neptune. Par exemple, l'instance EC2 pourrait exécuter un serveur web connecté à Internet. Dans ce cas, seule l'instance EC2 a accès au cluster de bases de données Neptune, et Internet n'a accès qu'à l'instance EC2 :

![\[Schéma d'accès à un cluster Neptune à partir d'une instance EC2 dans le même VPC.\]](http://docs.aws.amazon.com/fr_fr/neptune/latest/userguide/images/VPC-connection-01.png)


Pour activer cette configuration, vous devez configurer les groupes de sécurité VPC et les groupes de sous-réseaux appropriés. Le serveur web étant hébergé dans un sous-réseau public, il peut communiquer avec Internet, et l'instance de cluster Neptune est hébergée dans un sous-réseau privé afin d'assurer sa sécurité. Consultez [Configureation du VPC Amazon où se trouve le cluster de bases de données Amazon Neptune](get-started-vpc.md).

Pour que l'instance Amazon EC2 se connecte à votre point de terminaison Neptune, par exemple sur le port `8182`, vous devez configurer un groupe de sécurité à cet effet. Si l'instance Amazon EC2 utilise un groupe de sécurité nommé, par exemple `ec2-sg1`, vous devez créer un autre groupe de sécurité Amazon EC2 (disons `db-sg1`) avec des règles entrantes pour le port `8182` et `ec2-sg1` comme source. Ensuite, ajoutez `db-sg1` au cluster Neptune pour autoriser la connexion.

Après avoir créé l'instance Amazon EC2, vous pouvez vous y connecter via SSH et vous connecter au cluster de bases de données Neptune. Pour plus d'informations sur la connexion à une instance EC2 via SSH, consultez la section [Connect to your Linux User Guide](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) d'utilisation d'*Amazon EC2*.

Si vous utilisez une ligne de commande Linux ou macOS pour vous connecter à l'instance EC2, vous pouvez coller la commande SSH depuis l'**SSHAccess**élément situé dans la section **Sorties** de la CloudFormation pile. Le fichier PEM doit se trouver dans le répertoire actuel et les autorisations pour ce fichier doivent être définies sur 400 (`chmod 400 keypair.pem`).

**Pour créer un VPC avec des sous-réseaux publics et privés**

1. Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Dans le coin supérieur droit du AWS Management Console, choisissez la région dans laquelle créer votre VPC.

1. Dans **Tableau de bord VPC**, choisissez **Lancer l'assistant VPC**.

1. Renseignez la zone **Paramètres VPC** de la page **Créer un VPC** :

   1. Sous**Ressources à créer**, choisissez**VPC, sous-réseaux, etc.**.

   1. Laissez la balise de nom par défaut telle quelle ou entrez le nom de votre choix, ou décochez la case **Génération automatique** pour désactiver la génération des balises de nom.

   1. Laissez la valeur du bloc IPv4 CIDR à. `10.0.0.0/16`

   1. Laissez la valeur du bloc IPv6 CIDR sur **Aucun bloc IPv6 CIDR.**

   1. Laissez l'option **Location** : **Par défaut**.

   1. Laissez le nombre de **zones de disponibilité (AZs)** à **2**.

   1. Laissez la valeur **Aucune** pour **Passerelles NAT (\$1)**, sauf si vous avez besoin d'une ou de plusieurs passerelles NAT.

   1. Définissez **Points de terminaison VPC** sur **Aucun**, sauf si vous utilisez Amazon S3.

   1. Les cases **Activer les noms d'hôte DNS** et **Activer la résolution DNS** doivent toutes deux être cochées.

1. Sélectionnez **Create VPC** (Créer un VPC).

# Connexion d'une instance Amazon EC2 à un cluster Amazon Neptune dans un autre VPC
<a name="get-started-connect-ec2-other-vpc"></a>

Un cluster de base de données Amazon Neptune *ne* peut être créé que dans un Amazon Virtual Private Cloud (Amazon VPC), et ses points de terminaison sont accessibles au sein de ce VPC, généralement à partir d'une instance Amazon Elastic Compute Cloud (Amazon EC2) exécutée dans ce VPC. Il est également possible d'y accéder via un point de terminaison public. Pour plus d'informations sur les points de terminaison publics, consultez la section Points de terminaison publics [Neptune](neptune-public-endpoints.md). 

Lorsque le cluster de bases de données se trouve dans un VPC différent de l'instance EC2 que vous utilisez pour y accéder, vous pouvez utiliser l'[appairage de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) pour établir la connexion :

![\[Schéma d'accès à un cluster Neptune depuis un autre VPC.\]](http://docs.aws.amazon.com/fr_fr/neptune/latest/userguide/images/VPC-connection-02.png)


Une connexion d'appairage VPC est une connexion réseau entre deux personnes VPCs qui achemine le trafic entre elles de manière privée, afin que les instances de l'un ou l'autre VPC puissent communiquer comme si elles se trouvaient sur le même réseau. Vous pouvez créer une connexion d'appairage VPC entre VPCs votre compte, entre un VPC de votre compte AWS et un VPC d'un autre compte AWS , ou avec un VPC d'une autre région. AWS 

AWS utilise l'infrastructure existante d'un VPC pour créer une connexion d'appairage VPC. Il ne s'agit ni d'une passerelle ni d'une connexion AWS Site-to-Site VPN, et elle ne repose pas sur un matériel physique distinct. Il n'y a pas de point unique de défaillance pour la communication ni de goulet d'étranglement en termes de bande passante.

Pour plus d'informations sur les connexions d'appairage de VPC, consultez le [Guide sur l'appairage de VPC Amazon](https://docs.aws.amazon.com/vpc/latest/peering/).

# Connexion à un cluster Amazon Neptune via un réseau privé
<a name="get-started-connect-private-net"></a>

Vous pouvez accéder à un cluster de bases de données Neptune à partir d'un réseau privé de deux manières différentes :
+ À l'aide d'une connexion [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).
+ Avec une connexion [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/)

Les liens ci-dessus contiennent des informations sur ces méthodes de connexion et sur la façon de les configurer. La configuration d'une AWS Site-to-Site connexion peut ressembler à ceci :

![\[Schéma d'accès à un cluster Neptune à partir d'un réseau privé\]](http://docs.aws.amazon.com/fr_fr/neptune/latest/userguide/images/VPC-connection-04.png)


# Points de terminaison publics Neptune
<a name="neptune-public-endpoints"></a>

## Présentation de
<a name="neptune-public-endpoints-overview"></a>

Les clusters Amazon Neptune sont généralement déployés au sein de votre VPC et ne sont accessibles qu'à partir de ce VPC. Cela nécessite de configurer des applications et des environnements de développement au sein du VPC ou d'utiliser des services proxy pour se connecter au VPC, ce qui augmente le temps et les coûts de configuration.

Les points de terminaison publics simplifient cette expérience en permettant des connexions directes à Neptune via Internet, ce qui permet de démarrer plus facilement avec des bases de données de graphes sans connaissances spécifiques en matière de réseau.

## Quand utiliser des points de terminaison publics
<a name="neptune-public-endpoints-when-to-use"></a>

Envisagez d'utiliser des points de terminaison publics dans les scénarios suivants :
+ Vous souhaitez tester rapidement Neptune dans un environnement de développement ou de test sans configuration réseau complexe
+ Vous n'avez pas de connaissances spécialisées AWS en matière de réseaux
+ Le niveau de sécurité de votre application ne nécessite pas de VPC privé
+ Vous devez vous connecter à Neptune depuis votre environnement de développement local

## Considérations sur la sécurité
<a name="neptune-public-endpoints-security"></a>

Lorsque vous utilisez des points de terminaison publics, tenez compte des considérations de sécurité suivantes :
+ L'authentification IAM est requise pour les clusters dont les points de terminaison publics sont activés.
+ L'accès à la base de données est contrôlé par le groupe de sécurité qu'elle utilise.
+ Vous pouvez restreindre les adresses IP autorisées à se connecter à votre cluster.
+ Vous pouvez utiliser les politiques IAM pour contrôler qui peut créer ou modifier des clusters avec un accès public. Voir : [Restreindre la création d'accès public](#neptune-public-endpoints-restrict-access)

## Activation des terminaux publics
<a name="neptune-public-endpoints-enabling"></a>

Par défaut, les nouvelles bases de données Neptune sont créées avec les points de terminaison publics désactivés. Vous devez explicitement activer l'accès public lors de la création ou de la modification d'un cluster.

Les points de terminaison publics sont pris en charge à partir de la version 1.4.6.x du moteur Neptune. Vous devez mettre à niveau les clusters existants vers au moins cette version pour utiliser cette fonctionnalité.

Le paramètre de point de terminaison public est disponible sur l'instance Neptune et non sur le cluster Neptune. Par conséquent, un cluster Neptune peut exister avec certaines instances avec des points de terminaison publics et d'autres non. Toutefois, nous ne recommandons pas d'utiliser un tel paramètre. Pour plus d'informations à ce sujet, reportez-vous à : [Fonctionnement des points de terminaison publics](#neptune-public-endpoints-how-they-work)

## Conditions préalables
<a name="neptune-public-endpoints-prerequisites"></a>

### Paramètre d'authentification IAM sur le cluster Neptune
<a name="neptune-public-endpoints-iam-auth"></a>

Avant d'activer des points de terminaison publics sur une instance Neptune, assurez-vous que votre cluster prend en charge l'authentification IAM. Si ce n'est pas le cas, activez-le à l'aide de la commande suivante :

```
aws neptune modify-db-cluster \
  --region us-west-2 \
  --engine graphdb \
  --engine-version 1.4.6.x \
  --db-cluster-identifier neptune-public-endpoint \
  --enable-iam-database-authentication
```

### Paramètres réseau
<a name="neptune-public-endpoints-network-settings"></a>

1. Assurez-vous que votre VPC possède des sous-réseaux qui permettent le routage public (il comporte une entrée pour une passerelle Internet dans la table de routage des sous-réseaux). Si vous ne fournissez aucun `db-subnet-group-name` paramètre lors de la création du cluster, le groupe de sous-réseaux par défaut est sélectionné pour la création du cluster.

1. Assurez-vous que le groupe de sécurité attaché au cluster autorise le trafic entrant pour les plages d'adresses IP autorisées et les ports autorisés. Par exemple, si vous souhaitez autoriser le trafic TCP provenant de tous IPs à se connecter à l'instance Neptune exécutée sur le port 8182, la règle entrante doit avoir :

   1. Type : Tout TCP

   1. Protocole : TCP

   1. Portée de ports : 8182

   1. Bloc CIDR : 0.0.0.0/0

**Note**  
Bien que vous puissiez définir la plage de blocs CIDR sur 0.0.0.0/0, nous vous recommandons de la réduire à une plage d'adresses IP spécifique de votre application cliente pour une meilleure sécurité.

## Création d'une nouvelle instance avec des points de terminaison publics
<a name="neptune-public-endpoints-creating-instance"></a>

Vous pouvez créer une nouvelle instance Neptune avec des points de terminaison publics à l'aide de la console de AWS gestion, de la AWS CLI ou du SDK. AWS 

À l'aide de la AWS CLI :

```
aws neptune create-db-instance \
  --region us-west-2 \
  --engine graphdb \
  --engine-version 1.4.6.x \
  --db-cluster-identifier neptune-public-endpoint \
  --publicly-accessible
```

## Modification d'une instance existante pour un accès public
<a name="neptune-public-endpoints-modifying-instance"></a>

Pour modifier une instance Neptune existante afin de permettre l'accès public :

```
aws neptune modify-db-instance \
  --region us-west-2 \
  --engine graphdb \
  --engine-version 1.4.6.x \
  --db-instance-identifier neptune-public-endpoint \
  --publicly-accessible
```

**Note**  
L'accès public est activé au niveau de l'instance, et non au niveau du cluster. Pour garantir que votre cluster est toujours accessible via des points de terminaison publics, l'accès public doit être activé pour toutes les instances du cluster.

## Utilisation des points de terminaison publics
<a name="neptune-public-endpoints-using"></a>

Pour vérifier si votre base de données est accessible, vérifiez son état à l'aide de l'`NeptuneData`API AWS CLI :

```
aws neptunedata get-engine-status \
  --endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
```

Si la base de données est accessible, la réponse est la suivante :

```
{
    "status": "healthy",
    "startTime": "Sun Aug 10 06:54:15 UTC 2025",
    "dbEngineVersion": "1.4.6.0.R1",
    "role": "writer",
    "dfeQueryEngine": "viaQueryHint",
    "gremlin": {
        "version": "tinkerpop-3.7.1"
    },
    "sparql": {
        "version": "sparql-1.1"
    },
    "opencypher": {
        "version": "Neptune-9.0.20190305-1.0"
    },
    "labMode": {
        "ObjectIndex": "disabled",
        "ReadWriteConflictDetection": "enabled"
    },
    "features": {
        "SlowQueryLogs": "disabled",
        "InlineServerGeneratedEdgeId": "disabled",
        "ResultCache": {
            "status": "disabled"
        },
        "IAMAuthentication": "disabled",
        "Streams": "disabled",
        "AuditLog": "disabled"
    },
    "settings": {
        "StrictTimeoutValidation": "true",
        "clusterQueryTimeoutInMs": "120000",
        "SlowQueryLogsThreshold": "5000"
    }
}
```

## Exemples d'interrogation de la base de données
<a name="neptune-public-endpoints-examples"></a>

### AWS CLI
<a name="neptune-public-endpoints-aws-cli"></a>

```
aws neptunedata execute-open-cypher-query \
--open-cypher-query "MATCH (n) RETURN n LIMIT 10" \
--endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
```

### Python
<a name="neptune-public-endpoints-python"></a>

```
import boto3
import json
from botocore.config import Config

# Configuration - Replace with your actual Neptune cluster details
cluster_endpoint = "my-cluster-name.cluster-abcdefgh1234.my-region.neptune.amazonaws.com"
port = 8182
region = "my-region"

# Configure Neptune client
# This disables retries and sets the client timeout to infinite 
#     (relying on Neptune's query timeout)
endpoint_url = f"https://{cluster_endpoint}:{port}"
config = Config(
    region_name=region,
    retries={'max_attempts': 1},
    read_timeout=None
)

client = boto3.client("neptunedata", config=config, endpoint_url=endpoint_url)

cypher_query = "MATCH (n) RETURN n LIMIT 5"
try:
    response = client.execute_open_cypher_query(openCypherQuery=cypher_query)
    print("openCypher Results:")
    for item in response.get('results', []):
        print(f"  {item}")
except Exception as e:
    print(f"openCypher query failed: {e}")
```

### JavaScript
<a name="neptune-public-endpoints-javascript"></a>

```
import {
    NeptunedataClient,
    GetPropertygraphSummaryCommand
} from "@aws-sdk/client-neptunedata";
import { inspect } from "util";
import { NodeHttpHandler } from "@smithy/node-http-handler";

/**
 * Main execution function
 */
async function main() {
    // Configuration - Replace with your actual Neptune cluster details
    const clusterEndpoint = 'my-cluster-name.cluster-abcdefgh1234.my-region.neptune.amazonaws.com';
    const port = 8182;
    const region = 'my-region';

    // Configure Neptune client
    // This disables retries and sets the client timeout to infinite 
    //     (relying on Neptune's query timeout)
    const endpoint = `https://${clusterEndpoint}:${port}`;
    const clientConfig = {
        endpoint: endpoint,
        sslEnabled: true,
        region: region,
        maxAttempts: 1,  // do not retry
        requestHandler: new NodeHttpHandler({
            requestTimeout: 0  // no client timeout
        })
    };

    const client = new NeptunedataClient(clientConfig);
    try {
        try {
            const command = new GetPropertygraphSummaryCommand({ mode: "basic" });
            const response = await client.send(command);
            console.log("Graph Summary:", inspect(response.payload, { depth: null }));
        } catch (error) {
            console.log("Property graph summary failed:", error.message);
        }    
    } catch (error) {
        console.error("Error in main execution:", error);
    }
}

// Run the main function
main().catch(console.error);
```

### Go
<a name="neptune-public-endpoints-go"></a>

```
package main
import (
    "context"
    "fmt"
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/neptunedata"
    "os"
    "encoding/json"
    "net/http"
)

func main() {    
    // Configuration - Replace with your actual Neptune cluster details
    clusterEndpoint := "my-cluster-name.cluster-abcdefgh1234.my-region.neptune.amazonaws.com"
    port := 8182
    region := "my-region"
    
    // Configure Neptune client
    // Configure HTTP client with no timeout
    //    (relying on Neptune's query timeout)
    endpoint := fmt.Sprintf("https://%s:%d", clusterEndpoint, port)
    // Load AWS SDK configuration
    sdkConfig, _ := config.LoadDefaultConfig(
        context.TODO(),
        config.WithRegion(region),
        config.WithHTTPClient(&http.Client{Timeout: 0}),
    )
    
    // Create Neptune client with custom endpoint
    client := neptunedata.NewFromConfig(sdkConfig, func(o *neptunedata.Options) {
        o.BaseEndpoint = aws.String(endpoint)
        o.Retryer = aws.NopRetryer{} // Do not retry calls if they fail
    })

    gremlinQuery := "g.addV('person').property('name','charlie').property(id,'charlie-1')"
    serializer := "application/vnd.gremlin-v1.0+json;types=false"
    
    gremlinInput := &neptunedata.ExecuteGremlinQueryInput{
        GremlinQuery: &gremlinQuery,
        Serializer:   &serializer,
    }
    gremlinResult, err := client.ExecuteGremlinQuery(context.TODO(), gremlinInput)
    if err != nil {
        fmt.Printf("Gremlin query failed: %v\n", err)
    } else {
        var resultMap map[string]interface{}
        err = gremlinResult.Result.UnmarshalSmithyDocument(&resultMap)
        if err != nil {
            fmt.Printf("Error unmarshaling Gremlin result: %v\n", err)
        } else {
            resultJSON, _ := json.MarshalIndent(resultMap, "", "  ")
            fmt.Printf("Gremlin Result: %s\n", string(resultJSON))
        }
    }
}
```

## Comment fonctionnent les terminaux publics
<a name="neptune-public-endpoints-how-they-work"></a>

Lorsqu'une instance Neptune est accessible au public :
+ Son point de terminaison DNS est résolu vers l'adresse IP privée depuis le VPC du cluster de base de données.
+ Il est résolu vers l'adresse IP publique depuis l'extérieur du VPC du cluster.
+ L'accès est contrôlé par le groupe de sécurité attribué au cluster.
+ Seules les instances accessibles au public sont accessibles via Internet.

### Comportement du terminal du lecteur
<a name="neptune-public-endpoints-reader-behavior"></a>
+ Si toutes les instances du lecteur sont accessibles au public, le point de terminaison du lecteur sera toujours résolu via l'Internet public.
+ Si seules certaines instances de lecteur sont accessibles au public, le point de terminaison du lecteur ne sera résolu publiquement que s'il sélectionne une instance accessible au public pour répondre à la requête de lecture.

### Comportement des terminaux du cluster
<a name="neptune-public-endpoints-cluster-behavior"></a>
+ Le point de terminaison du cluster de base de données est toujours le point de terminaison de l'instance du rédacteur.
+ Si le point de terminaison public est activé sur l'instance du rédacteur, le point de terminaison du cluster sera accessible au public, sinon il ne le sera pas.

### Comportement après le basculement d'un cluster
<a name="neptune-public-endpoints-failover-behavior"></a>
+ Un cluster Neptune peut avoir des instances dans différents paramètres accessibles au public.
+ Si un cluster possède un rédacteur public et un lecteur non public, publiez un basculement du cluster, le nouveau rédacteur (lecteur précédent) devient non public et le nouveau lecteur (rédacteur précédent) devient public.

## Exigences en matière de configuration du réseau
<a name="neptune-public-endpoints-network-requirements"></a>

Pour que les points de terminaison publics fonctionnent correctement :

1. Les instances Neptune doivent se trouver dans des sous-réseaux publics au sein de votre VPC.

1. Les tables de routage associées à ces sous-réseaux doivent disposer d'une route vers une passerelle Internet pour 0.0.0.0/0.

1. Le groupe de sécurité doit autoriser l'accès à partir des adresses IP publiques ou des plages d'adresses CIDR auxquelles vous souhaitez accorder l'accès.

## Restreindre la création d'accès public
<a name="neptune-public-endpoints-restrict-access"></a>

Vous pouvez utiliser les politiques IAM pour restreindre les personnes autorisées à créer ou à modifier des clusters Neptune avec un accès public. L'exemple de politique suivant refuse la création d'instances Neptune accessibles au public :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "rds:CreateDBInstance",
        "rds:ModifyDBInstance",
        "rds:RestoreDBInstanceFromDBSnapshot",
        "rds:RestoreDBInstanceToPointInTime"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "rds:PubliclyAccessible": true
        }
      }
    }
  ]
}
```

------

En savoir plus sur la clé de condition `rds:PublicAccessEnabled` IAM : [Amazon RDS Service](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonrds.html#amazonrds-rds_PubliclyAccessible) Authorization Reference

## CloudFormation soutien
<a name="neptune-public-endpoints-cloudformation"></a>

Vous pouvez l'utiliser CloudFormation pour lancer des clusters Neptune avec des points de terminaison publics activés en spécifiant le `PubliclyAccessible` paramètre dans votre modèle. CloudFormation 

## Compatibilité avec les fonctionnalités de Neptune
<a name="neptune-public-endpoints-compatibility"></a>

Un cluster dont les points de terminaison publics sont activés prend en charge toutes les fonctionnalités Neptune prises en charge par un cluster uniquement VPC, notamment :
+ Établi Neptune
+ Intégration de la recherche en texte intégral
+ Neptune Streams
+ Points de terminaison personnalisés
+ Neptune sans serveur
+ Explorateur de graphes

## Tarification
<a name="neptune-public-endpoints-pricing"></a>

Les terminaux publics sont disponibles sans frais supplémentaires au-delà de la tarification standard de Neptune. Cependant, la connexion de votre environnement local à Neptune via une adresse IP publique peut entraîner une augmentation des coûts de transfert de données.