View a markdown version of this page

Mengelola dan menghubungkan ke cluster Amazon Aurora DSQL menggunakan AWS PrivateLink - Amazon Aurora DSQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola dan menghubungkan ke cluster Amazon Aurora DSQL menggunakan AWS PrivateLink

Dengan AWS PrivateLink untuk Amazon Aurora DSQL, Anda dapat menyediakan antarmuka titik akhir Amazon VPC (titik akhir antarmuka) di Amazon Virtual Private Cloud Anda. Titik akhir ini dapat diakses langsung dari aplikasi yang ada di lokasi melalui Amazon VPC dan Direct Connect, atau dalam peering Amazon VPC yang berbeda Wilayah AWS . Menggunakan AWS PrivateLink dan menghubungkan titik akhir, Anda dapat menyederhanakan konektivitas jaringan pribadi dari aplikasi Anda ke Aurora DSQL.

Aplikasi dalam Amazon VPC Anda dapat mengakses Aurora DSQL menggunakan titik akhir antarmuka Amazon VPC tanpa memerlukan alamat IP publik.

Titik akhir antarmuka diwakili oleh satu atau lebih antarmuka jaringan elastis (ENI) yang ditetapkan alamat IP pribadi dari subnet di Amazon VPC Anda. Permintaan ke Aurora DSQL melalui titik akhir antarmuka tetap ada di AWS jaringan. Untuk informasi selengkapnya tentang cara menghubungkan Amazon VPC dengan jaringan lokal, lihat Panduan Direct Connect Pengguna dan Panduan Pengguna AWS Site-to-Site VPN VPN.

Untuk informasi umum tentang titik akhir antarmuka, lihat Mengakses AWS layanan menggunakan antarmuka titik akhir Amazon VPC di Panduan AWS PrivateLink Pengguna.

Jenis titik akhir Amazon VPC untuk Aurora DSQL

Aurora DSQL membutuhkan dua jenis titik akhir yang berbeda AWS PrivateLink .

  1. Titik akhir manajemen — Titik akhir ini digunakan untuk operasi administratif, sepertiget,create,update,delete, dan list pada cluster Aurora DSQL. Lihat Mengelola cluster Aurora DSQL menggunakan AWS PrivateLink.

  2. Titik akhir koneksi — Titik akhir ini digunakan untuk menghubungkan ke cluster Aurora DSQL melalui klien PostgreSQL. Lihat Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink.

Pertimbangan Amazon VPC berlaku AWS PrivateLink untuk Aurora DSQL. Untuk informasi selengkapnya, lihat Meng akses AWS layanan menggunakan antarmuka titik akhir VPC dan AWS PrivateLink kuota di AWS PrivateLink Panduan.

Anda dapat menggunakan AWS Software Development Kit (SDK) untuk mengelola cluster Aurora DSQL melalui titik akhir antarmuka Aurora DSQL. AWS Command Line Interface

Membuat titik akhir Amazon VPC

Untuk membuat titik akhir antarmuka Amazon VPC, lihat Membuat titik akhir Amazon VPC di AWS PrivateLink Panduan.

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 \

Untuk menggunakan nama DNS Regional default untuk permintaan API Aurora DSQL, jangan nonaktifkan DNS pribadi saat Anda membuat titik akhir antarmuka Aurora DSQL. Ketika DNS pribadi diaktifkan, permintaan ke layanan Aurora DSQL yang dibuat dari dalam Amazon VPC Anda akan secara otomatis diselesaikan ke alamat IP pribadi titik akhir Amazon VPC, bukan nama DNS publik. Saat DNS pribadi diaktifkan, permintaan Aurora DSQL yang dibuat dalam Amazon VPC Anda akan secara otomatis diselesaikan ke titik akhir Amazon VPC Anda.

Jika DNS pribadi tidak diaktifkan, gunakan --endpoint-url parameter --region and dengan AWS CLI perintah untuk mengelola cluster Aurora DSQL melalui titik akhir antarmuka Aurora DSQL.

Mendaftarkan cluster menggunakan URL titik akhir

