View a markdown version of this page

Verwaltung und Verbindung zu Amazon Aurora-DSQL-Clustern mithilfe von AWS PrivateLink - Amazon Aurora DSQL

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung und Verbindung zu Amazon Aurora-DSQL-Clustern mithilfe von AWS PrivateLink

Mit AWS PrivateLink Amazon Aurora DSQL können Sie Schnittstellen-Amazon-VPC-Endpunkte (Schnittstellenendpunkte) in Ihrer Amazon Virtual Private Cloud bereitstellen. Auf diese Endpunkte kann direkt von Anwendungen aus zugegriffen werden, die sich vor Ort über Amazon VPC und/oder in einer anderen Version über Amazon VPC-Peering befinden. Direct Connect AWS-Region Mithilfe von Endpunkten AWS PrivateLink und Schnittstellen können Sie die private Netzwerkkonnektivität von Ihren Anwendungen zu Aurora DSQL vereinfachen.

Anwendungen in Ihrer Amazon VPC können über Amazon VPC-Schnittstellenendpunkte auf Aurora DSQL zugreifen, ohne dass öffentliche IP-Adressen erforderlich sind.

Schnittstellenendpunkte werden durch eine oder mehrere Elastic Network-Schnittstellen (ENIs) repräsentiert, denen private IP-Adressen aus Subnetzen in Ihrer Amazon VPC zugewiesen werden. Anfragen an Aurora DSQL über Schnittstellenendpunkte bleiben im Netzwerk. AWS Weitere Informationen darüber, wie Sie Ihre Amazon VPC mit Ihrem On-Premises-Netzwerk verbinden, finden Sie im Direct Connect -Benutzerhandbuch und im AWS Site-to-Site VPN -VPN-Benutzerhandbuch.

Allgemeine Informationen zu Schnittstellenendpunkten finden Sie im Benutzerhandbuch unter Zugreifen auf einen AWS Service mithilfe eines Amazon VPC-Schnittstellenendpunkts. AWS PrivateLink

Arten von Amazon VPC-Endpunkten für Aurora DSQL

Aurora DSQL erfordert zwei verschiedene Arten von Endpunkten. AWS PrivateLink

  1. Verwaltungsendpunkt – Dieser Endpunkt wird für Verwaltungsvorgänge wie, get, create, update, delete und list auf Aurora SQL-Clustern verwendet. Siehe Verwaltung von Aurora DSQL-Clustern mit AWS PrivateLink.

  2. Verbindungsendpunkt – Dieser Endpunkt wird für die Verbindung zu Aurora DSQL-Clustern über PostgreSQL-Clients verwendet. Siehe Stellen Sie eine Verbindung zu Aurora DSQL-Clustern her mit AWS PrivateLink.

Die Überlegungen zu Amazon VPC gelten AWS PrivateLink für Aurora DSQL. Weitere Informationen finden Sie im Handbuch unter Zugreifen auf einen AWS Service mithilfe eines Schnittstellen-VPC-Endpunkts und AWS PrivateLink Kontingente. AWS PrivateLink

Sie können die AWS Command Line Interface oder AWS Software Development Kits (SDKs) verwenden, um Aurora DSQL-Cluster über Aurora DSQL-Schnittstellenendpunkte zu verwalten.

Erstellen eines Amazon VPC-Endpunkts

Informationen zum Erstellen eines Amazon VPC-Schnittstellenendpunkts finden Sie im Handbuch unter Erstellen eines Amazon VPC-Endpunkts. 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 \

Um den standardmäßigen regionalen DNS-Namen für Aurora DSQL-API-Anfragen zu verwenden, deaktivieren Sie beim Erstellen des Aurora DSQL-Schnittstellenendpunkts nicht die private DNS-Option. Wenn private DNS aktiviert ist, werden Anfragen an den Aurora DSQL-Dienst, die aus Ihrer Amazon VPC gestellt werden, automatisch zur privaten IP-Adresse des Amazon VPC-Endpunkts aufgelöst – und nicht zum öffentlichen DNS-Namen. Wenn private DNS aktiviert ist, werden Aurora DSQL-Anfragen, die innerhalb Ihrer Amazon VPC gestellt werden, automatisch zum Amazon VPC-Endpunkt aufgelöst.

Wenn privates DNS nicht aktiviert ist, verwenden Sie die --endpoint-url Parameter --region und mit AWS CLI Befehlen, um Aurora-DSQL-Cluster über Aurora-DSQL-Schnittstellenendpunkte zu verwalten.

Auflisten von Clustern mithilfe einer Endpunkt-URL

Ersetzen Sie im folgenden Beispiel den AWS-Region us-east-1 und den DNS-Namen der Amazon VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

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

API-Operationen

In der Aurora DSQL-API-Referenz finden Sie Informationen zur Ressourcenverwaltung in Aurora DSQL.

Verwalten von Endpunktrichtlinien

Durch gründliches Testen und Konfigurieren der Amazon VPC-Endpunktrichtlinien können Sie sicherstellen, dass Ihr Aurora DSQL-Cluster sicher, konform und auf die spezifischen Anforderungen Ihrer Organisation in Bezug auf Zugriffskontrolle und Governance abgestimmt ist.

Beispiel: Vollständige Aurora DSQL-Zugriffsrichtlinie

Die folgende Richtlinie gewährt Vollzugriff auf alle Aurora DSQL-Aktionen und -Ressourcen über den angegebenen Amazon VPC-Endpunkt.

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

Beispiel: Eingeschränkte Aurora DSQL-Zugriffsrichtlinie

Die folgende Richtlinie erlaubt nur diese Aurora DSQL-Aktionen.

  • CreateCluster

  • GetCluster

  • ListClusters

Alle anderen Aurora DSQL-Aktionen werden verweigert.

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

Sobald Ihr AWS PrivateLink Endpunkt eingerichtet und aktiv ist, können Sie mit einem PostgreSQL-Client eine Verbindung zu Ihrem Aurora DSQL-Cluster herstellen. Die folgenden Verbindungsanweisungen beschreiben die Schritte zur Erstellung des richtigen Hostnamens für die Verbindung über den Endpunkt. AWS PrivateLink

Schritt 1: Rufen Sie den Dienstnamen für Ihren Cluster ab

Wenn Sie einen AWS PrivateLink Endpunkt für die Verbindung zu Ihrem Cluster erstellen, müssen Sie zuerst den clusterspezifischen Dienstnamen abrufen.

AWS CLI
aws dsql get-vpc-endpoint-service-name \ --region us-east-1 \ --identifier your-cluster-id

Beispielantwort

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

Der Servicename enthält eine ID wie dsql-fnh4 im Beispiel. Diese ID wird auch benötigt, wenn der Hostname für die Verbindung zu Ihrem Cluster erstellt wird.

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

Schritt 2: Erstellen des Amazon VPC-Endpunkts

Erstellen Sie mit dem im vorherigen Schritt abgerufenen Servicenamen einen Amazon VPC-Endpunkt.

Wichtig

Die folgenden Verbindungsanweisungen funktionieren nur für Clusterverbindungen, wenn Private DNS aktiviert ist. Verwenden Sie das --no-private-dns-enabled-Flag nicht, wenn Sie den Endpunkt erstellen, da sonst die unten aufgeführten Verbindungsanleitungen nicht ordnungsgemäß funktionieren. Wenn Sie Private DNS deaktivieren, müssen Sie Ihren eigenen privaten DNS-Wildcard-Eintrag erstellen, der auf den erstellten Endpunkt verweist.

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

Beispielantwort

{
    "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

Verwenden einer Endpunkt-URL für 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);

Zusätzliche Einrichtung, wenn Sie eine Verbindung über Direct Connect oder Amazon VPC-Peering herstellen

Möglicherweise ist eine zusätzliche Einrichtung erforderlich, um über einen AWS PrivateLink Verbindungsendpunkt von Geräten vor Ort über Amazon VPC-Peering oder eine Verbindung zu Aurora DSQL-Clustern herzustellen. Direct Connect Dieses Setup ist nicht erforderlich, wenn Ihre Anwendung in derselben Amazon VPC wie Ihr Endpunkt ausgeführt wird. AWS PrivateLink Die oben erstellten privaten DNS-Einträge werden außerhalb der Amazon-VPC des Endpunkts nicht korrekt aufgelöst. Sie können jedoch Ihre eigenen privaten DNS-Einträge erstellen, die zu Ihrem AWS PrivateLink Verbindungsendpunkt aufgelöst werden.

Erstellen Sie einen privaten CNAME-DNS-Eintrag, der auf den vollqualifizierten Domainnamen des AWS PrivateLink Endpunkts verweist. Der Domainname des erstellten DNS-Eintrags sollte aus den folgenden Komponenten bestehen:

  1. Die Service-ID aus dem Servicenamen. Beispiel: dsql-fnh4

  2. Der AWS-Region

Erstellen Sie den CNAME-DNS-Eintrag mit einem Domainnamen im folgenden Format: *.service-identifier.region.on.aws

Das Format des Domainnamens ist aus zwei Gründen wichtig:

  1. Der Hostname, der für die Verbindung zu Aurora DSQL verwendet wird, muss mit dem Serverzertifikat von Aurora DSQL übereinstimmen, wenn der SSL-Modus verwendet wirdverify-full. Dies gewährleistet ein Höchstmaß an Verbindungssicherheit.

  2. Aurora DSQL verwendet den Cluster-ID-Teil des Hostnamens, der für die Verbindung zu Aurora DSQL verwendet wird, um den Verbindungscluster zu identifizieren.

