

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

# Keamanan Infrastruktur di Amazon Aurora DSQL
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, Amazon Aurora DSQL dilindungi oleh prosedur keamanan jaringan AWS global yang dijelaskan dalam [Praktik Terbaik untuk Keamanan, Identitas,](https://aws.amazon.com/architecture/security-identity-compliance) & Kepatuhan.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses Aurora DSQL melalui jaringan. Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.2 atau versi yang lebih baru. Klien juga harus mendukung suite cipher dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Selain itu, permintaan harus ditandatangani menggunakan ID kunci akses dan kunci akses rahasia yang terkait dengan principal IAM. Atau Anda dapat menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) untuk menghasilkan kredensial keamanan sementara untuk menandatangani permintaan.

# Mengelola dan menghubungkan ke cluster DSQL Amazon Aurora menggunakan AWS PrivateLink
<a name="privatelink-managing-clusters"></a>

Dengan AWS PrivateLink 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 Direct Connect dan, atau berbeda dengan Wilayah AWS peering VPC Amazon. Menggunakan AWS PrivateLink dan antarmuka endpoint, Anda dapat menyederhanakan konektivitas jaringan pribadi dari aplikasi Anda ke Aurora DSQL.

Aplikasi dalam VPC Amazon 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 (ENIs) yang diberi alamat IP pribadi dari subnet di VPC Amazon Anda. Permintaan ke Aurora DSQL melalui titik akhir antarmuka tetap ada di jaringan. AWS Untuk informasi selengkapnya tentang cara menghubungkan VPC Amazon dengan jaringan lokal, lihat [Panduan Direct Connect Pengguna dan Panduan Pengguna AWS Site-to-Site VPN](https://docs.aws.amazon.com/directconnect/latest/UserGuide/) [VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).

Untuk informasi umum tentang titik akhir antarmuka, lihat [Mengakses AWS layanan menggunakan antarmuka titik akhir Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) di [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink)Panduan Pengguna.

## Jenis titik akhir VPC Amazon untuk Aurora DSQL
<a name="endpoint-types-dsql"></a>

 Aurora DSQL membutuhkan dua jenis endpoint yang berbeda. AWS PrivateLink 

1. *Endpoint manajemen* — Endpoint ini digunakan untuk operasi administratif, seperti,,`get`, `create` `update``delete`, dan pada cluster `list` Aurora DSQL. Lihat [Mengelola cluster Aurora DSQL menggunakan AWS PrivateLink](#managing-dsql-clusters-using-privatelink).

1. *Connection endpoint* — Endpoint ini digunakan untuk menghubungkan ke cluster Aurora DSQL melalui klien PostgreSQL. Lihat [Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink](#privatelink-connecting-clusters). 

## Pertimbangan saat menggunakan AWS PrivateLink untuk Aurora DSQL
<a name="privatelink-dsql-considerations"></a>

Pertimbangan Amazon VPC berlaku untuk AWS PrivateLink Aurora DSQL. Untuk informasi selengkapnya, lihat [Mengakses AWS layanan menggunakan titik akhir VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-interface-limitations) dan [AWS PrivateLink kuota](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) di Panduan. AWS PrivateLink 

## Mengelola cluster Aurora DSQL menggunakan AWS PrivateLink
<a name="managing-dsql-clusters-using-privatelink"></a>

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

### Membuat titik akhir Amazon VPC
<a name="create-vpc-endpoint"></a>

Untuk membuat titik akhir antarmuka VPC Amazon, lihat Membuat titik akhir [VPC Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) di Panduan. 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 \
```

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 VPC Amazon Anda akan secara otomatis menyelesaikan ke alamat IP pribadi titik akhir VPC Amazon, bukan nama DNS publik. Saat DNS pribadi diaktifkan, permintaan Aurora DSQL yang dibuat dalam VPC Amazon Anda akan secara otomatis diselesaikan ke titik akhir VPC Amazon Anda. 

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

### Daftar cluster menggunakan URL endpoint
<a name="list-clusters-endpoint-url"></a>

Dalam contoh berikut, ganti Wilayah AWS `us-east-1` dan nama DNS `vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com` ID endpoint Amazon VPC 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
<a name="api-operations"></a>

Lihat referensi [Aurora DSQL API](CHAP_api_reference.md) untuk dokumentasi pengelolaan sumber daya di Aurora DSQL.

### Mengelola kebijakan endpoint
<a name="managing-endpoint-policies"></a>

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

**Contoh: Kebijakan akses DSQL Aurora Penuh**

Kebijakan berikut memberikan akses penuh ke semua tindakan dan sumber daya Aurora DSQL melalui titik akhir VPC Amazon 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": "*"
    }
  ]
}
```

------

## Menghubungkan ke cluster Aurora DSQL menggunakan AWS PrivateLink
<a name="privatelink-connecting-clusters"></a>

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

### Menyiapkan titik akhir AWS PrivateLink koneksi
<a name="setting-up-privatelink-endpoint"></a>

******Langkah 1: Dapatkan nama layanan untuk cluster Anda**

Saat membuat AWS PrivateLink endpoint 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 termasuk pengenal, seperti `dsql-fnh4` dalam contoh. Pengenal ini juga diperlukan saat membuat 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);
```

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

**Langkah 2: Buat titik akhir Amazon VPC**

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

**penting**  
Petunjuk koneksi di bawah ini hanya berfungsi untuk menghubungkan ke cluster saat privat 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 respon**

```
{
    "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 endpoint untuk 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>

**Pengaturan tambahan saat menghubungkan melalui Direct Connect atau peering VPC Amazon**

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

Buat data DNS CNAME pribadi yang menunjuk ke nama domain yang sepenuhnya memenuhi syarat dari AWS PrivateLink titik akhir. Nama domain dari catatan DNS yang dibuat harus dibangun dari komponen-komponen berikut:

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

1. The 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.

1. 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 endpoint tanpa DNS pribadi AWS PrivateLink](#connecting-cluster-id-option).

### Menghubungkan ke cluster Aurora DSQL menggunakan titik akhir koneksi AWS PrivateLink
<a name="connecting-endpoints"></a>

Setelah AWS PrivateLink titik akhir Anda diatur dan aktif (periksa apakah ada`available`), Anda dapat terhubung ke cluster Aurora DSQL Anda menggunakan klien PostgreSQL. `State` Untuk petunjuk penggunaan AWS SDKs, Anda dapat mengikuti panduan dalam [Pemrograman dengan Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/programming-with.html). Anda harus mengubah titik akhir cluster agar sesuai dengan format nama host.

#### Membangun nama host
<a name="construct-hostname"></a>

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

1. `Your-cluster-id`

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

1. The 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 endpoint tanpa DNS pribadi AWS PrivateLink
<a name="connecting-cluster-id-option"></a>

Instruksi koneksi di atas bergantung pada catatan DNS pribadi. Jika aplikasi Anda berjalan di VPC Amazon yang sama dengan AWS PrivateLink titik akhir Anda, catatan DNS dibuat untuk Anda. Atau, jika Anda terhubung dari perangkat lokal melalui peering VPC Amazon atau Direct Connect, Anda dapat membuat catatan DNS pribadi Anda sendiri. Namun, penyiapan catatan DNS tidak selalu dimungkinkan karena pembatasan jaringan yang diberlakukan oleh tim keamanan Anda. Jika aplikasi Anda harus terhubung menggunakan Direct Connect atau dari VPC Amazon peered, dan penyiapan 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, Anda dapat menggunakan nama domain yang sepenuhnya memenuhi syarat dari AWS PrivateLink titik akhir Anda sebagai nama host Anda saat menghubungkan.

**penting**  
Saat menghubungkan dengan nama domain atau alamat IP yang sepenuhnya memenuhi syarat dari AWS PrivateLink titik akhir Anda, 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
```

### Memecahkan masalah dengan AWS PrivateLink
<a name="troubleshooting-privatelink"></a>

#### Masalah dan Solusi Umum
<a name="common-issues"></a>

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 penyiapan jaringan Anda memungkinkan lalu lintas di port 5432.  | 
|  Kegagalan resolusi DNS  |  DNS pribadi tidak diaktifkan  |  Verifikasi bahwa titik akhir VPC Amazon 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  |  Periksa kembali ID cluster Anda dan Wilayah AWS saat mengambil nama layanan.  | 

### Sumber Daya Terkait
<a name="related-resources"></a>

Untuk informasi selengkapnya, lihat sumber daya berikut:
+ [Panduan Pengguna Amazon Aurora DSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-dsql.html)
+ [Dokumentasi AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)
+ [Akses AWS layanan melalui AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)