説明
API Gateway REST APIの公開エンドポイントは、インターネット経由の呼び出し経路を提供します。公開されているだけで匿名呼び出しが許可されるわけではなく、認証やリソースポリシーもアクセスを制御します。
すべてのAPIを非公開にする必要はありませんが、内部専用APIの公開エンドポイントは不要な露出となります。探索や認証を回避する試みの対象になるおそれがあります。
想定される影響
- 内部専用APIがインターネットから発見される可能性があります。
- スキャン、認証の試行、不正なリクエストが公開の入口に届くおそれがあります。
- 意図したVPCの境界ではなく、公開エンドポイントのポリシーにアクセス制御が依存する場合があります。
対処方法
- 内部専用APIには
endpoint_configuration.types = ["PRIVATE"]を設定してください。 - 公開APIと内部専用APIを分け、それぞれに適切なアクセスポリシーを適用してください。
- インターフェイスVPCエンドポイント、セキュリティグループ、DNSを準備してください。リソースポリシーとVPCエンドポイントポリシーで呼び出し範囲を制限し、認証と正当な呼び出しを検証してください。
例
同じREST APIのエンドポイント種別を比較する抜粋です。PRIVATE APIに必要なVPCエンドポイント、リソースポリシー、メソッドと認証設定は省略しています。
変更前
hcl
resource "aws_api_gateway_rest_api" "example" {
name = "regional-example"
endpoint_configuration {
types = ["REGIONAL"]
}
}
変更後
hcl
resource "aws_api_gateway_rest_api" "example" {
name = "regional-example"
endpoint_configuration {
types = ["PRIVATE"]
}
}
説明:
- 変更前:
REGIONALは公開ネットワークからの呼び出し経路を提供します。 - 変更後:
PRIVATEはVPCエンドポイント経由の経路を使います。必要な接続とリソースポリシーを構成する必要があり、呼び出し元の認証の代わりにはなりません。