

# API Gateway のプライベート REST API
<a name="apigateway-private-apis"></a>

プライベート API は、Amazon VPC 内からのみ呼び出せる REST API です。API にアクセスするには、[インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)を使用します。これは、VPC で作成するエンドポイントネットワークインターフェイスです。インターフェイスエンドポイントは、プライベート IP アドレスを経由して AWS PrivateLink サービスにプライベートにアクセスできるテクノロジーである AWS により強化されています。

Direct Connect を使用してオンプレミスネットワークから Amazon VPC への接続を確立し、この接続を介してプライベート API にアクセスすることも可能です。いずれの場合も、プライベート API へのトラフィックは安全な接続を使用し、パブリックインターネットからは隔離されます。トラフィックは、Amazon ネットワークを離れません。

## プライベート API のベストプラクティス
<a name="apigateway-private-api-best-practices"></a>

プライベート API を作成するときは、以下のベストプラクティスを使用することをお勧めします。
+ 単一の VPC エンドポイントを使用して複数のプライベート API にアクセスします。これにより、必要な VPC エンドポイントの数が減少します。
+ VPC エンドポイントを API に関連付けます。これにより、Route 53 エイリアス DNS レコードが作成され、プライベート API の呼び出しが簡単になります。
+ VPC のプライベート DNS をオンにします。VPC のプライベート DNS を有効にすると、`Host`または `x-apigw-api-id` ヘッダーを渡さずに、VPC 内で API を呼び出すことができます。

  プライベート DNS を有効にすると、パブリック API のデフォルトエンドポイントにアクセスできなくなります。パブリック API のデフォルトエンドポイントにアクセスするには、プライベート DNS をオフにして、VPC 内のプライベート API ごとにプライベートホストゾーンを作成し、Route 53 で必要なレコードをプロビジョニングできます。これにより、プライベート API を解決するとともに、VPC からパブリックデフォルトエンドポイントを呼び出すことができます。詳細については、「[プライベートホストゾーンの作成](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html)」を参照してください。
+ プライベート API へのアクセスを特定の VPC または VPC エンドポイントに制限します。API のリソースポリシーに `aws:SourceVpc` 条件や `aws:SourceVpce` 条件を追加して、アクセスを制限します。
+ データ境界を最も安全にするには、VPC エンドポイントポリシーを作成できます。これにより、プライベート API を呼び出せる VPC エンドポイントへのアクセスを制御します。

## プライベート API に関する考慮事項
<a name="apigateway-private-api-considerations"></a>

以下の考慮事項は、プライベート API の使用に影響する可能性があります。
+ REST API のみがサポートされています。
+ プライベート API をエッジ最適化 API に変換することはできません。
+ プライベート API は、TLS 1.2 のみをサポートします。以前の TLS バージョンはサポートされていません。
+ HTTP/2 プロトコルを使用してリクエストを行う場合、リクエストは自動的に HTTP/1.1 プロトコルを使用するように変更されます。
+ IPv4 アドレスでのみプライベート API を呼び出せるようにプライベート API の IP アドレスタイプを設定することはできません。サポートされているのはデュアルスタックのみです。詳細については、「[API Gateway の REST API の IP アドレスタイプ](api-gateway-ip-address-type.md)」を参照してください。
+ プライベート API を使用してトラフィックを送信するには、Amazon VPC でサポートされているすべての IP アドレスタイプを使用します。VPC エンドポイントの設定を構成することで、デュアルスタックおよび IPv6 トラフィックを送信できます。この設定は API Gateway を使用して変更することはできません。詳細については、「[VPC の IPv6 サポートを追加する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html)」を参照してください。
+ プライベート API の VPC エンドポイントには、他のインターフェイス VPC エンドポイントと同じ制限が適用されます。詳細については、「*AWS PrivateLink ガイド*」の「[Access an AWS service using an interface VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)」を参照してください。API Gateway を共有 VPC および共有サブネットで使用する方法の詳細については、**「AWS PrivateLink ガイド」の「[共有サブネット](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets)」を参照してください。

## プライベート API に関する次のステップ
<a name="apigateway-private-api-next-steps"></a>

 プライベート API を作成し、VPC エンドポイントを関連付ける方法については、「[プライベート API の作成](apigateway-private-api-create.md)」を参照してください。チュートリアルに従って、AWS マネジメントコンソール の依存関係とプライベート API を CloudFormation で作成するには、「[チュートリアル: プライベート REST API を作成する](private-api-tutorial.md)」を参照してください。