

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

# Nama domain khusus untuk pribadi APIs di API Gateway
<a name="apigateway-private-custom-domains"></a>

Anda dapat membuat nama domain khusus untuk pribadi Anda APIs. Gunakan nama domain kustom pribadi untuk memberikan URL yang lebih sederhana dan intuitif kepada pemanggil API. Dengan nama domain kustom pribadi, Anda dapat mengurangi kerumitan, mengonfigurasi langkah-langkah keamanan selama jabat tangan TLS, dan mengontrol siklus hidup sertifikat nama domain Anda menggunakan AWS Certificate Manager (ACM). Untuk informasi selengkapnya, lihat [Mengamankan kunci pribadi sertifikat Anda untuk nama domain kustom Anda](#apigateway-private-custom-domains-secure-certificate-private-key).

Nama domain khusus untuk pribadi APIs tidak perlu unik di beberapa akun. Anda dapat membuat `example.private.com` di akun 111122223333 dan di akun 55555555555555, selama sertifikat ACM Anda mencakup nama domain. Untuk mengidentifikasi nama domain kustom pribadi, gunakan nama domain kustom pribadi ARN. Pengenal ini unik untuk nama domain kustom pribadi.

Saat membuat nama domain kustom pribadi di API Gateway, Anda adalah *penyedia API*. Anda dapat memberikan nama domain kustom pribadi Anda kepada orang lain Akun AWS menggunakan API Gateway atau AWS Resource Access Manager (AWS RAM).

Saat Anda memanggil nama domain kustom pribadi, Anda adalah *konsumen API*. Anda dapat menggunakan nama domain kustom pribadi dari Anda sendiri Akun AWS atau dari yang lain Akun AWS.

Saat menggunakan nama domain kustom pribadi, Anda membuat asosiasi akses nama domain antara titik akhir VPC dan nama domain kustom pribadi. Dengan asosiasi akses nama domain, konsumen API dapat memanggil nama domain kustom pribadi Anda saat diisolasi dari internet publik. Untuk informasi selengkapnya, lihat [Tugas penyedia API dan konsumen API untuk nama domain khusus untuk pribadi APIs](apigateway-private-custom-domains-associations.md).

## Mengamankan kunci pribadi sertifikat Anda untuk nama domain kustom Anda
<a name="apigateway-private-custom-domains-secure-certificate-private-key"></a>

Saat Anda meminta SSL/TLS sertifikat menggunakan ACM untuk membuat nama domain kustom Anda secara pribadi APIs, ACM menghasilkan public/private key pair. Saat Anda mengimpor sertifikat, Anda menghasilkan key pair. Kunci publik menjadi bagian dari sertifikat. **Untuk menyimpan kunci pribadi dengan aman, ACM membuat kunci lain menggunakan AWS KMS, yang disebut kunci KMS, dengan alias aws/acm.** AWS KMS menggunakan kunci ini untuk mengenkripsi kunci pribadi sertifikat Anda. Untuk informasi selengkapnya, lihat [Perlindungan data AWS Certificate Manager di](https://docs.aws.amazon.com/acm/latest/userguide/data-protection.html) *Panduan AWS Certificate Manager Pengguna*.

API Gateway menggunakan AWS TLS Connection Manager, layanan yang hanya dapat diakses Layanan AWS, untuk mengamankan dan menggunakan kunci pribadi sertifikat Anda. Saat Anda menggunakan sertifikat ACM untuk membuat nama domain kustom API Gateway, API Gateway mengaitkan sertifikat Anda dengan AWS TLS Connection Manager. Kami melakukan ini dengan membuat hibah AWS KMS terhadap kunci AWS terkelola Anda. Hibah ini memungkinkan TLS Connection Manager digunakan AWS KMS untuk mendekripsi kunci pribadi sertifikat Anda. TLS Connection Manager menggunakan sertifikat dan kunci pribadi yang didekripsi (plaintext) untuk membuat koneksi aman (sesi SSL/TLS) dengan klien layanan API Gateway. Ketika sertifikat diputuskan dari layanan API Gateway, hibah akan dihentikan. Untuk informasi selengkapnya, lihat [Hibah](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) di *Panduan AWS Key Management Service Pengembang*.

Untuk informasi selengkapnya, lihat [Enkripsi data saat istirahat di Amazon API Gateway](data-protection-encryption.md#data-protection-at-rest).

## Pertimbangan untuk nama domain kustom pribadi
<a name="apigateway-private-custom-domains-considerations"></a>

Pertimbangan berikut dapat memengaruhi penggunaan nama domain kustom pribadi Anda:
+ API Gateway membutuhkan waktu sekitar 15 menit untuk menyediakan nama domain kustom pribadi Anda.
+ Jika Anda memperbarui sertifikat ACM, API Gateway membutuhkan waktu sekitar 15 menit untuk menyelesaikan pembaruan. Selama waktu ini, nama domain Anda berada di `UPDATING` negara bagian, dan Anda masih dapat mengaksesnya.
+ Untuk memanggil nama domain kustom pribadi, Anda harus membuat asosiasi akses nama domain. Setelah Anda membuat asosiasi akses nama domain, dibutuhkan sekitar 15 menit untuk siap.
+ Nama domain kustom pribadi ARN berisi *account-id* dan file. *domain-name-id* Saat Anda membuat nama domain, API Gateway menggunakan format ARN. `arn:partition:apigateway:region::/domainnames/domain-name` Saat Anda mengakses nama domain kustom pribadi, Anda menggunakan format ARN. `arn:partition:apigateway:region:account-id:/domainnames/domain-name+domain-name-id` 

  Anda mungkin perlu mengubah izin IAM Anda untuk mengizinkan akses ke nama domain pribadi setelah Anda membuatnya.
+ Anda tidak dapat memanggil nama domain kustom pribadi dengan nama yang sama dari titik akhir VPC yang sama. Misalnya, jika Anda ingin memanggil `arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234` dan`arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+xyz000`, kaitkan setiap nama domain kustom pribadi dengan titik akhir VPC yang berbeda.
+ Sertifikat wildcard didukung, seperti sertifikat untuk`*.private.example.com`.
+ Nama domain kustom wildcard tidak didukung.
+ Hanya sertifikat RSA dengan panjang kunci 2048-bit dan sertifikat ECDSA dengan panjang kunci 256-bit dan 384-bit yang didukung.
+ Anda tidak dapat mengatur jenis alamat IP untuk pribadi APIs agar hanya mengizinkan IPv4 alamat menjalankan API pribadi Anda. Hanya dualstack yang didukung. Untuk informasi selengkapnya, lihat [Jenis alamat IP untuk REST APIs di API Gateway](api-gateway-ip-address-type.md).
+ Untuk mengirim lalu lintas menggunakan API pribadi, Anda dapat menggunakan semua jenis alamat IP yang didukung oleh Amazon VPC. Anda dapat mengirim dualstack dan IPv6 lalu lintas dengan mengonfigurasi pengaturan pada titik akhir VPC Anda. Anda tidak dapat memodifikasi ini menggunakan API Gateway. Untuk informasi selengkapnya, lihat [Menambahkan IPv6 dukungan untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html).
+ Pemetaan jalur dasar multi-level, seperti memetakan API pribadi Anda ke`/developers/feature`, tidak didukung, tetapi Anda dapat menggunakan aturan perutean untuk membuat kondisi jalur multi-level. Untuk informasi selengkapnya, lihat [Kirim lalu lintas ke Anda APIs melalui nama domain kustom Anda di API Gateway](rest-api-routing-mode.md).
+ Anda tidak dapat menetapkan versi TLS minimum untuk nama domain kustom pribadi Anda. Semua nama domain kustom pribadi memiliki kebijakan keamanan`TLS-1-2`.
+ Anda dapat menggunakan kebijakan titik akhir VPC untuk mengontrol akses ke nama domain kustom pribadi. Untuk informasi lebih lanjut, lihat contoh 4 dan 5 in[Menggunakan kebijakan titik akhir VPC secara pribadi APIs di API Gateway](apigateway-vpc-endpoint-policies.md).
+ Anda harus membuat kebijakan sumber daya terpisah untuk API pribadi Anda dan untuk nama domain kustom pribadi Anda. Untuk memanggil nama domain kustom pribadi, konsumen API memerlukan akses dari kebijakan sumber daya nama domain kustom pribadi, kebijakan sumber daya API pribadi, dan kebijakan atau otorisasi titik akhir VPC apa pun pada API pribadi.

## Pertimbangan untuk menggunakan nama domain kustom pribadi dengan sumber daya API Gateway lainnya
<a name="apigateway-private-custom-domains-considerations-for-migration"></a>

Pertimbangan berikut dapat memengaruhi cara Anda menggunakan nama domain kustom pribadi dengan sumber daya API Gateway lainnya:
+ Anda tidak dapat mengirim lalu lintas dari nama domain kustom pribadi ke API publik.
+ Saat API pribadi dipetakan ke nama domain kustom pribadi, Anda tidak dapat mengubah jenis titik akhir API. 
+ Anda tidak dapat memigrasikan nama domain kustom publik ke nama domain kustom pribadi.
+ Jika Anda memiliki titik akhir VPC yang Anda gunakan untuk mengakses nama domain kustom publik, jangan menggunakannya untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi.

## Perbedaan antara nama domain kustom pribadi dan nama domain kustom publik
<a name="apigateway-private-custom-domains-public-differences"></a>

Berikut ini menjelaskan perbedaan antara nama domain kustom pribadi dan publik:
+ Nama domain kustom pribadi tidak perlu unik di beberapa akun.
+ Nama domain pribadi memiliki ID nama domain. ID ini secara unik mengidentifikasi nama domain kustom pribadi dan tidak dibuat untuk nama domain kustom publik.
+ Ketika Anda menggunakan AWS CLI untuk memperbarui atau menghapus nama domain kustom pribadi Anda, Anda harus memberikan ID nama domain. Jika Anda memiliki nama domain kustom pribadi yang dipanggil `example.com` dan nama domain kustom publik dipanggil `example.com` dan Anda tidak memberikan ID nama domain, API Gateway akan memodifikasi atau menghapus nama domain kustom publik Anda.

## Langkah selanjutnya untuk nama domain khusus untuk pribadi APIs
<a name="apigateway-private-custom-domains-next-steps"></a>

Untuk informasi tentang tugas penyedia API dan konsumen API, lihat[Tugas penyedia API dan konsumen API untuk nama domain khusus untuk pribadi APIs](apigateway-private-custom-domains-associations.md).

Untuk petunjuk cara membuat nama domain kustom pribadi yang dapat Anda panggil sendiri Akun AWS, lihat[Tutorial: Membuat dan memanggil nama domain khusus untuk pribadi APIs](apigateway-private-custom-domains-tutorial.md).

Untuk petunjuk tentang menyediakan Akun AWS akses lain ke nama domain kustom pribadi Anda, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM](apigateway-private-custom-domains-provider-share.md). Untuk petunjuk tentang mengaitkan titik akhir VPC Anda dengan nama domain kustom pribadi di Akun AWS tempat lain, lihat. [Konsumen API: Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi yang dibagikan dengan Anda](apigateway-private-custom-domains-consumer-create.md)

# Tugas penyedia API dan konsumen API untuk nama domain khusus untuk pribadi APIs
<a name="apigateway-private-custom-domains-associations"></a>

Saat membuat nama domain kustom pribadi, Anda adalah *penyedia API*. Saat Anda memanggil nama domain kustom pribadi, Anda adalah *konsumen API*. Anda dapat menggunakan nama domain kustom pribadi dari Anda sendiri Akun AWS atau dari yang lain Akun AWS.

Bagian berikut menjelaskan tugas yang diperlukan oleh penyedia API dan konsumen API untuk menggunakan nama domain kustom pribadi. Jika Anda ingin memanggil nama domain kustom pribadi sendiri Akun AWS, Anda adalah penyedia API dan konsumen API. Jika Anda ingin memanggil domain kustom pribadi di domain lain Akun AWS, tergantung pada hubungan kepercayaan antara penyedia API dan konsumen API di AWS Organizations, AWS RAM mungkin menyelesaikan beberapa tugas untuk Anda.

## Tugas penyedia API
<a name="apigateway-private-custom-domains-associations-provider"></a>

Penyedia API membuat pribadi APIs dan memetakannya ke nama domain khusus.

 Penyedia API mengelola dua kebijakan sumber daya untuk melindungi nama domain kustom pribadi mereka. Kebijakan pertama adalah untuk `execute-api` layanan dan kontrol titik akhir VPC mana yang dapat memanggil nama domain kustom pribadi Anda. Dalam konfigurasi nama domain kustom pribadi, itu disebut`policy`.

Kebijakan kedua adalah untuk layanan Manajemen Amazon API Gateway dan mengontrol titik akhir VPC mana yang lain Akun AWS dapat membentuk asosiasi akses nama domain dengan nama domain kustom pribadi Anda. Titik akhir VPC perlu membentuk asosiasi akses nama domain dengan nama domain kustom pribadi untuk memanggilnya. Dalam konfigurasi nama domain kustom pribadi, itu adalah`managementPolicy`. Anda dapat menggunakan AWS RAM atau API Gateway untuk memperbarui kebijakan ini. Jika Anda tidak berencana mengizinkan titik akhir VPC di lain Akun AWS untuk memanggil nama domain kustom Anda, Anda tidak mengedit. `managementPolicy`

Jika Anda adalah penyedia API, Anda harus melakukan hal berikut:

1. Buat API pribadi.

1. Perbarui API pribadi Anda `policy` untuk memberikan akses titik akhir VPC Anda ke API pribadi Anda.

1. Buat nama domain kustom pribadi.

1. Perbarui nama domain kustom pribadi Anda `policy` untuk memberikan akses titik akhir VPC Anda ke nama domain kustom pribadi Anda.

1. Buat pemetaan jalur dasar atau aturan perutean untuk mengirim lalu lintas dari API pribadi Anda ke nama domain kustom pribadi Anda. Untuk informasi selengkapnya, lihat [Kirim lalu lintas ke Anda APIs melalui nama domain kustom Anda di API Gateway](rest-api-routing-mode.md).

Jika Anda ingin mengizinkan konsumen API di pihak lain Akun AWS untuk mengakses nama domain kustom pribadi Anda, lakukan hal berikut:

1. `managementPolicy`Perbarui nama domain kustom pribadi Anda untuk memungkinkan konsumen API di akun lain mengaitkan titik akhir VPC mereka dengan nama domain kustom pribadi Anda. Anda dapat melakukan ini menggunakan metode berikut:  
**AWS RAM**  
Dengan AWS RAM, jika penyedia API dan konsumen API berada di organisasi yang sama menggunakan AWS Organizations, pembagian sumber daya antara penyedia dan konsumen akan diterima secara otomatis. Jika tidak, Anda harus menunggu hingga konsumen API menerima pembagian sumber daya. **Kami menyarankan Anda menggunakan AWS RAM untuk membagikan nama domain kustom pribadi Anda.**   
**API Gateway**  
Dengan API Gateway, hanya AWS CLI yang didukung. Anda harus memperbarui nama domain kustom pribadi Anda menggunakan operasi tambalan dan memberikan dokumen kebijakan Anda sendiri untuk`managementPolicy`.

1. `policy`Perbarui nama domain kustom pribadi Anda dan setiap pribadi yang APIs dipetakan ke sana untuk memberikan akses ke titik akhir VPC konsumen API.

Untuk petunjuk tentang cara menyediakan API Anda ke yang lain Akun AWS, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM](apigateway-private-custom-domains-provider-share.md). 

## Tugas konsumen API
<a name="apigateway-private-custom-domains-associations-consumer"></a>

Konsumen API mengaitkan titik akhir VPC mereka dengan nama domain ARN untuk memanggil nama domain kustom pribadi. Konsumen API tidak perlu membuat API Gateway API.

Jika Anda adalah konsumen API, lakukan hal berikut:

1. Buat titik akhir VPC dengan DNS pribadi yang diaktifkan di Amazon VPC.

1. (Opsional - jika AWS RAM digunakan) Terima pembagian sumber daya domain kustom pribadi AWS RAM dalam waktu **12 jam** setelah pembagian sumber daya. Jika Anda dan penyedia API berada di organisasi yang sama, pembagian sumber daya akan diterima secara otomatis.

1. Dapatkan nama domain kustom pribadi ARN. Karena URL nama domain kustom pribadi tidak unik, Anda menggunakan nama domain kustom pribadi ARN untuk membentuk asosiasi akses nama domain antara titik akhir VPC Anda dan nama domain kustom pribadi. Anda dapat menggunakan AWS RAM untuk mengambil nama domain kustom pribadi ARN.

1. Kaitkan ARN domain kustom pribadi dengan titik akhir VPC Anda di API Gateway. Ini menciptakan koneksi aman antara titik akhir VPC Anda dan nama domain kustom pribadi. Lalu lintas tidak meninggalkan jaringan Amazon.

1. Tunggu penyedia API memberikan akses titik akhir VPC Anda ke nama domain kustom pribadi dan setiap pribadi yang APIs dipetakan ke nama domain kustom pribadi. Jika Anda adalah penyedia API dan konsumen API, Anda memberikan akses pemanggilan titik akhir VPC Anda sendiri.

1. Buat Route 53 Private Hosted Zone dan catatan Route 53 untuk menyelesaikan nama domain kustom pribadi di Route 53.

Untuk petunjuk tentang cara menggunakan API di API lain Akun AWS, lihat[Konsumen API: Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi yang dibagikan dengan Anda](apigateway-private-custom-domains-consumer-create.md).

# Tutorial: Membuat dan memanggil nama domain khusus untuk pribadi APIs
<a name="apigateway-private-custom-domains-tutorial"></a>

Dalam tutorial ini, Anda membuat nama domain kustom pribadi yang dapat Anda panggil dalam VPC di akun Anda sendiri. Untuk mencapai hal 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
<a name="apigateway-private-custom-domains-provider-create-domain"></a>

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**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih **Tambahkan nama domain**.

1. Untuk **nama Domain**, masukkan nama domain. 

   Sertifikat ACM Anda harus mencakup nama domain ini, tetapi nama domain tidak harus unik.

1. Pilih **Pribadi**.

1. Untuk **mode Routing**, pilih **pemetaan API saja**.

1. Untuk **sertifikat ACM**, pilih sertifikat.

1. Pilih **Tambahkan nama domain**.

API Gateway menyediakan nama domain dengan kebijakan `deny` semua sumber daya. Ini adalah kebijakan sumber daya untuk `execute-api` layanan ini. 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**

1. Pilih tab **Kebijakan sumber daya**, lalu pilih **Edit kebijakan sumber daya**.

1. 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"
                   }
               }
           }
       ]
   }
   ```

1. 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 sebagai`policy.json`. Kebijakan ini hanya mengizinkan lalu lintas masuk ke nama domain kustom pribadi dari titik akhir * `vpce-abcd1234efg`* VPC:

****  

```
{
    "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"
                }
            }
        }
    ]
}
```

[create-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-domain-name.html)Perintah 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
<a name="apigateway-private-custom-domains-base-path-mapping"></a>

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. Kami menyarankan Anda menggunakan satu nama domain kustom pribadi sebagai nama host dari beberapa pribadi APIs.

Semua penyedia API perlu membuat pemetaan jalur dasar, bahkan jika Anda tidak berencana menjalankan API Anda sendiri. Anda juga perlu memberikan akses untuk titik akhir VPC untuk memanggil pribadi apa pun APIs yang Anda petakan ke nama domain kustom pribadi Anda.

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat pemetaan jalur dasar**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi.

1. Pada tab **pemetaan API**, pilih **Konfigurasi** pemetaan.

1. Pilih **Tambahkan pemetaan baru**.

1. Masukkan **API**, **Stage**, dan secara opsional **Path**.

1. Pilih **Simpan**.

------
#### [ AWS CLI ]

[create-base-path-mapping](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-base-path-mapping.html)Perintah 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 fleksibilitas lebih lanjut tentang cara Anda merutekan lalu lintas ke Anda APIs, Anda dapat mengubah mode perutean ke `ROUTING_RULE_ONLY` atau `ROUTING_RULE_THEN_API_MAPPING` dan membuat aturan perutean. Untuk informasi selengkapnya, lihat [Kirim lalu lintas ke Anda APIs melalui nama domain kustom Anda di API Gateway](rest-api-routing-mode.md).

**catatan**  
Jika Anda ingin orang lain Akun AWS memanggil nama domain kustom pribadi Anda, setelah Anda menyelesaikan tutorial ini, ikuti langkah-langkahnya. [Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM](apigateway-private-custom-domains-provider-share.md)

## Langkah 3: Buat asosiasi akses nama domain antara nama domain khusus Anda dan titik akhir VPC
<a name="apigateway-private-custom-domains-provider-associate-with-vpce"></a>

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**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi.

1. Di tab **Berbagi sumber daya**, untuk **asosiasi akses nama domain**, pilih **Buat asosiasi akses nama domain**.

1. Untuk **nama Domain ARN**, pilih nama domain Anda.

1. Untuk **ID titik akhir VPC, pilih ID titik akhir** VPC yang Anda berikan akses pada langkah 1.

1. Pilih **Asosiasi akses nama domain**.

Anda juga dapat membuat asosiasi akses nama **domain menggunakan halaman Asosiasi akses nama domain** konsol.

------
#### [ AWS CLI ]

`create-domain-name-access-association`Perintah 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. Sambil menunggu, Anda dapat melanjutkan dengan langkah-langkah berikut.

## Langkah 4: Buat zona yang dihosting Route 53
<a name="apigateway-private-custom-domains-provider-create-route-53-private-hosted-zone"></a>

Setelah memperbarui kebijakan sumber daya dan mengaitkan nama domain kustom pribadi Anda dengan titik akhir VPC, Anda membuat zona host pribadi 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 VPCs tanpa mengekspos sumber daya Anda ke internet. Untuk informasi selengkapnya, lihat [Menggunakan zona yang di-hosting pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html).

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakannya Konsol Manajemen AWS, lihat [Membuat zona yang dihosting pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) 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 ]

[create-hosted-zone](https://docs.aws.amazon.com/cli/latest/reference/route53/create-hosted-zone.html)Perintah 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
<a name="apigateway-private-custom-domains-provider-create-route-53-record"></a>

Setelah membuat zona yang dihosting, Anda membuat catatan untuk menyelesaikan nama domain kustom pribadi Anda. Anda menggunakan ID zona yang dihosting yang Anda buat di langkah sebelumnya. Dalam contoh ini, Anda membuat tipe catatan A. Jika Anda menggunakan IPv6 untuk titik akhir VPC Anda, buat jenis catatan AAAA. Jika Anda menggunakan dualstack untuk titik akhir VPC Anda, buat AAAA dan tipe catatan A.

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakannya Konsol Manajemen AWS, lihat [Merutekan lalu lintas ke API Amazon API Gateway menggunakan nama domain Anda](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html).

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 hostnya dari ID zona host 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
        }
      }
    }
  ]
}
```

