

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.

# Gestion et connexion aux clusters SQL Amazon Aurora à l'aide de AWS PrivateLink
<a name="privatelink-managing-clusters"></a>

Avec AWS PrivateLink Amazon Aurora DSQL, vous pouvez configurer des points de terminaison Amazon VPC (points de terminaison d'interface) dans votre Amazon Virtual Private Cloud. Ces points de terminaison sont directement accessibles depuis des applications installées sur site via Amazon VPC et/ou via un Direct Connect autre système de peering Région AWS via Amazon VPC. En utilisant AWS PrivateLink et en interfacant les points de terminaison, vous pouvez simplifier la connectivité réseau privé entre vos applications et Aurora DSQL.

Les applications de votre Amazon VPC peuvent accéder à Aurora DSQL via les points de terminaison de l’interface Amazon VPC sans avoir besoin d’adresses IP publiques.

Les points de terminaison d'interface sont représentés par une ou plusieurs interfaces réseau élastiques (ENIs) auxquelles des adresses IP privées sont attribuées à partir de sous-réseaux de votre Amazon VPC. Les demandes adressées à Aurora DSQL via les points de terminaison de l'interface restent sur le AWS réseau. Pour plus d’informations sur la façon de connecter votre Amazon VPC à votre réseau sur site, consultez le [Guide de l’utilisateur Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/) et le Guide de l’utilisateur [VPN AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).

Pour des informations générales sur les points de terminaison d'interface, consultez la section [Accès à un AWS service à l'aide d'un point de terminaison Amazon VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) dans [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink)le guide de l'utilisateur.

## Types de points de terminaison Amazon VPC pour Aurora DSQL
<a name="endpoint-types-dsql"></a>

 Aurora DSQL nécessite deux types de points de AWS PrivateLink terminaison différents. 

1. *Point de terminaison de gestion* : ce point de terminaison est utilisé pour les opérations administratives telles que `get`, `create`, `update`, `delete` et `list` sur les clusters Aurora DSQL. Consultez [Gestion des clusters SQL Aurora à l'aide de AWS PrivateLink](#managing-dsql-clusters-using-privatelink).

1. *Point de terminaison de connexion* : ce point de terminaison est utilisé pour la connexion aux clusters Aurora DSQL via les clients PostgreSQL. Consultez [Connexion aux clusters SQL Aurora à l'aide de AWS PrivateLink](#privatelink-connecting-clusters). 

## Considérations relatives à l'utilisation AWS PrivateLink d'Aurora DSQL
<a name="privatelink-dsql-considerations"></a>

Les considérations relatives à Amazon VPC s'appliquent à AWS PrivateLink Aurora DSQL. Pour plus d'informations, consultez la section [Accès à un AWS service à l'aide d'un point de terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-interface-limitations) et de [AWS PrivateLink quotas](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) dans le AWS PrivateLink Guide.

## Gestion des clusters SQL Aurora à l'aide de AWS PrivateLink
<a name="managing-dsql-clusters-using-privatelink"></a>

Vous pouvez utiliser le AWS Command Line Interface ou les kits de développement AWS logiciel (SDKs) pour gérer les clusters Aurora DSQL via les points de terminaison de l'interface Aurora DSQL.

### Création d’un point de terminaison Amazon VPC
<a name="create-vpc-endpoint"></a>

Pour créer un point de terminaison d'interface Amazon VPC, consultez la section [Créer un point de terminaison Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) dans le Guide. AWS PrivateLink 

```
aws ec2 create-vpc-endpoint \
--region {{region}} \
--service-name com.amazonaws.{{region}}.dsql \
--vpc-id {{your-vpc-id}} \
--subnet-ids {{your-subnet-id}} \
--vpc-endpoint-type Interface \
--security-group-ids {{client-sg-id}} \
```

Pour utiliser le nom DNS régional par défaut pour les demandes d’API Aurora DSQL, ne désactivez pas le DNS privé lorsque vous créez le point de terminaison de l’interface Aurora DSQL. Lorsque le DNS privé est activé, les demandes adressées au service Aurora DSQL depuis votre Amazon VPC sont automatiquement résolues vers l’adresse IP privée du point de terminaison Amazon VPC, plutôt que vers le nom DNS public. Lorsque le DNS privé est activé, les demandes Aurora DSQL effectuées au sein de votre Amazon VPC sont automatiquement résolues vers votre point de terminaison Amazon VPC. 

Si le DNS privé n'est pas activé, utilisez les `--endpoint-url` paramètres `--region` et avec les AWS CLI commandes pour gérer les clusters Aurora DSQL via les points de terminaison de l'interface Aurora DSQL.

### Établissement de la liste des clusters à l’aide d’une URL de point de terminaison
<a name="list-clusters-endpoint-url"></a>

Dans l'exemple suivant, remplacez le nom DNS Région AWS `us-east-1` et le nom DNS de l'ID du point de terminaison Amazon VPC `vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com` par vos propres informations.

```
aws dsql --region {{us-east-1}} --endpoint-url https://{{vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com}} list-clusters
```

### Opérations d’API
<a name="api-operations"></a>

Reportez-vous à la [référence de l’API Aurora DSQL](CHAP_api_reference.md) pour obtenir de la documentation sur la gestion des ressources dans Aurora DSQL.

### Gestion des politiques de point de terminaison
<a name="managing-endpoint-policies"></a>

En testant et en configurant de manière approfondie les politiques relatives aux points de terminaison Amazon VPC, vous pouvez garantir que votre cluster Aurora DSQL est sécurisé et conforme aux exigences de gouvernance et de contrôle d’accès spécifiques de votre organisation.

**Exemple : stratégie d’accès complète à Aurora DSQL**

La stratégie suivante accorde l’accès total à toutes les actions et ressources Aurora DSQL via le point de terminaison Amazon VPC spécifié. 

```
aws ec2 modify-vpc-endpoint \
    --vpc-endpoint-id vpce-xxxxxxxxxxxxxxxxx \
    --region region \
    --policy-document '{
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "dsql:*",
          "Resource": "*"
        }
      ]
    }'
```

**Exemple : stratégie d’accès restreinte à Aurora DSQL**

La stratégie suivante autorise uniquement ces actions Aurora DSQL.
+ `CreateCluster`
+ `GetCluster`
+ `ListClusters`

Toutes les autres actions Aurora DSQL sont refusées.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "dsql:CreateCluster",
        "dsql:GetCluster",
        "dsql:ListClusters"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Connexion aux clusters SQL Aurora à l'aide de AWS PrivateLink
<a name="privatelink-connecting-clusters"></a>

Une fois que votre AWS PrivateLink point de terminaison est configuré et actif, vous pouvez vous connecter à votre cluster Aurora DSQL à l'aide d'un client PostgreSQL. Les instructions de connexion ci-dessous décrivent les étapes à suivre pour créer le nom d'hôte approprié pour la connexion via le AWS PrivateLink point de terminaison.

### Configuration d'un point de terminaison de AWS PrivateLink connexion
<a name="setting-up-privatelink-endpoint"></a>

******Étape 1 : obtenir le nom du service pour votre cluster**

Lorsque vous créez un AWS PrivateLink point de terminaison pour vous connecter à votre cluster, vous devez d'abord récupérer le nom du service spécifique au cluster.

------
#### [ AWS CLI ]

```
aws dsql get-vpc-endpoint-service-name \
--region us-east-1 \
--identifier {{your-cluster-id }}
```

Exemple de réponse

```
{
    "serviceName": "com.amazonaws.us-east-1.dsql-fnh4"
}
```

Le nom du service inclut un identifiant, comme `dsql-fnh4` dans l’exemple. Cet identifiant est également nécessaire lors de la construction du nom d’hôte pour la connexion à votre cluster.

------
#### [ AWS SDK for Python (Boto3) ]

```
import boto3

dsql_client = boto3.client('dsql', region_name='us-east-1')
response = dsql_client.get_vpc_endpoint_service_name(
    identifier='your-cluster-id'
)
service_name = response['serviceName']
print(f"Service Name: {service_name}")
```

------
#### [ AWS SDK for Java 2.x ]

```
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dsql.DsqlClient;
import software.amazon.awssdk.services.dsql.model.GetVpcEndpointServiceNameRequest;
import software.amazon.awssdk.services.dsql.model.GetVpcEndpointServiceNameResponse;

String region = "us-east-1";
String clusterId = "your-cluster-id";

DsqlClient dsqlClient = DsqlClient.builder()
    .region(Region.of(region))
    .credentialsProvider(DefaultCredentialsProvider.create())
    .build();

GetVpcEndpointServiceNameResponse response = dsqlClient.getVpcEndpointServiceName(
    GetVpcEndpointServiceNameRequest.builder()
        .identifier(clusterId)
        .build()
);
String serviceName = response.serviceName();
System.out.println("Service Name: " + serviceName);
```

------<a name="create-vpc-endpoint"></a>

**Étape 2 : créer le point de terminaison Amazon VPC**

À l’aide du nom de service obtenu à l’étape précédente, créez un point de terminaison Amazon VPC. 

**Important**  
Les instructions de connexion ci-dessous ne fonctionnent que pour la connexion aux clusters lorsque le mode privé est activé par le DNS. N’utilisez pas l’indicateur `--no-private-dns-enabled` lors de la création du point de terminaison, car cela empêcherait les instructions de connexion ci-dessous de fonctionner correctement. Si vous désactivez le DNS privé, vous devrez créer votre propre enregistrement DNS privé joker pointant vers le point de terminaison créé.

------
#### [ AWS CLI ]

```
aws ec2 create-vpc-endpoint \
    --region us-east-1 \
    --service-name {{service-name-for-your-cluster}} \
    --vpc-id {{your-vpc-id}} \
    --subnet-ids {{subnet-id-1 subnet-id-2}}  \
    --vpc-endpoint-type Interface \
    --security-group-ids {{security-group-id}}
```

**Exemple de réponse**

```
{
    "VpcEndpoint": {
        "VpcEndpointId": "vpce-0123456789abcdef0",
        "VpcEndpointType": "Interface",
        "VpcId": "vpc-0123456789abcdef0",
        "ServiceName": "com.amazonaws.us-east-1.dsql-fnh4",
        "State": "pending",
        "RouteTableIds": [],
        "SubnetIds": [
            "subnet-0123456789abcdef0",
            "subnet-0123456789abcdef1"
        ],
        "Groups": [
            {
                "GroupId": "sg-0123456789abcdef0",
                "GroupName": "default"
            }
        ],
        "PrivateDnsEnabled": true,
        "RequesterManaged": false,
        "NetworkInterfaceIds": [
            "eni-0123456789abcdef0",
            "eni-0123456789abcdef1"
        ],
        "DnsEntries": [
            {
                "DnsName": "*.dsql-fnh4.us-east-1.vpce.amazonaws.com",
                "HostedZoneId": "Z7HUB22UULQXV"
            }
        ],
        "CreationTimestamp": "2025-01-01T00:00:00.000Z"
    }
}
```

------
#### [ SDK for Python ]

```
import boto3

ec2_client = boto3.client('ec2', region_name='us-east-1')
response = ec2_client.create_vpc_endpoint(
    VpcEndpointType='Interface',
    VpcId='your-vpc-id',
    ServiceName='com.amazonaws.us-east-1.dsql-fnh4',  # Use the service name from previous step
    SubnetIds=[
        'subnet-id-1',
        'subnet-id-2'
    ],
    SecurityGroupIds=[
        'security-group-id'
    ]
)

vpc_endpoint_id = response['VpcEndpoint']['VpcEndpointId']
print(f"VPC Endpoint created with ID: {vpc_endpoint_id}")
```

------
#### [ SDK for Java 2.x ]

Utiliser une URL de point de terminaison pour Aurora DSQL APIs

```
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.ec2.Ec2Client;
import software.amazon.awssdk.services.ec2.model.CreateVpcEndpointRequest;
import software.amazon.awssdk.services.ec2.model.CreateVpcEndpointResponse;
import software.amazon.awssdk.services.ec2.model.VpcEndpointType;

String region = "us-east-1";
String serviceName = "com.amazonaws.us-east-1.dsql-fnh4";  // Use the service name from previous step
String vpcId = "your-vpc-id";

Ec2Client ec2Client = Ec2Client.builder()
    .region(Region.of(region))
    .credentialsProvider(DefaultCredentialsProvider.create())
    .build();

CreateVpcEndpointRequest request = CreateVpcEndpointRequest.builder()
    .vpcId(vpcId)
    .serviceName(serviceName)
    .vpcEndpointType(VpcEndpointType.INTERFACE)
    .subnetIds("subnet-id-1", "subnet-id-2")
    .securityGroupIds("security-group-id")
    .build();

CreateVpcEndpointResponse response = ec2Client.createVpcEndpoint(request);
String vpcEndpointId = response.vpcEndpoint().vpcEndpointId();
System.out.println("VPC Endpoint created with ID: " + vpcEndpointId);
```

------<a name="additional-setup-for-peering"></a>

**Configuration supplémentaire lors de la connexion Direct Connect ou du peering Amazon VPC**

Une configuration supplémentaire peut être nécessaire pour se connecter aux clusters Aurora DSQL à l'aide d'un point de terminaison de AWS PrivateLink connexion provenant d'appareils sur site via Amazon VPC peering ou. Direct Connect Cette configuration n'est pas requise si votre application s'exécute dans le même Amazon VPC que votre AWS PrivateLink point de terminaison. Les entrées DNS privées créées ci-dessus ne seront pas résolues correctement en dehors du VPC Amazon du point de terminaison, mais vous pouvez créer vos propres enregistrements DNS privés qui sont résolus vers votre point de terminaison de AWS PrivateLink connexion. 

Créez un enregistrement DNS CNAME privé qui pointe vers le nom de domaine complet du AWS PrivateLink point de terminaison. Le nom de domaine de l'enregistrement DNS créé doit être construit à partir des composants suivants :

1. L’identifiant du service issu du nom du service. Par exemple : `dsql-fnh4`

1. Le Région AWS

Créez l'enregistrement DNS CNAME avec un nom de domaine au format suivant : `*.{{service-identifier}}.{{region}}.on.aws` 

Le format du nom de domaine est important pour deux raisons :

1. Le nom d'hôte utilisé pour se connecter à Aurora DSQL doit correspondre au certificat de serveur d'Aurora DSQL lorsque vous utilisez le `verify-full` mode SSL. Cela garantit le plus haut niveau de sécurité de connexion.

1. Aurora DSQL utilise la partie ID de cluster du nom d'hôte utilisé pour se connecter à Aurora DSQL afin d'identifier le cluster qui se connecte.

S'il n'est pas possible de créer des enregistrements DNS privés, vous pouvez toujours vous connecter à Aurora DSQL. Consultez [Connexion à un cluster Aurora DSQL à l'aide d'un AWS PrivateLink point de terminaison sans DNS privé](#connecting-cluster-id-option).

### Connexion à un cluster SQL Aurora à l'aide d'un point de terminaison de AWS PrivateLink connexion
<a name="connecting-endpoints"></a>

Une fois que votre AWS PrivateLink point de terminaison est configuré et actif (vérifiez qu'il l'`State`est`available`), vous pouvez vous connecter à votre cluster Aurora DSQL à l'aide d'un client PostgreSQL. Pour obtenir des instructions sur l'utilisation de AWS SDKs, vous pouvez suivre les guides de la section [Programmation avec Aurora DSQL.](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/programming-with.html) Vous devez modifier le point de terminaison du cluster pour qu’il corresponde au format du nom d’hôte.

#### Construction du nom d’hôte
<a name="construct-hostname"></a>

Le nom d'hôte pour la connexion est AWS PrivateLink différent du nom d'hôte DNS public. Vous devez le construire à l’aide des composants suivants.

1. `Your-cluster-id`

1. L’identifiant du service issu du nom du service. Par exemple : `dsql-fnh4` 

1. Le Région AWS. Par exemple : `us-east-1` 

Utilisez le format suivant : `{{cluster-id}}.{{service-identifier}}.{{region}}.on.aws`

**Exemple : connexion à l’aide de PostgreSQL**

```
# Set environment variables
export CLUSTERID={{your-cluster-id}}
export REGION=us-east-1
export SERVICE_IDENTIFIER=dsql-fnh4  # This should match the identifier in your service name

# Construct the hostname
export HOSTNAME="$CLUSTERID.$SERVICE_IDENTIFIER.$REGION.on.aws"

# Generate authentication token
export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $HOSTNAME)

# Connect using psql
psql -d postgres -h $HOSTNAME -U admin
```

#### Connexion à un cluster Aurora DSQL à l'aide d'un AWS PrivateLink point de terminaison sans DNS privé
<a name="connecting-cluster-id-option"></a>

Les instructions de connexion ci-dessus s'appuient sur des enregistrements DNS privés. Si votre application s'exécute dans le même Amazon VPC que votre AWS PrivateLink point de terminaison, les enregistrements DNS sont créés pour vous. Si vous vous connectez à partir d'appareils sur site via Amazon VPC peering Direct Connect, vous pouvez également créer vos propres enregistrements DNS privés. Cependant, la configuration des enregistrements DNS n'est pas toujours possible en raison des restrictions réseau imposées par vos équipes de sécurité. Si votre application doit se connecter via Direct Connect ou depuis un Amazon VPC homologue et que la configuration d'un enregistrement DNS n'est pas possible, vous pouvez toujours vous connecter à Aurora DSQL.

 Aurora DSQL utilise la partie ID de cluster de votre nom d'hôte pour identifier le cluster qui se connecte, mais si la configuration d'un enregistrement DNS n'est pas possible, Aurora DSQL prend en charge la spécification du cluster cible à l'aide de l'`amzn-cluster-id`option de connexion. Avec cette option, il est possible d'utiliser le nom de domaine complet de votre AWS PrivateLink terminal comme nom d'hôte lors de la connexion.

**Important**  
Lorsque vous vous connectez avec le nom de domaine complet ou l'adresse IP de votre AWS PrivateLink terminal, le mode `verify-full` SSL n'est pas pris en charge. C'est pourquoi il est préférable de configurer un DNS privé.

**Exemple : Spécification de l'option de connexion avec l'ID du cluster à l'aide de PostgreSQL**

```
# Set environment variables
export CLUSTERID={{your-cluster-id}}
export REGION=us-east-1
export HOSTNAME=vpce-04037adb76c111221-d849uc2p.dsql-fnh4.us-east-1.vpce.amazonaws.com # This should match your endpoint's fully-qualified domain name

# Construct the hostname used to generate the authentication token
export AUTH_HOSTNAME="$CLUSTERID.dsql.$REGION.on.aws"

# Generate authentication token
export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $AUTH_HOSTNAME)

# Specify the amzn-cluster-id connection option
export PGOPTIONS="-c amzn-cluster-id=$CLUSTERID"

# Connect using psql
psql -d postgres -h $HOSTNAME -U admin
```

### Résolution des problèmes liés à AWS PrivateLink
<a name="troubleshooting-privatelink"></a>

#### Problèmes courants et solutions correspondantes
<a name="common-issues"></a>

Le tableau suivant répertorie les problèmes courants et les solutions liés à AWS PrivateLink avec Aurora DSQL.


| Problème | Cause possible | Solution | 
| --- | --- | --- | 
| Délai de connexion | Le groupe de sécurité n’est pas correctement configuré | Utilisez l’analyseur d’accessibilité Amazon VPC pour vous assurer que votre configuration réseau autorise le trafic sur le port 5432. | 
| Échec de résolution DNS | DNS privé non activé | Vérifiez que le point de terminaison Amazon VPC a été créé avec le DNS privé activé. | 
| Échec d’authentification | Informations d’identification incorrectes ou jeton expiré | Générez un nouveau jeton d’authentification et vérifiez le nom d’utilisateur. | 
| Nom de service introuvable | ID de cluster incorrect | Vérifiez l'ID de votre cluster et vérifiez le nom du service Région AWS lorsque vous récupérez le nom du service. | 

### Ressources connexes
<a name="related-resources"></a>

Pour plus d’informations, consultez les ressources suivantes :
+ [Guide de l’utilisateur Amazon Aurora DSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-dsql.html)
+ [Documentation AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)
+ [Accédez aux AWS services via AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)