

# プライベート API のカスタムドメイン名に関する API プロバイダーと API コンシューマーのタスク
<a name="apigateway-private-custom-domains-associations"></a>

プライベートカスタムドメイン名を作成すると、その作成者は *API プロバイダー*となります。プライベートカスタムドメイン名を呼び出すと、その呼び出し者は *API コンシューマー*となります。プライベートカスタムドメイン名はお客様独自の AWS アカウント または別の AWS アカウント で使用できます。

次のセクションでは、API プロバイダーと API コンシューマーがプライベートカスタムドメイン名を使用するために必要なタスクについて説明します。お客様独自の AWS アカウント でプライベートカスタムドメイン名を呼び出す場合は、API プロバイダーと API コンシューマーの両方になります。別の AWS アカウント でプライベートカスタムドメイン名を呼び出す場合は、AWS Organizations での API プロバイダーと API コンシューマー間の信頼関係に応じて、AWS RAM が一部のタスクを代行してくれることがあります。

## API プロバイダーのタスク
<a name="apigateway-private-custom-domains-associations-provider"></a>

API プロバイダーはプライベート API を作成し、カスタムドメイン名にマッピングします。

 API プロバイダーは、プライベートカスタムドメイン名を保護するために 2 つのリソースポリシーを管理します。1 つ目のポリシーは `execute-api` サービス用で、どの VPC エンドポイントがプライベートカスタムドメイン名を呼び出せるかを制御します。プライベートカスタムドメイン名の設定では、これは `policy` と呼ばれます。

2 つ目のポリシーは Amazon API Gateway Management サービス用で、他の AWS アカウント のどの VPC エンドポイントとプライベートカスタムドメイン名との間にドメイン名アクセスの関連付けを作成できるかを制御します。VPC エンドポイントには、プライベートカスタムドメイン名を呼び出すために、ドメイン名アクセスの関連付けを作成する必要があります。プライベートカスタムドメイン名の設定では、これは `managementPolicy` と呼ばれます。このポリシーは AWS RAM または API Gateway を使用して更新できます。他の AWS アカウント の VPC エンドポイントにカスタムドメイン名の呼び出しを許可する予定がない場合は、`managementPolicy` を編集しません。

API プロバイダーである場合は、以下の手順に従います。

1. プライベート API を作成します。

1. VPC エンドポイントにプライベート API へのアクセスを許可するようにプライベート API の `policy` を更新します。

1. プライベートカスタムドメイン名を作成します。

1. VPC エンドポイントにプライベートカスタムドメイン名へのアクセスを許可するようにプライベートカスタムドメイン名の `policy` を更新します。

1. プライベート API からプライベートカスタムドメイン名にトラフィックを送信するためのベースパスマッピングまたはルーティングルールを作成します。詳細については、「[API Gateway のカスタムドメイン名を使用して API にトラフィックを送信します。](rest-api-routing-mode.md)」を参照してください。

他の AWS アカウント の API コンシューマーにプライベートカスタムドメイン名へのアクセスを許可するには、以下の手順に従います。

1. 他のアカウントの API コンシューマーが VPC エンドポイントをプライベートカスタムドメイン名に関連付けられるように、プライベートカスタムドメイン名の `managementPolicy` を更新します。これを行うには、次の方法を使用します。  
**AWS RAM**  
AWS RAM により、API コンシューマーと API プロバイダーが同じ組織に属しており、AWS Organizations を使用している場合、リソース共有は自動的に承認されます。それ以外の場合は、API コンシューマーがリソース共有を承認するまで待つ必要があります。**プライベートカスタムドメイン名を共有するには、AWS RAM を使用することをお勧めします。**  
**API ゲートウェイ**  
API Gateway では、AWS CLI のみがサポートされています。パッチオペレーションを使用してプライベートカスタムドメイン名を更新し、`managementPolicy` に関するお客様独自のポリシードキュメントを提供する必要があります。

1. プライベートカスタムドメイン名とそれにマッピングされているすべてのプライベート API に関する `policy` を、API コンシューマーの VPC エンドポイントにそれらへのアクセスを許可するように更新します。

API を他の AWS アカウント に提供する手順については、「[API プロバイダー: AWS RAM を使用してプライベートカスタムドメイン名を共有する](apigateway-private-custom-domains-provider-share.md)」を参照してください。

## API コンシューマーのタスク
<a name="apigateway-private-custom-domains-associations-consumer"></a>

API コンシューマーは VPC エンドポイントをドメイン名 ARN に関連付けて、プライベートカスタムドメイン名を呼び出します。API コンシューマーは API Gateway API を作成する必要はありません。

API コンシューマーである場合は、以下の手順に従います。

1. Amazon VPC 内でプライベート DNS を有効にして VPC エンドポイントを作成します。

1. (オプション - AWS RAM を使用する場合) リソース共有から **12 時間以内**に、AWS RAM を使用してプライベートカスタムドメインのリソース共有を承認します。お客様と API プロバイダーが同じ組織に属している場合、リソース共有は自動的に承認されます。

1. プライベートカスタムドメイン名 ARN を取得します。プライベートカスタムドメイン名の URL は一意ではないため、プライベートカスタムドメイン名 ARN を使用して、VPC エンドポイントとプライベートカスタムドメイン名との間にドメイン名アクセスの関連付けを作成します。AWS RAM を使用して、プライベートカスタムドメイン名 ARN を取得できます。

1. API Gateway で、プライベートカスタムドメイン名 ARN を VPC エンドポイントに関連付けます。これにより、VPC エンドポイントとプライベートカスタムドメイン名との間に安全な接続が確立されます。トラフィックは、Amazon ネットワークを離れません。

1. API プロバイダーが VPC エンドポイントに、プライベートカスタムドメイン名とそれにマッピングされているすべてのプライベート API へのアクセスを許可するまで待ちます。お客様が API プロバイダーと API コンシューマーの両方である場合は、お客様が独自の VPC エンドポイントに、それらの API を呼び出すためのアクセスを許可します。

1. Route 53 プライベートホストゾーンと Route 53 レコードを作成し、Route 53 内でプライベートカスタムドメイン名を解決できるようにします。

別の AWS アカウント で API を使用する手順については、「[API コンシューマー: VPC エンドポイントを共有プライベートカスタムドメイン名に関連付ける](apigateway-private-custom-domains-consumer-create.md)」を参照してください。