[change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html)Perintah 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 Dihosting Route 53 dari catatan DNS yang ditetapkan di akun Anda. Nilai `change-batch` parameter menunjuk ke file JSON.

------

Jika Anda tidak berencana untuk memanggil nama domain kustom pribadi Anda sendiri, setelah Anda mengonfirmasi nama domain kustom pribadi Anda berfungsi, Anda dapat menghapus sumber daya ini.

## Langkah 6: Panggil nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-tutorial-invoke"></a>

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 menjalankan API pribadi Anda, lihat[Memanggil API pribadi menggunakan nama domain khusus](apigateway-private-api-test-invoke-url.md#apigateway-private-custom-domains-provider-invoke).

## Langkah 7: Bersihkan
<a name="apigateway-private-custom-domains-cleanup"></a>

Untuk mencegah biaya yang tidak perlu, hapus hubungan antara titik akhir VPC Anda dan nama domain kustom pribadi Anda, lalu hapus nama domain kustom pribadi Anda.

------
#### [ Konsol Manajemen AWS ]

**Untuk menghapus asosiasi akses nama domain**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Asosiasi akses nama domain**.

1. Pilih asosiasi akses nama domain Anda, lalu pilih **Hapus**.

1. Konfirmasikan pilihan Anda, lalu pilih **Hapus**.

Setelah menghapus asosiasi akses nama domain, Anda dapat menghapus nama domain kustom pribadi Anda.

**Untuk menghapus nama domain kustom pribadi Anda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi Anda.

1. Pilih **Hapus**.

1. Konfirmasikan pilihan Anda, lalu pilih **Hapus**.

Jika perlu, Anda juga dapat menghapus titik akhir VPC Anda. Untuk informasi selengkapnya, lihat [Menghapus titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-interface-endpoint.html).

------
#### [ AWS CLI ]

**Untuk membersihkan**

1. `delete-access-association`Perintah 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
   ```

1. `delete-domain-name`Perintah 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](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-interface-endpoint.html).

------

## Praktik terbaik
<a name="apigateway-private-custom-domains-best-practices"></a>

Kami menyarankan Anda menggunakan 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 pribadi. APIs
+ Jika titik akhir VPC tidak lagi memerlukan akses ke nama domain kustom pribadi, hapus asosiasi tersebut. Selain itu, hapus titik akhir VPC dari untuk `execute-api` layanan `policy` untuk domain kustom pribadi. 
+ Konfigurasikan setidaknya dua Availability Zone per titik akhir VPC.
+ Nonaktifkan titik akhir default. Kami menyarankan Anda menonaktifkan titik akhir default untuk memungkinkan konsumen API Anda hanya memanggil API Anda dari nama domain kustom. Untuk informasi selengkapnya, lihat [Nonaktifkan titik akhir default untuk REST APIs](rest-api-disable-default-endpoint.md).
+ Kami menyarankan Anda menyediakan zona host pribadi Route 53 dan catatan tipe-A saat Anda menyiapkan nama domain kustom pribadi Anda. Jika Anda tidak berencana untuk memanggil nama domain kustom pribadi Anda sendiri, Anda dapat menghapus sumber daya ini nanti.

# Bekerja dengan nama domain kustom pribadi lintas akun
<a name="apigateway-private-custom-domains-other-accounts"></a>

Bagian ini menjelaskan cara bekerja dengan nama domain kustom pribadi lintas akun. Anda dapat memberikan nama domain kustom pribadi ke yang lain Akun AWS dan menggunakan yang lain Akun AWS untuk memanggil nama domain kustom pribadi.

Anda dapat membagikan nama domain kustom pribadi Anda ke yang lain Akun AWS menggunakan AWS Resource Access Manager atau API Gateway. AWS Resource Access Manager (AWS RAM) membantu Anda berbagi sumber daya dengan aman di seluruh Akun AWS dan di dalam organisasi atau unit organisasi Anda (OUs). Untuk informasi lebih lanjut, lihat [Apa itu AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html).

Untuk petunjuk tentang cara membagikan nama domain kustom pribadi dengan Akun AWS penggunaan lain AWS RAM, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM](apigateway-private-custom-domains-provider-share.md).

Untuk petunjuk tentang cara membagikan nama domain kustom pribadi dengan yang lain Akun AWS menggunakan API Gateway, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan API Gateway AWS CLI](apigateway-private-custom-domains-provider-share-cli.md).

Untuk petunjuk tentang cara menggunakan nama domain kustom pribadi di tempat lain Akun AWS, lihat[Konsumen API: Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi yang dibagikan dengan Anda](apigateway-private-custom-domains-consumer-create.md).

## Praktik terbaik untuk bekerja dengan nama domain kustom pribadi lintas akun
<a name="apigateway-private-custom-domains-other-accounts-best-practices"></a>

Kami merekomendasikan praktik terbaik berikut untuk bekerja dengan nama domain kustom pribadi lintas akun:
+ Gunakan AWS RAM untuk membagikan nama domain kustom pribadi Anda. Bila Anda menggunakan AWS RAM, Anda dapat mengurangi overhead operasional dan Anda tidak perlu membuat `managementPolicy` untuk layanan Amazon API Gateway Management.
+ Gunakan `resource-owner` parameter saat Anda mencantumkan nama domain kustom pribadi atau asosiasi akses nama domain. Gunakan `resource-owner` parameter untuk hanya mencantumkan sumber daya yang dimiliki oleh Anda atau orang lain Akun AWS.

  Contoh berikut menunjukkan cara mendapatkan semua asosiasi akses nama domain yang Anda miliki:

  ```
  aws apigateway get-domain-name-access-associations --resource-owner SELF
  ```

  Gunakan `--resource-owner OTHER_ACCOUNTS` untuk mencantumkan semua asosiasi akses nama domain yang telah dibentuk akun lain dengan nama domain kustom pribadi Anda.

# Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM
<a name="apigateway-private-custom-domains-provider-share"></a>

Anda dapat memberikan konsumen API di Akun AWS akses lain ke nama domain kustom pribadi Anda. Di bagian ini, Anda mempelajari cara membagikan nama domain kustom pribadi Anda menggunakan AWS RAM dan cara mengontrol akses ke nama domain kustom pribadi Anda.

## Pertimbangan untuk berbagi nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-share-considerations"></a>

Pertimbangan berikut dapat memengaruhi cara Anda memberikan akses ke nama domain kustom pribadi Anda menggunakan AWS RAM. Untuk mempelajari cara membagikan nama domain kustom pribadi Anda tanpa menggunakan AWS RAM, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan API Gateway AWS CLI](apigateway-private-custom-domains-provider-share-cli.md).
+ Nama domain kustom pribadi dibagikan di Wilayah AWS level tersebut. Baik nama domain kustom pribadi dan titik akhir VPC harus sama. Wilayah AWS
+ Anda dapat menggunakan satu pembagian sumber daya dengan beberapa prinsipal, dan setelah Anda membuat pembagian sumber daya, Anda dapat menambahkan lebih banyak prinsipal ke dalamnya. Kami menyarankan bahwa jika memungkinkan, Anda menggunakan kembali bagian sumber daya Anda.
+ Anda selalu perlu memberikan akses titik akhir VPC konsumen API untuk memanggil nama domain kustom pribadi Anda dan setiap pribadi APIs yang dipetakan ke sana.
+ Jika konsumen API dan penyedia API berada di organisasi yang sama menggunakan AWS Organizations, pembagian sumber daya akan diterima secara otomatis. Anda masih perlu membuat pembagian sumber daya menggunakan AWS RAM.
+ Jika konsumen API dan penyedia API berada di organisasi yang sama menggunakan AWS Organizations dan berbagi sumber daya dalam organisasi Anda diaktifkan, prinsip apa pun di organisasi yang Anda bagikan akan secara otomatis diberikan akses ke pembagian sumber daya. Tidak perlu undangan dan Anda dapat melewati pembagian sumber daya.
+ Jika konsumen API tidak menerima pembagian sumber daya dalam waktu **12 jam**, penyedia API harus membagikan sumber daya tersebut lagi.
+ Setelah Anda membuat pembagian sumber daya, AWS RAM update `managementPolicy` untuk layanan Manajemen Amazon API Gateway untuk nama domain kustom pribadi Anda untuk mencegah akses ke prinsipal tanpa akses eksplisit. `allow` Untuk informasi selengkapnya, lihat [Menentukan apakah permintaan diizinkan atau ditolak dalam akun](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) di Panduan Pengguna IAM.

  Yang diperbarui `managementPolicy` akan terlihat seperti berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "abcd1234-1234-abcd-abcd-1234abcdefg",
      "Statement": [
          {
              "Sid": "APIGatewayPrivateDomainNameManagementPolicyDefaultPermission-org",
              "Effect": "Allow",
              "Principal": "*",
              "Action": "apigateway:CreateAccessAssociation",
              "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
              "Condition": {
                  "StringEquals": {
                      "aws:PrincipalOrgID": "o-1234abcd"
                  },
                  "StringNotEquals": {
                      "aws:PrincipalAccount": "111122223333"
                  }
              }
          }
      ]
  }
  ```

------

  AWS RAM telah mencegah prinsipal tanpa akses eksplisit untuk membuat asosiasi `allow` akses dengan nama domain kustom pribadi Anda, dengan menambahkan yang berikut:

  ```
  "StringNotEquals": {
      "aws:PrincipalAccount": "111122223333"
  }
  ```

  Anda masih dapat menggunakan prinsipal di Akun AWS siapa yang membuat nama domain kustom pribadi untuk membuat asosiasi akses nama domain.

## Izinkan akun lain untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-management-policy-update"></a>

Pertama, Anda memberikan akses ke yang lain Akun AWS untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi Anda.

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakan Konsol Manajemen AWS, lihat [Membuat bagian sumber daya AWS RAM di](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) *Panduan AWS RAM Pengguna*.

Untuk **Pilih jenis sumber daya**, pilih **Domain Kustom Pribadi API Gateway**.

------
#### [ AWS CLI ]

Berikut ini [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html)membuat pembagian sumber daya untuk nama domain kustom pribadi Anda. Diperlukan beberapa menit untuk menyelesaikan sumber daya dan asosiasi utama. Untuk kepala sekolah, berikan ID akun atau ID Organizations, seperti. `arn:aws:organizations::123456789012:organization/o-1234abcd` Anda dapat memberikan beberapa prinsip untuk berbagi sumber daya Anda.

```
aws ram create-resource-share \
    --region us-west-2 \
    --name privateCustomDomain-resource-share \
    --permission-arns arn:aws:ram::aws:permission/APIGatewayPrivateDomainNameManagementPolicyDefaultPermission \
    --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --principals 222222222222
```

------

Setelah Anda memberikan akses ke akun lain Akun AWS, konsumen API di akun tersebut harus membuat asosiasi akses nama domain antara titik akhir VPC mereka dengan nama domain kustom pribadi Anda. Anda tidak dapat membuat asosiasi akses nama domain untuk mereka. Untuk informasi selengkapnya, lihat [Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi bersama](apigateway-private-custom-domains-consumer-create.md#apigateway-private-custom-domains-consumer-associate).

## Izinkan akun lain untuk memanggil nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-policy-update"></a>

Selanjutnya, Anda memberikan akses ke titik akhir VPC konsumen API untuk memanggil nama domain kustom pribadi Anda dan setiap pribadi APIs yang dipetakan ke sana.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengizinkan titik akhir VPC di akun lain untuk memanggil nama domain kustom pribadi Anda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi yang Anda bagikan dengan orang lain Akun AWS.

1. Pada tab **Kebijakan sumber daya**, pilih **Edit kebijakan sumber daya**.

1. Tambahkan ID titik akhir VPC konsumen API ke kebijakan sumber daya Anda.

   Anda dapat menemukan ID titik akhir VPC konsumen API di bagian **Asosiasi akses nama domain** pada tab **Berbagi sumber daya** di halaman **Detail domain nama domain** kustom pribadi Anda.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

Berikut ini `policy` untuk `execute-api` layanan ini memungkinkan lalu lintas masuk ke nama domain kustom pribadi dari titik akhir VPC `vpce-abcd1234efg` dan. `vpce-xyz000abc`

****  

```
{
    "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",
                    "vpce-xyzz0000"
                    ]
                }
            }
        }
    ]
}
```

[update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)Perintah berikut menggunakan operasi patch untuk memperbarui `policy` untuk nama domain kustom pribadi:

```
aws apigateway update-domain-name
    --domain-name private.example.com \
    --domain-name-id abcd1234 \
    --patch-operations op=replace,path=/policy,value='"{\"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\":[\"vpce-abcd1234efg\", \"vpce-xyz000abc\"]}}}]}"
```

------

# Penyedia API: Berhenti membagikan nama domain khusus pribadi menggunakan AWS RAM
<a name="apigateway-private-custom-domains-provider-stop-sharing"></a>

Untuk berhenti membagikan nama domain kustom pribadi Anda, pertama-tama Anda menghentikan konsumen API dari membuat lebih banyak asosiasi akses nama domain dengan memisahkan pembagian sumber daya. Kemudian, Anda menolak asosiasi akses nama domain dan menghapus titik akhir VPC konsumen API dari layanan `policy` Anda. `execute-api` Konsumen API kemudian dapat menghapus asosiasi akses nama domain mereka.

## Berhenti membagikan nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-dissociate-ram"></a>

Pertama, Anda menghentikan pembagian sumber daya menggunakan AWS RAM.

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakan Konsol Manajemen AWS, lihat [Memperbarui bagian sumber daya di AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html).

------
#### [ AWS CLI ]

Berikut ini [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html)memisahkan pembagian sumber daya untuk nama domain kustom pribadi Anda.

```
aws ram disassociate-resource-share \
    --region us-west-2 \
    --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --principals 222222222222
```

------

## Tolak asosiasi akses nama domain
<a name="apigateway-private-custom-domains-provider-reject"></a>

Setelah berhenti membagikan sumber daya AWS RAM, Anda menolak asosiasi akses nama domain antara titik akhir VPC di akun lain dan nama domain kustom pribadi Anda. 

**catatan**  
Anda tidak dapat menolak asosiasi akses nama domain di akun Anda sendiri. Untuk menghentikan berbagi sumber daya, hapus asosiasi akses nama domain. Untuk informasi selengkapnya, lihat [Menghapus asosiasi akses nama domain](apigateway-private-custom-domains-tutorial.md#apigateway-private-custom-domains-cleanup).

Ketika Anda menolak asosiasi akses nama domain dengan titik akhir VPC, jika konsumen API mencoba memanggil nama domain kustom pribadi Anda, API Gateway menolak panggilan dan mengembalikan kode status. `403`

------
#### [ Konsol Manajemen AWS ]

**Untuk menolak asosiasi akses nama domain**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi yang Anda bagikan dengan orang lain Akun AWS.

1. Pada **Berbagi sumber daya**, pilih asosiasi akses nama domain yang ingin Anda tolak.

1. Pilih **Tolak asosiasi**.

1. Konfirmasikan pilihan Anda, lalu pilih **Tolak**.

------
#### [ AWS CLI ]

`reject-domain-name-access-association`Perintah berikut menolak asosiasi akses nama domain antara titik akhir VPC dan nama domain kustom pribadi Anda:

```
aws apigateway reject-domain-name-access-association \
    --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg \
    --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
```

------

## Tolak akses penyedia API untuk memanggil nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-deny-access"></a>

Setelah menolak asosiasi akses nama domain, Anda menghapus titik akhir VPC konsumen API dari layanan `policy` Anda. `execute-api`

------
#### [ Konsol Manajemen AWS ]

**Untuk menghapus titik akhir VPC konsumen API dari kebijakan sumber daya Anda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Nama domain khusus**.

1. Pilih nama domain kustom pribadi yang Anda bagikan dengan orang lain Akun AWS.

1. Pada tab **Kebijakan sumber daya**, pilih **Edit**.

1. Hapus titik akhir VPC dari kebijakan.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

[update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)Perintah berikut menggunakan operasi patch untuk memperbarui `execute-api` layanan `policy` untuk nama domain kustom pribadi. Ini baru `policy` menghapus ID titik akhir VPC tambahan yang ditambahkan di: [Izinkan akun lain untuk memanggil nama domain kustom pribadi Anda](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update)

```
aws apigateway update-domain-name
    --domain-name private.example.com \
    --domain-name-id abcd1234 \
    --patch-operations op=replace,path=/policy,value='"{\"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-abcd1234efg\"}}}]}"
```

------

Konsumen API kemudian harus menghapus asosiasi akses nama domain. Anda tidak dapat menghapusnya untuk mereka. Untuk informasi selengkapnya, lihat [Konsumen API: Hapus asosiasi akses nama domain Anda dengan nama domain kustom pribadi](apigateway-private-custom-domains-consumer-delete-domain-name-access-association.md).

# Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan API Gateway AWS CLI
<a name="apigateway-private-custom-domains-provider-share-cli"></a>

Anda dapat membagikan nama domain kustom pribadi menggunakan API Gateway AWS CLI, tetapi kami menyarankan Anda menggunakannya AWS RAM untuk mengurangi overhead operasional Anda. Untuk petunjuk tentang cara menggunakan AWS RAM untuk membagikan nama domain kustom pribadi Anda, lihat[Penyedia API: Bagikan nama domain kustom pribadi Anda menggunakan AWS RAM](apigateway-private-custom-domains-provider-share.md).

Untuk membagikan nama domain kustom pribadi menggunakan API Gateway AWS CLI, Anda memberikan Akun AWS akses lain untuk membuat asosiasi akses nama domain dan memanggil nama domain kustom pribadi Anda. Anda melakukannya dengan memperbarui `managementPolicy` untuk layanan API Gateway Management dan `policy` untuk `execute-api` layanan untuk nama domain kustom pribadi Anda. Anda juga perlu memberikan akses untuk titik akhir VPC konsumen API dalam kebijakan sumber daya untuk setiap pribadi yang APIs dipetakan ke nama domain kustom pribadi Anda.

Konsumen API masih perlu membuat asosiasi akses nama domain di akun mereka sendiri antara titik akhir VPC mereka dan nama domain kustom pribadi Anda. Anda tidak dapat melakukan ini untuk mereka.

## Berikan akses ke nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-share-cli-allow"></a>

**Untuk memberikan akses ke nama domain kustom pribadi Anda**

1. Untuk memperbarui layanan Manajemen Gateway API, Anda membuat file JSON yang berisi operasi tambalan untuk memperbarui kebijakan. `managementPolicy` Berikut ini `patch-managementPolicy.json` menggantikan kebijakan saat ini `managementPolicy` dengan contoh kebijakan yang memberikan Akun AWS 111122223333 dan 444455556666 akses untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi. `private.example.com`

   ```
   [{
       "op": "replace",
       "path": "/managementPolicy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\", \"arn:aws:iam::444455556666:root\"]},\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

    [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)Perintah berikut memperbarui `managementPolicy` penggunaan`patch-managementPolicy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

   Setelah Anda memberikan akses, Anda perlu memberi tahu konsumen API bahwa mereka dapat membentuk asosiasi akses nama domain. Jika Anda menggunakan AWS RAM, AWS RAM akan melakukan langkah ini untuk Anda.

1. Untuk memperbarui `execute-api` layanan, Anda membuat file JSON yang berisi operasi tambalan untuk memperbarui kebijakan. `policy` Berikut ini `patch-policy.json` menggantikan kebijakan saat ini `policy` dengan contoh kebijakan yang memberikan dua titik akhir VPC untuk memanggil nama domain kustom pribadi. `private.example.com`

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\": {\"StringNotEquals\": {\"aws:SourceVpce\": [\"vpce-abcd1234\",\"vpce-xyzz0000\"]}}}]}"
   }]
   ```

    Gunakan [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)perintah berikut untuk memperbarui `policy` penggunaan`patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Tolak akses ke nama domain kustom pribadi Anda
<a name="apigateway-private-custom-domains-provider-share-cli-deny"></a>

Untuk berhenti membagikan nama domain kustom pribadi Anda, Anda harus menolak asosiasi akses nama domain antara nama domain kustom pribadi Anda dan titik akhir VPC konsumen API.

**Untuk menolak akses ke nama domain kustom pribadi Anda**

1. `reject-domain-name-access-association`Perintah berikut menolak asosiasi akses nama domain.

   ```
   aws apigateway reject-domain-name-access-association \
       --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234 \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
   ```

1. Ubah `patch-managementPolicy.json` untuk menghapus akses untuk akun penyedia API untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi Anda. Berikut ini `patch-managementPolicy.json` menghapus satu akun dari`managementPolicy`:

   ```
   [{
        "op": "replace",
        "path": "/managementPolicy",
        "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

   [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)Perintah berikut untuk memperbarui `managementPolicy` penggunaan`patch-managementPolicy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

1. Ubah `patch-policy.json` untuk menghapus akses untuk titik akhir VPC penyedia API untuk memanggil nama domain kustom pribadi Anda. Berikut ini `patch-policy.json` menghapus ID titik akhir VPC dari: `policy`

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234\"}}}]}"
   }]
   ```

   [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html)Perintah berikut memperbarui `policy` penggunaan`patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Contoh kebijakan yang digunakan dalam prosedur ini