Dalam contoh berikut, ganti Wilayah AWS us-east-1 dan nama DNS dari ID titik akhir Amazon VPC vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com dengan informasi Anda sendiri.

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

Operasi API

Lihat referensi API Aurora DSQL untuk dokumentasi pengelolaan sumber daya di Aurora DSQL.

Mengelola kebijakan titik akhir

Dengan menguji dan mengonfigurasi kebijakan titik akhir Amazon VPC secara menyeluruh, Anda dapat membantu memastikan bahwa cluster Aurora DSQL Anda aman, sesuai, dan selaras dengan persyaratan kontrol akses dan tata kelola spesifik organisasi Anda.

Contoh: Kebijakan akses penuh Aurora DSQL

Kebijakan berikut memberikan akses penuh ke semua tindakan dan sumber daya Aurora DSQL melalui titik akhir Amazon VPC yang ditentukan.

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

Contoh: Kebijakan Akses Aurora DSQL Terbatas

Kebijakan berikut hanya mengizinkan tindakan Aurora DSQL ini.

  • CreateCluster

  • GetCluster

  • ListClusters

Semua tindakan Aurora DSQL lainnya ditolak.

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

Setelah AWS PrivateLink titik akhir Anda diatur dan aktif, Anda dapat terhubung ke cluster Aurora DSQL menggunakan klien PostgreSQL. Instruksi koneksi di bawah ini menguraikan langkah-langkah untuk membangun nama host yang tepat untuk menghubungkan melalui AWS PrivateLink titik akhir.

Langkah 1: Dapatkan nama layanan untuk cluster Anda

Saat membuat AWS PrivateLink titik akhir untuk menghubungkan ke cluster Anda, Anda harus terlebih dahulu mengambil nama layanan khusus cluster.

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

Contoh tanggapan

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

Nama layanan menyertakan pengidentifikasi, seperti dsql-fnh4 dalam contoh. Pengidentifikasi ini juga diperlukan saat membangun nama host untuk menghubungkan ke cluster Anda.

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

Langkah 2: Buat titik akhir Amazon VPC

Menggunakan nama layanan yang diperoleh pada langkah sebelumnya, buat titik akhir Amazon VPC.

penting

Petunjuk koneksi di bawah ini hanya berfungsi untuk menghubungkan ke cluster ketika pribadi diaktifkan DNS. Jangan gunakan --no-private-dns-enabled bendera saat membuat titik akhir, karena ini akan mencegah instruksi koneksi di bawah ini berfungsi dengan baik. Jika Anda menonaktifkan DNS pribadi, Anda harus membuat catatan DNS pribadi wildcard Anda sendiri yang menunjuk ke titik akhir yang dibuat.

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

Contoh tanggapan

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

Gunakan URL titik akhir untuk Aurora DSQL API

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

Pengaturan tambahan saat menghubungkan melalui Direct Connect atau peering Amazon VPC

Beberapa pengaturan tambahan mungkin diperlukan untuk terhubung ke cluster Aurora DSQL menggunakan titik akhir AWS PrivateLink koneksi dari perangkat lokal melalui peering Amazon VPC atau. Direct Connect Pengaturan ini tidak diperlukan jika aplikasi Anda berjalan di Amazon VPC yang sama dengan AWS PrivateLink titik akhir Anda. Entri DNS pribadi yang dibuat di atas tidak akan diselesaikan dengan benar di luar Amazon VPC titik akhir, tetapi Anda dapat membuat catatan DNS pribadi Anda sendiri yang diselesaikan ke titik akhir AWS PrivateLink koneksi Anda.

Buat catatan DNS CNAME pribadi yang menunjuk ke nama domain AWS PrivateLink endpoint yang sepenuhnya memenuhi syarat. Nama domain dari catatan DNS yang dibuat harus dibuat dari komponen berikut:

  1. Pengidentifikasi layanan dari nama layanan. Misalnya: dsql-fnh4

  2. Yang Wilayah AWS

Buat catatan DNS CNAME dengan nama domain dalam format berikut: *.service-identifier.region.on.aws

