Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membuat dan memanggil nama domain khusus untuk API pribadi
Dalam tutorial ini, Anda membuat nama domain kustom pribadi yang dapat Anda panggil di VPC di akun Anda sendiri. Untuk mencapai ini, Anda adalah penyedia API dan konsumen API. Anda memerlukan API pribadi dan titik akhir VPC yang ada untuk menyelesaikan tutorial ini. Jika Anda memiliki titik akhir VPC yang Anda gunakan untuk mengakses nama domain kustom publik, jangan menggunakannya untuk tutorial ini atau untuk membuat asosiasi akses nama domain apa pun.
Langkah 1: Buat nama domain kustom pribadi
Anda membuat nama domain kustom pribadi dengan menentukan nama domain, sertifikat ACM, dan kebijakan execute-api layanan untuk mengontrol titik akhir VPC mana yang dapat memanggilnya.
- Konsol Manajemen AWS
-
Untuk membuat nama domain kustom pribadi
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.
-
Di panel navigasi utama, pilih Nama domain khusus.
-
Pilih Tambahkan nama domain.
-
Untuk Nama domain, masukkan nama domain.
Sertifikat ACM Anda harus mencakup nama domain ini, tetapi nama domain tidak harus unik.
-
Pilih Pribadi.
Untuk mode Routing, pilih pemetaan API saja.
-
Untuk sertifikat ACM, pilih sertifikat.
Pilih Tambahkan nama domain.
API Gateway menyediakan nama domain dengan kebijakan deny semua sumber daya. Ini adalah kebijakan sumber daya untuk execute-api layanan. Anda perlu memperbarui kebijakan sumber daya ini untuk memberikan akses ke titik akhir VPC Anda untuk memanggil nama domain kustom pribadi Anda.
Untuk memperbarui kebijakan sumber daya Anda
-
Pilih tab Kebijakan sumber daya, lalu pilih Edit kebijakan sumber daya.
-
Masukkan kebijakan sumber daya berikut di editor kode. Ganti titik akhir VPC vpce-abcd1234efg dengan ID titik akhir VPC Anda sendiri.
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
]
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
],
"Condition" : {
"StringNotEquals": {
"aws:SourceVpce": "vpce-abcd1234"
}
}
}
]
}
Pilih Simpan perubahan.
- AWS CLI
Saat Anda membuat nama domain kustom pribadi menggunakan AWS CLI, Anda memberikan kebijakan sumber daya untuk execute-api layanan untuk memberikan akses ke titik akhir VPC untuk memanggil nama domain kustom pribadi Anda, menggunakan parameter. --policy
file://policy.json Anda dapat mengubah kebijakan ini nanti.
Untuk contoh ini, Anda akan melampirkan kebijakan sumber daya berikut sebagai parameter policy dengan memuat dari file. Salin dan simpan file ini sebagaipolicy.json. Kebijakan ini hanya mengizinkan lalu lintas masuk ke nama domain kustom pribadi dari titik akhir VPC:
vpce-abcd1234efg
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
]
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
],
"Condition" : {
"StringNotEquals": {
"aws:SourceVpce": "vpce-abcd1234"
}
}
}
]
}
Perintah create-domain-name berikut membuat nama domain kustom pribadi:
aws apigateway create-domain-name \
--domain-name 'private.example.com' \
--certificate-arn 'arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef' \
--security-policy 'TLS_1_2' \
--endpoint-configuration '{"types":["PRIVATE"]}' \
--policy file://policy.json
Outputnya akan seperti berikut ini.
{
"domainName": "private.example.com",
"domainNameId": "abcd1234",
"domainNameArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
"certificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef",
"certificateUploadDate": "2024-09-10T10:31:20-07:00",
"endpointConfiguration": {
"types": [
"PRIVATE"
]
},
"domainNameStatus": "AVAILABLE",
"securityPolicy": "TLS_1_2",
"routingMode" : "API_MAPPING_ONLY",
"policy": "..."
}
Langkah 2: Buat pemetaan jalur dasar untuk memetakan API pribadi Anda ke nama domain kustom pribadi Anda
Setelah Anda membuat nama domain kustom pribadi Anda, Anda memetakan API pribadi ke sana. Pemetaan jalur dasar membuat API dapat diakses melalui kombinasi nama domain kustom pribadi dan jalur dasar terkait. Sebaiknya gunakan satu nama domain kustom pribadi sebagai nama host dari beberapa API pribadi.
Semua penyedia API perlu membuat pemetaan jalur dasar, bahkan jika Anda tidak berencana untuk memanggil API Anda sendiri. Anda juga perlu memberikan akses untuk titik akhir VPC untuk memanggil API pribadi apa pun yang Anda petakan ke nama domain kustom pribadi Anda.
- Konsol Manajemen AWS
Untuk membuat pemetaan jalur dasar
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.
-
Di panel navigasi utama, pilih Nama domain khusus.
Pilih nama domain kustom pribadi.
Pada tab pem etaan API, pilih Konfigurasikan pemetaan.
Pilih Tambahkan pemetaan baru.
Masukkan API, St age, dan secara opsional Path.
Pilih Simpan.
- AWS CLI
Perintah create-base-path-mapping berikut membuat pemetaan antara API pribadi dan nama domain kustom pribadi:
aws apigateway create-base-path-mapping \
--domain-name-id abcd1234 \
--domain-name 'private.example.com' \
--rest-api-id a1b2c3 \
--stage prod \
--base-path v1
Outputnya akan terlihat seperti berikut ini.
{
"basePath": "v1",
"restApiId": "a1b2c3",
"stage": "prod"
}
Untuk lebih fleksibel tentang cara merutekan lalu lintas ke API, Anda dapat mengubah mode routing ke ROUTING_RULE_ONLY atau ROUTING_RULE_THEN_API_MAPPING dan membuat aturan routing. Untuk informasi selengkapnya, lihat Kirim lalu lintas ke Anda APIs melalui nama domain kustom Anda di API Gateway.
Langkah 3: Buat asosiasi akses nama domain antara nama domain kustom Anda dan titik akhir VPC
Selanjutnya, Anda membuat asosiasi akses nama domain antara nama domain kustom pribadi Anda dan titik akhir VPC Anda. Titik akhir VPC Anda menggunakan asosiasi akses nama domain untuk memanggil nama domain kustom pribadi Anda saat diisolasi dari internet publik.
- Konsol Manajemen AWS
-
Untuk membuat asosiasi akses nama domain
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.
-
Di panel navigasi utama, pilih Nama domain khusus.
-
Pilih nama domain kustom pribadi.
-
Di tab Ber bagi sumber daya, untuk asosiasi akses nama domain, pilih Buat asosiasi akses nama domain.
-
Untuk nama domain ARN, pilih nama domain Anda.
-
Untuk ID titik akhir VPC, pilih ID titik akhir VPC yang Anda berikan akses pada langkah 1.
-
Pilih asosiasi akses nama domain.
Anda juga dapat membuat asosiasi akses nama domain menggunakan halaman asosiasi akses nama domain di konsol.
- AWS CLI
Per create-domain-name-access-association intah berikut membuat asosiasi akses nama domain antara nama domain kustom pribadi Anda dan titik akhir VPC Anda.
aws apigateway create-domain-name-access-association \
--domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
--access-association-source vpce-abcd1234efg \
--access-association-source-type VPCE \
--region us-west-2
Outputnya akan terlihat seperti berikut ini.
{
"domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:111122223333:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg",
"accessAssociationSource": "vpce-abcd1234efg",
"accessAssociationSourceType": "VPCE",
"domainNameARN" : "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
}
Setelah Anda membuat asosiasi akses nama domain Anda, dibutuhkan sekitar 15 menit untuk siap. Sementara Anda menunggu, Anda dapat melanjutkan dengan langkah-langkah berikut.
Langkah 4: Buat zona yang dihosting Route 53
Setelah memperbarui kebijakan sumber daya dan mengaitkan nama domain kustom pribadi dengan titik akhir VPC, Anda membuat zona pribadi yang dihosting di Route 53 untuk menyelesaikan nama domain kustom Anda. Zona yang dihosting adalah wadah yang menyimpan informasi tentang bagaimana Anda ingin merutekan lalu lintas untuk domain dalam satu atau lebih VPC tanpa mengekspos sumber daya Anda ke internet. Untuk informasi selengkapnya, lihat Menggunakan zona yang di-hosting pribadi.
- Konsol Manajemen AWS
-
Untuk menggunakan Konsol Manajemen AWS, lihat Membuat zona yang dihosting pribadi di Panduan Pengembang Amazon Route 53.
Untuk Nama, gunakan nama nama domain kustom pribadi Anda. Untuk ID VPC, gunakan VPC yang berisi titik akhir VPC yang Anda gunakan pada langkah sebelumnya.
- AWS CLI
Perintah create-hosted-zone berikut membuat zona host pribadi:
aws route53 create-hosted-zone --name private.example.com \
--caller-reference 2014-04-01-18:47 \
--hosted-zone-config Comment="command-line version",PrivateZone=true \
--vpc VPCRegion=us-west-2,VPCId=vpc-abcd1234
Output berisi ID zona yang dihosting. Anda menggunakan ID zona yang dihosting dalam langkah-langkah berikut.
Langkah 5: Buat catatan DNS Route 53
Setelah Anda membuat zona yang dihosting, Anda membuat catatan untuk menyelesaikan nama domain kustom pribadi Anda. Anda menggunakan ID zona yang dihosting yang Anda buat pada langkah sebelumnya. Dalam contoh ini, Anda membuat tipe rekaman A. Jika Anda menggunakan IPv6 untuk titik akhir VPC Anda, buat jenis rekaman AAAA. Jika Anda menggunakan dualstack untuk titik akhir VPC Anda, buat jenis rekaman AAAA dan A.
- Konsol Manajemen AWS
-
Untuk menggunakan Konsol Manajemen AWS, lihat Mer utekan lalu lintas ke API Gateway API Amazon dengan menggunakan nama domain Anda.
Gunakan Quick create dan aktifkan Alias. Untuk titik akhir, gunakan nama DNS titik akhir VPC.
- AWS CLI
-
Untuk mengonfigurasi catatan DNS Anda untuk memetakan nama domain kustom pribadi ke nama host dari ID zona yang dihosting yang diberikan, Anda membuat file JSON yang berisi konfigurasi untuk menyiapkan catatan DNS untuk nama domain pribadi.
Berikut ini setup-dns-record.json menunjukkan cara membuat A catatan DNS untuk memetakan nama domain kustom pribadi ke nama host pribadinya. Anda memberikan ID DNS VPC Anda, dan ID zona yang dihosting yang Anda buat pada langkah sebelumnya. DNSName
{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "private.example.com",
"Type": "A",
"AliasTarget": {
"DNSName": "vpce-abcd1234.execute-api.us-west-2.vpce.amazonaws.com",
"HostedZoneId": "Z2OJLYMUO9EFXC",
"EvaluateTargetHealth": false
}
}
}
]
}
Perintah change-resource-record-sets berikut membuat catatan DNS untuk nama domain kustom pribadi Anda:
aws route53 change-resource-record-sets \
--hosted-zone-id ZABCDEFG1234 \
--change-batch file://path/to/your/setup-dns-record.json
Ganti hosted-zone-id dengan ID Zona Hosted Route 53 dari catatan DNS yang ditetapkan di akun Anda. Nilai change-batch parameter menunjuk ke file JSON.
Jika Anda tidak berencana memanggil nama domain kustom pribadi Anda sendiri, setelah mengonfirmasi bahwa nama domain kustom pribadi berfungsi, Anda dapat menghapus sumber daya ini.
Langkah 6: Panggil nama domain kustom pribadi Anda
Anda sekarang dapat memanggil nama domain kustom pribadi Anda sendiri Akun AWS. Di VPC Anda, gunakan perintah curl berikut untuk mengakses nama domain kustom pribadi Anda.
curl https://private.example.com/v1
Untuk informasi selengkapnya tentang cara lain untuk memanggil API pribadi Anda, lihatMemanggil API pribadi menggunakan nama domain khusus.
Langkah 7: Bersihkan
Untuk mencegah biaya yang tidak perlu, hapus hubungan antara titik akhir VPC dan nama domain kustom pribadi Anda, lalu hapus nama domain kustom pribadi Anda.
- Konsol Manajemen AWS
-
Setelah menghapus asosiasi akses nama domain, Anda dapat menghapus nama domain kustom pribadi Anda.
Jika perlu, Anda juga dapat menghapus titik akhir VPC Anda. Untuk informasi selengkapnya, lihat Menghapus titik akhir antarmuka.
- AWS CLI
Untuk membersihkan
-
Per delete-access-association intah berikut menghapus asosiasi akses nama domain:
aws apigateway delete-domain-name-access-association \
--domain-name-access-association-arn 'arn:aws:apigateway:us-west-2:111122223333:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg' \
--region us-west-2
-
Per delete-domain-name intah berikut menghapus nama domain kustom pribadi Anda. Perintah ini juga menghapus semua pemetaan jalur dasar.
aws apigateway delete-domain-name \
--domain-name test.private.com \
--domain-name-id abcd1234
Jika perlu, Anda juga dapat menghapus titik akhir VPC Anda. Untuk informasi selengkapnya, lihat Menghapus titik akhir antarmuka.
Praktik terbaik
Sebaiknya gunakan praktik terbaik berikut saat membuat nama domain kustom pribadi Anda:
-
Gunakan pemetaan jalur dasar atau aturan perutean untuk mengirim lalu lintas dari satu nama domain kustom pribadi ke beberapa API pribadi.
-
Bila titik akhir VPC tidak lagi memerlukan akses ke nama domain kustom pribadi, hapus asosiasi tersebut. Selain itu, hapus titik akhir VPC dari policy untuk execute-api layanan untuk domain kustom pribadi.
-
Konfigurasikan setidaknya dua Zona Ketersediaan per titik akhir VPC.
-
Nonaktifkan titik akhir default. Kami menyarankan Anda menonaktifkan titik akhir default untuk mengizinkan konsumen API Anda hanya memanggil API Anda dari nama domain khusus. Untuk informasi selengkapnya, lihat Nonaktifkan titik akhir default untuk REST APIs.
-
Sebaiknya sediakan zona host pribadi Route 53 dan A-type catatan saat menyiapkan nama domain kustom pribadi. Jika Anda tidak berencana untuk memanggil nama domain kustom pribadi Anda sendiri, Anda dapat menghapus sumber daya ini nanti.