<a name="apigateway-private-custom-domains-provider-share-cli-policies"></a>

Bagian berikut menunjukkan contoh kebijakan yang digunakan dalam prosedur sebelumnya.

Contoh kebijakan berikut adalah untuk layanan Amazon API Gateway Management. `managementPolicy` Kebijakan ini memberikan Akun AWS 111122223333 dan 444455556666 akses untuk membuat asosiasi akses nama domain dengan nama domain kustom pribadi. `private.example.com` 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "111122223333",
                    "444455556666"
                ]
            },
            "Action": "apigateway:CreateAccessAssociation",
            "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+a1b2c3"
        }
    ]
}
```

------

Contoh kebijakan berikut adalah kebijakan `policy` untuk `execute-api` layanan. Kebijakan ini memberikan `vpce-abcd1234` titik akhir VPC `vpce-xyzz0000` dan akses untuk memanggil nama domain kustom pribadi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpce": [
                        "vpce-abcd1234",
                        "vpce-xyzz0000"
                    ]
                }
            }
        }
    ]
}
```

------

# Konsumen API: Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi yang dibagikan dengan Anda
<a name="apigateway-private-custom-domains-consumer-create"></a>

Prosedur berikut menunjukkan cara menggunakan nama domain pribadi di tempat lain Akun AWS. Bergantung pada hubungan kepercayaan Anda dengan penyedia API, AWS RAM mungkin menyelesaikan beberapa tugas untuk Anda.