Format nama domain penting karena dua alasan:

  1. Nama host yang digunakan untuk terhubung ke Aurora DSQL harus sesuai dengan sertifikat server Aurora DSQL saat menggunakan mode SSL. verify-full Ini memastikan tingkat keamanan koneksi tertinggi.

  2. Aurora DSQL menggunakan bagian ID cluster dari nama host yang digunakan untuk terhubung ke Aurora DSQL untuk mengidentifikasi cluster penghubung.

Jika membuat catatan DNS pribadi tidak memungkinkan, Anda masih dapat terhubung ke Aurora DSQL. Lihat Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink titik akhir tanpa DNS pribadi.

Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink titik akhir koneksi

Setelah AWS PrivateLink titik akhir Anda diatur dan aktif (periksa apakah State adaavailable), Anda dapat terhubung ke cluster Aurora DSQL menggunakan klien PostgreSQL. Untuk petunjuk penggunaan AWS SDK, Anda dapat mengikuti panduan dalam Pemro graman dengan Aurora DS QL. Anda harus mengubah titik akhir cluster agar sesuai dengan format nama host.

Membangun nama host

Nama host untuk menghubungkan AWS PrivateLink berbeda dari nama host DNS publik. Anda perlu membangunnya menggunakan komponen-komponen berikut.

  1. Your-cluster-id

  2. Pengidentifikasi layanan dari nama layanan. Misalnya: dsql-fnh4

  3. Itu Wilayah AWS. Misalnya: us-east-1

Gunakan format berikut: cluster-id.service-identifier.region.on.aws

Contoh: Koneksi Menggunakan 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

Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink titik akhir tanpa DNS pribadi

Instruksi koneksi di atas bergantung pada catatan DNS pribadi. Jika aplikasi Anda berjalan di Amazon VPC yang sama dengan AWS PrivateLink titik akhir Anda, catatan DNS dibuat untuk Anda. Atau, jika Anda terhubung dari perangkat lokal melalui peering Amazon VPC atau Direct Connect, maka Anda dapat membuat catatan DNS pribadi Anda sendiri. Namun, pengaturan catatan DNS tidak selalu memungkinkan karena pembatasan jaringan yang diberlakukan oleh tim keamanan Anda. Jika aplikasi Anda harus terhubung menggunakan Direct Connect atau dari Amazon VPC yang diintip, dan pengaturan catatan DNS tidak memungkinkan, Anda masih dapat terhubung ke Aurora DSQL.

Aurora DSQL menggunakan bagian ID cluster dari nama host Anda untuk mengidentifikasi cluster penghubung, tetapi jika pengaturan catatan DNS tidak memungkinkan, Aurora DSQL mendukung menentukan cluster target menggunakan opsi koneksi. amzn-cluster-id Dengan opsi ini, dimungkinkan untuk menggunakan nama domain AWS PrivateLink endpoint yang sepenuhnya memenuhi syarat sebagai nama host Anda saat menghubungkan.

penting

Saat menghubungkan dengan nama domain atau alamat IP AWS PrivateLink endpoint yang sepenuhnya memenuhi syarat, mode verify-full SSL tidak didukung. Untuk alasan ini, pengaturan DNS pribadi lebih disukai.

Contoh: Menentukan opsi koneksi ID cluster menggunakan 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

Masalah Umum dan Solusi

Tabel berikut mencantumkan masalah umum dan solusi yang berkaitan AWS PrivateLink dengan Aurora DSQL.

Isu Kemungkinan penyebab Solusi

Batas waktu koneksi

Grup keamanan tidak dikonfigurasi dengan benar

Gunakan Amazon VPC Reachability Analyzer untuk memastikan pengaturan jaringan Anda memungkinkan lalu lintas di port 5432.

Kegagalan resolusi DNS

DNS pribadi tidak diaktifkan

Verifikasi bahwa titik akhir Amazon VPC dibuat dengan DNS pribadi diaktifkan.

Kegagalan otentikasi

Kredensi salah atau token kedaluwarsa

Buat token otentikasi baru dan verifikasi nama pengguna.

Nama layanan tidak ditemukan

ID cluster salah

Double-check ID cluster Anda dan Wilayah AWS saat mengambil nama layanan.

Untuk informasi selengkapnya, lihat sumber daya berikut: