Gestion et connexion aux clusters SQL Amazon Aurora à 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 aux clusters SQL Amazon Aurora à l'aide de AWS PrivateLink

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 AWS 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 local, consultez le guide de l'utilisateur et le guide de AWS Direct Connect l'utilisateur du AWS Site-to-Site VPN VPN.

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 dans AWS PrivateLinkle guide de l'utilisateur.

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 getcreate, telles queupdate,delete,, et list sur les clusters Aurora SQL. Consultez Gestion des clusters SQL Aurora à 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 aux clusters SQL Aurora à l'aide de AWS PrivateLink.

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 et de AWS PrivateLink quotas dans le AWS PrivateLink Guide.

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

Pour créer un point de terminaison d'interface Amazon VPC, consultez la section Créer un point de terminaison Amazon VPC 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.

Lister les clusters à l'aide d'une URL de point de

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.dynamodb.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 relatives aux terminaux

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é, conforme et conforme aux exigences de gouvernance et de contrôle d'accès spécifiques de votre organisation.

Exemple : politique d'accès complète à Aurora DSQL

La politique suivante accorde un accès complet à 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 : politique d'accès restreint à Aurora DSQL

La politique suivante autorise uniquement ces actions Aurora DSQL.

  • CreateCluster

  • GetCluster

  • ListClusters

Toutes les autres actions Aurora DSQL sont refusées.

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

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.

É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'--no-private-dns-enabledindicateur 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);

Connexion à un cluster SQL Aurora à l'aide d'un point de terminaison de AWS PrivateLink connexion

Une fois que votre AWS PrivateLink point de terminaison 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 de AWS SDKs, vous pouvez suivre les guides de la section 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 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

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

  3. Le Région AWS

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

Problèmes courants et solutions correspondantes

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

Problème Cause possible Solution

Délai de connexion

Le groupe de sécurité n'est pas correctement configuré

Utilisez Amazon VPC Reachability Analyzer pour vous assurer que votre configuration réseau autorise le trafic sur le port 5432.

Défaillance 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 de l'authentification

Informations d'identification incorrectes ou jeton expiré

Générez un nouveau jeton d'authentification et vérifiez le nom d'utilisateur.

Nom du 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.

Pour plus d’informations, consultez les ressources suivantes :