Jika Anda berbeda Akun AWS dari nama domain kustom pribadi, Anda hanya dapat mengaitkan titik akhir VPC Anda dengan nama domain kustom pribadi dan memanggilnya. Anda tidak dapat melihat `policy` atau parameter lain dari nama domain kustom pribadi.

## Prasyarat
<a name="apigateway-private-custom-domains-consumer-prerequisites"></a>

Prasyarat berikut diperlukan untuk menggunakan nama domain kustom pribadi di tempat lain: Akun AWS
+ VPC dan titik akhir VPC untuk layanan ini. `execute-api` VPC Anda harus memiliki `enableDnsHostnames` dan `enableDnsSupport` disetel ke. `true`
+ Kami menyarankan Anda mengonfigurasi setidaknya dua Availability Zone per titik akhir VPC.

## (Opsional) Terima berbagi sumber daya domain kustom pribadi
<a name="apigateway-private-custom-domains-consumer-accept-resource-share"></a>

Jika penyedia API Anda digunakan AWS RAM untuk membuat pembagian sumber daya, Anda memiliki **waktu 12 jam** untuk menerimanya. Jika Anda berada di organisasi yang AWS Organizations sama menggunakan penyedia API, pembagian akan diterima secara otomatis. Jika Anda berada di organisasi yang mengaktifkan sumber daya bersama otomatis, sumber daya akan dibagikan secara otomatis dengan Anda.

------
#### [ Konsol Manajemen AWS ]

*Untuk menggunakan Konsol Manajemen AWS, lihat [Menerima dan menolak undangan berbagi sumber daya](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-invitations.html) di Panduan Pengguna.AWS RAM * 

------
#### [ AWS CLI ]

Untuk menemukan semua sumber daya yang dibagikan dengan Anda, gunakan [get-resource-share-invitations](https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html)perintah berikut:

```
aws ram get-resource-share-invitations \
    --region us-west-2
```

Gunakan ARN berbagi sumber daya yang dihasilkan untuk menerima undangan berbagi sumber daya. [accept-resource-share-invitation](https://docs.aws.amazon.com/cli/latest/reference/ram/accept-resource-share-invitation.html)Perintah berikut menerima pembagian sumber daya.

```
aws ram accept-resource-share-invitation \
    --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE \
    --region us-west-2
```

------

## Kaitkan titik akhir VPC Anda dengan nama domain kustom pribadi bersama
<a name="apigateway-private-custom-domains-consumer-associate"></a>

Karena nama domain kustom pribadi tidak unik, Anda mengaitkan titik akhir VPC Anda dengan nama domain khusus ARN yang unik. Setelah Anda membuat asosiasi akses nama domain Anda, dibutuhkan waktu hingga 15 menit agar titik akhir VPC Anda berhasil memanggil nama domain kustom pribadi Anda. Jika Anda memiliki titik akhir VPC yang Anda gunakan untuk mengakses nama domain kustom publik, jangan menggunakannya untuk membuat asosiasi akses nama domain apa pun. 

------
#### [ Konsol Manajemen AWS ]

**Untuk mengaitkan titik akhir VPC Anda dengan nama domain kustom pribadi bersama**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Asosiasi akses nama domain**.

1. Pilih **Buat asosiasi akses nama domain**.

1. Untuk **ARN nama Domain**, pilih nama domain ARN yang dibagikan penyedia API dengan Anda.

   Nama domain ARN mungkin tidak muncul di daftar dropdown. Anda dapat menggunakan AWS RAM konsol untuk melihat nama domain yang dibagikan dengan Anda dan kemudian menyalin nama domain ARN dan memasukkannya ke bidang ini.

1. Untuk **ID titik akhir VPC, pilih ID titik** akhir VPC yang ingin Anda bentuk asosiasi akses nama domain.

1. Pilih **Buat asosiasi akses nama domain**.

------
#### [ AWS CLI ]

Karena nama domain kustom pribadi tidak unik, Anda mengaitkan titik akhir VPC Anda dengan nama domain khusus ARN yang unik. Untuk menemukan nama domain ARN, gunakan salah satu perintah berikut.

1.   
**AWS RAM**  
Perintah [list-resources](https://docs.aws.amazon.com/cli/latest/reference/ram/list-resources.html) berikut mencantumkan sumber daya yang dibagikan dengan Anda. Penyedia API harus telah menggunakan AWS RAM untuk berbagi domain kustom pribadi mereka dengan Anda untuk menggunakan perintah ini.  

   ```
   aws ram list-resources \
       --resource-owner OTHER-ACCOUNTS \
       --region us-west-2
       --resource-type apigateway:Domainnames
   ```  
**API Gateway**  
`get-domain-names`Perintah berikut mencantumkan semua nama domain kustom pribadi yang dimiliki oleh orang lain Akun AWS yang dapat Anda bentuk asosiasi akses nama domain dengan.  

   ```
   aws apigateway get-domain-names \
       --resource-owner OTHER_ACCOUNTS \
       --region us-west-2
   ```

1.  Setelah Anda mengambil ARN, gunakan API Gateway untuk membuat asosiasi akses nama domain antara titik akhir VPC Anda dan nama domain kustom pribadi bersama. Gunakan perintah `create-domain-name-access-association` berikut:

   ```
   aws apigateway create-domain-name-access-association \
       --access-association-source-type VPCE \
       --access-association-source 'vpce-1a2b3c4d5e6f1a2b3' \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
   ```

   Outputnya akan terlihat seperti berikut ini.

   ```
   {
       "domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg", 
       "accessAssociationSource": "vpce-1a2b3c4d5e6f1a2b3",
       "accessAssociationSourceType": "VPCE",
       "domainNameARN" : "arn:aws:apigateway:us-west-1:111122223333:/domainnames/private.example.com+a1b2c3"
   }
   ```

------

Setelah Anda mengaitkan titik akhir VPC Anda dengan nama domain kustom pribadi, konfirmasikan bahwa penyedia API Anda telah memperbarui kebijakan nama domain kustom pribadi mereka untuk mengizinkan titik akhir VPC Anda memanggil nama domain mereka. Untuk informasi selengkapnya, lihat [Izinkan akun lain untuk memanggil nama domain kustom pribadi Anda](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update).

## Buat zona yang dihosting Route 53
<a name="apigateway-private-custom-domains-consumer-create-route-53-private-hosted-zone"></a>

Untuk menyelesaikan nama domain kustom pribadi, Anda perlu membuat zona host pribadi Route 53. Zona yang dihosting adalah wadah yang menyimpan informasi tentang bagaimana Anda ingin merutekan lalu lintas untuk domain dalam satu atau lebih VPCs tanpa mengekspos sumber daya Anda ke internet. Untuk informasi selengkapnya, lihat [Menggunakan zona yang di-hosting pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html).

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakannya Konsol Manajemen AWS, lihat [Membuat zona yang dihosting pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) di *Panduan Pengembang Amazon Route 53*.

Untuk **Nama**, gunakan nama nama domain kustom pribadi. Untuk **ID VPC**, gunakan VPC yang berisi titik akhir VPC yang Anda gunakan untuk asosiasi akses nama domain Anda.

------
#### [ AWS CLI ]

[create-hosted-zone](https://docs.aws.amazon.com/cli/latest/reference/route53/create-hosted-zone.html)Perintah 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.

------

## Membuat catatan DNS Route 53
<a name="apigateway-private-custom-domains-consumer-create-route-53-record"></a>

Setelah membuat zona yang dihosting, Anda membuat catatan untuk menyelesaikan domain kustom pribadi. Dalam contoh ini, Anda membuat tipe catatan A. Jika Anda menggunakan IPv6 untuk titik akhir VPC Anda, buat jenis catatan AAAA. Jika Anda menggunakan dualstack untuk titik akhir VPC Anda, buat AAAA dan tipe catatan A.

------
#### [ Konsol Manajemen AWS ]

Untuk menggunakannya Konsol Manajemen AWS, lihat [Merutekan lalu lintas ke API Amazon API Gateway menggunakan nama domain Anda](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html).

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 hostnya dari ID zona host yang diberikan, pertama-tama buat 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
        }
      }
    }
  ]
}
```

[change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html)Perintah berikut membuat catatan DNS untuk nama domain kustom pribadi:

```
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 Dihosting Route 53 dari catatan DNS yang ditetapkan di akun Anda. Nilai `change-batch` parameter menunjuk ke file JSON.