Wenn das Erstellen privater DNS-Einträge nicht möglich ist, können Sie trotzdem eine Verbindung zu Aurora DSQL herstellen. Siehe Herstellen einer Verbindung zu einem Aurora DSQL-Cluster mithilfe eines AWS PrivateLink Endpunkt ohne privates DNS.

Herstellen einer Verbindung zu einem Aurora DSQL-Cluster mithilfe eines AWS PrivateLink Verbindungsendpunkt

Sobald Ihr AWS PrivateLink Endpunkt eingerichtet und aktiv ist (überprüfen Sie, ob dies der Fall State istavailable), können Sie mithilfe eines PostgreSQL-Clients eine Verbindung zu Ihrem Aurora DSQL-Cluster herstellen. Informationen zur Verwendung der AWS -SDKs finden Sie in den Anleitungen unter Programmieren mit Aurora DSQL. Sie müssen den Cluster-Endpunkt so ändern, dass er dem Hostnamenformat entspricht.

Konstruieren des Hostnamens

Der Hostname für die Verbindung AWS PrivateLink unterscheidet sich vom öffentlichen DNS-Hostnamen. Sie müssen ihn mit den folgenden Komponenten erstellen.

  1. Your-cluster-id

  2. Die Service-ID aus dem Servicenamen. Beispiel: dsql-fnh4

  3. Der. AWS-Region Beispiel: us-east-1

Verwenden Sie das folgende Format: cluster-id.service-identifier.region.on.aws

Beispiel: Verbindung über 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

Herstellen einer Verbindung zu einem Aurora DSQL-Cluster mithilfe eines AWS PrivateLink Endpunkt ohne privates DNS

Die obigen Verbindungsanweisungen basieren auf privaten DNS-Datensätzen. Wenn Ihre Anwendung in derselben Amazon VPC wie Ihr AWS PrivateLink Endpunkt ausgeführt wird, werden die DNS-Einträge für Sie erstellt. Wenn Sie von Geräten vor Ort aus über Amazon VPC-Peering oder eine Verbindung herstellen Direct Connect, können Sie alternativ Ihre eigenen privaten DNS-Einträge erstellen. Die Einrichtung von DNS-Einträgen ist jedoch aufgrund von Netzwerkbeschränkungen, die von Ihren Sicherheitsteams auferlegt wurden, nicht immer möglich. Wenn Ihre Anwendung eine Verbindung über Direct Connect oder von einer Peering-Amazon VPC herstellen muss und die Einrichtung eines DNS-Eintrags nicht möglich ist, können Sie trotzdem eine Verbindung zu Aurora DSQL herstellen.

Aurora DSQL verwendet den Cluster-ID-Teil Ihres Hostnamens, um den Verbindungscluster zu identifizieren. Wenn die Einrichtung eines DNS-Eintrags jedoch nicht möglich ist, unterstützt Aurora DSQL die Angabe des Zielclusters mithilfe der Verbindungsoption. amzn-cluster-id Mit dieser Option ist es möglich, bei der Verbindung den vollqualifizierten Domainnamen Ihres AWS PrivateLink Endpunkts als Hostnamen zu verwenden.

Wichtig

Wenn Sie eine Verbindung mit dem vollqualifizierten Domainnamen oder der IP-Adresse Ihres AWS PrivateLink Endpunkts herstellen, wird der verify-full SSL-Modus nicht unterstützt. Aus diesem Grund wird die Einrichtung von privatem DNS bevorzugt.

Beispiel: Angabe der Cluster-ID-Verbindungsoption mithilfe von 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

Häufige Probleme und Lösungen

In der folgenden Tabelle sind häufig auftretende Probleme und Lösungen im Zusammenhang mit AWS PrivateLink und Aurora DSQL aufgeführt.

Problem Mögliche Ursache Lösung

Verbindungstimeout

Die Sicherheitsgruppe ist nicht richtig konfiguriert

Verwenden Sie den Amazon VPC Reachability Analyzer, um sicherzustellen, dass Ihr Netzwerk-Setup Datenverkehr auf Port 5432 zulässt.

Fehler für die DNS-Auflösung

Private DNS nicht aktiviert

Stellen Sie sicher, dass der Amazon VPC-Endpunkt mit aktiviertem Private DNS erstellt wurde.

Authentifizierungsfehler

Falsche Anmeldeinformationen oder abgelaufenes Token

Generieren Sie ein neues Authentifizierungstoken und überprüfen Sie den Benutzernamen.

Servicename nicht gefunden

Falsche Cluster-ID

Double-check Ihre Cluster-ID und AWS-Region beim Abrufen des Dienstnamens.

Weitere Informationen finden Sie in den folgenden Ressourcen: