View a markdown version of this page

Gestion et connexion à des clusters Amazon Aurora DSQL à l'aide de AWS PrivateLink - Amazon Aurora DSQL

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 à des clusters Amazon Aurora DSQL à l'aide de AWS PrivateLink

Avec AWS PrivateLink pour Amazon Aurora DSQL, vous pouvez provisionner des points de terminaison Amazon VPC d'interface (points de terminaison d'interface) dans votre Amazon Virtual Private Cloud. Ces points de terminaison sont directement accessibles à partir d'applications installées sur site via Amazon VPC et/ou Direct Connect via un autre peering Région AWS via Amazon VPC. À l'aide de points de terminaison AWS PrivateLink et d'interface, vous pouvez simplifier la connectivité au 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 Elastic (ENI) auxquelles des adresses IP privées sont attribuées à partir de sous-réseaux Amazon VPC. Les requêtes 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 et le Guide de l’utilisateur VPN AWS Site-to-Site VPN.

Pour des informations générales sur les points de terminaison d'interface, voir Accéder à un AWS service à l'aide d'un point de terminaison Amazon VPC d'interface dans le Guide de l'AWS PrivateLinkutilisateur.

Types de points de terminaison Amazon VPC pour Aurora DSQL

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 Aurora DSQL à l'aide de AWS PrivateLink.

  2. Point de terminaison de connexion : ce point de terminaison est utilisé pour la connexion aux clusters Aurora DSQL via les clients PostgreSQL. Consultez Connexion à des clusters Aurora DSQL à l'aide de AWS PrivateLink.

Les considérations relatives à Amazon VPC s'appliquent AWS PrivateLink à Aurora DSQL. Pour plus d'informations, voir Accéder à un AWS service à l'aide d'une interface, d'un point de terminaison VPC et de AWS PrivateLink quotas dans le AWS PrivateLink Guide.

Vous pouvez utiliser les kits de développement AWS logiciel (SDK) AWS Command Line Interface ou les kits de développement logiciel (SDK) 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

Pour créer un point de terminaison d'interface Amazon VPC, voir Créer un point de terminaison Amazon VPC dans le AWS PrivateLink Guide.

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

Dans l'exemple suivant, remplacez le nom DNS Région AWS us-east-1 et le nom DNS de l'ID de 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

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

Gestion des politiques de point de terminaison

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": "*" } ] }

Une fois que votre AWS PrivateLink terminal 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.

É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);

É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

Utilisez une URL de point de terminaison pour les API Aurora DSQL

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);

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

Certaines configurations supplémentaires peuvent être nécessaires pour se connecter à des clusters Aurora DSQL à l'aide d'un point de terminaison de AWS PrivateLink connexion à partir 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 de l'Amazon VPC du point de terminaison, mais vous pouvez créer vos propres enregistrements DNS privés qui redirigent 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 terminal. Le nom de domaine de l'enregistrement DNS créé doit être construit à partir des éléments suivants :

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

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

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

Si la création d'enregistrements DNS privés n'est pas possible, 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é.

Connexion à un cluster Aurora DSQL à l'aide d'un AWS PrivateLink point final de connexion

Une fois que votre AWS PrivateLink terminal est configuré et actif (vérifiez qu'il l'Stateestavailable), vous pouvez vous connecter à votre cluster Aurora DSQL à l'aide d'un client PostgreSQL. Pour obtenir des instructions sur l’utilisation des kits SDK AWS , vous pouvez suivre les guides dans Programmation avec Aurora DSQL. 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

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

  1. Your-cluster-id

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

  3. 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é

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 terminal, les enregistrements DNS sont créés pour vous. Sinon, si vous vous connectez depuis des appareils sur site via Amazon VPC peering ou Direct Connect, vous pouvez 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 de l'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 connecté, 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-idoption 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. Pour cette raison, il est préférable de configurer un DNS privé.

Exemple : spécification de l'option de connexion à l'ID de 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

Problèmes courants et solutions correspondantes

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

Double-check votre identifiant de cluster et Région AWS lors de la récupération du nom du service.

Pour plus d’informations, consultez les ressources suivantes :