------

## Langkah selanjutnya untuk konsumen API
<a name="apigateway-private-custom-domains-consumer-next-steps"></a>

Anda sekarang dapat menjalankan API pribadi Anda sendiri Akun AWS. Di VPC Anda, Anda dapat menggunakan perintah curl berikut untuk mengakses nama domain kustom pribadi Anda.

```
curl https://private.example.com/v1
```

Untuk informasi selengkapnya tentang cara lain untuk menjalankan API pribadi Anda, lihat[Memanggil API pribadi menggunakan nama domain khusus](apigateway-private-api-test-invoke-url.md#apigateway-private-custom-domains-provider-invoke).

# Konsumen API: Hapus asosiasi akses nama domain Anda dengan nama domain kustom pribadi
<a name="apigateway-private-custom-domains-consumer-delete-domain-name-access-association"></a>

Jika Anda adalah konsumen API, kapan saja, Anda dapat menghapus sumber daya asosiasi akses. Penyedia API tidak dapat menghapus asosiasi akses nama domain untuk Anda.

Kami menyarankan agar Anda selalu menghapus asosiasi akses nama domain saat Anda tidak lagi menggunakannya.

------
#### [ Konsol Manajemen AWS ]

**Untuk menghapus asosiasi akses nama domain**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Di panel navigasi utama, pilih **Asosiasi akses nama domain**.

1. Pilih asosiasi akses nama domain Anda, lalu pilih **Hapus**.

1. Konfirmasikan pilihan Anda, lalu pilih **Hapus**.

------
#### [ AWS CLI ]

`delete-access-association`Perintah berikut menghapus asosiasi akses:

```
aws apigateway delete-domain-name-access-association \
    --domain-name-access-association-arn 'arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg'
```

------

# Buat nama domain khusus untuk APIs penggunaan pribadi CloudFormation
<a name="apigateway-private-custom-domains-cfn"></a>

Contoh CloudFormation template berikut membuat API pribadi dan nama domain kustom pribadi, memetakan API pribadi ke nama domain kustom, dan kemudian membuat asosiasi akses nama domain. Anda perlu menyediakan titik akhir VPC, nama domain, dan sertifikat ARN Anda sendiri.

Pertimbangan berikut dapat memengaruhi penggunaan Anda CloudFormation untuk membuat nama domain kustom pribadi:
+ Anda tidak dapat menolak asosiasi akses nama domain menggunakan CloudFormation. Untuk menolak asosiasi akses nama domain, gunakan file. AWS CLI
+ Gunakan `AWS::ApiGateway::DomainNameV2` CloudFormation properti untuk membuat nama domain kustom pribadi.
+ Gunakan `AWS::ApiGateway:BasePathMappingV2` CloudFormation properti untuk membuat pemetaan jalur dasar.

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  EndpointID:
    Type: String
    Default: vpce-abcd1234567efg
    Description: A VPC endpoint with enableDnsHostnames and enableDnsSupport set to true.
  DomainName:
    Type: String
    Default: private.example.com
    Description: A domain name that you own.
  CertificateArn:
    Type: String
    Default: arn:aws:acm:us-west-2:123456789:certificate/abcd-000-1234-0000-000000abcd
    Description: An ACM certificate that covers the domain name.
Resources:
  PrivateApi:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      EndpointConfiguration:
        Types:
          - PRIVATE
        VpcEndpointIds:
          - !Ref EndpointID
      Name: private-api
      Policy:
        Statement:
          - Action: 'execute-api:Invoke'
            Effect: Allow
            Principal: '*'
            Resource: 'execute-api:/*'
          - Action: 'execute-api:Invoke'
            Condition:
              StringNotEquals:
                'aws:SourceVpce': !Ref EndpointID
            Effect: Deny
            Principal: '*'
            Resource: 'execute-api:/*'
        Version: 2012-10-17		 	 	 
  PrivateApiDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    Properties:
      RestApiId: !Ref PrivateApi
      Description: Private API deployment
    DependsOn:
      - PrivateApiMethod
  PrivateApiStage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
      RestApiId: !Ref PrivateApi
      DeploymentId: !Ref PrivateApiDeployment
      StageName: prod
  PrivateApiMethod: 
    Type: 'AWS::ApiGateway::Method'
    Properties:
      HttpMethod: ANY
      ResourceId: !GetAtt PrivateApi.RootResourceId
      RestApiId: !Ref PrivateApi
      AuthorizationType: NONE
      Integration:
        Type: MOCK
        RequestTemplates:
          application/json: "{\"statusCode\": 200}"
        IntegrationResponses:
          - StatusCode: '200'
      MethodResponses:
        - StatusCode: '200'
  PrivateDomainName:
    Type: AWS::ApiGateway::DomainNameV2
    Properties:
      DomainName: !Ref DomainName
      CertificateArn: !Ref CertificateArn
      EndpointConfiguration:
        Types:
          - PRIVATE
      SecurityPolicy: TLS_1_2
      Policy:
        Statement:
            - Action: 'execute-api:Invoke'
              Effect: Allow
              Principal: '*'
              Resource: 'execute-api:/*'
            - Action: 'execute-api:Invoke'
              Condition:
                StringNotEquals:
                  'aws:SourceVpce': !Ref EndpointID
              Effect: Deny
              Principal: '*'
              Resource: 'execute-api:/*'
        Version: 2012-10-17		 	 	 
  PrivateBasePathMapping:
    Type: AWS::ApiGateway::BasePathMappingV2
    DependsOn:
      - PrivateApiStage
    Properties:
      BasePath: prod
      DomainNameArn: !GetAtt PrivateDomainName.DomainNameArn
      RestApiId: !Ref PrivateApi
      Stage: prod
  DomainNameAccessAssociation: 
    Type: AWS::ApiGateway::DomainNameAccessAssociation
    Properties:
      DomainNameArn: !GetAtt PrivateDomainName.DomainNameArn
      AccessAssociationSource: !Ref EndpointID
      AccessAssociationSourceType: VPCE
```