

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

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

------