Paypal IPN用のWebフックを作成しましたが、ポート80/443のPaypalサーバーからエンドポイントをホストするEC2インスタンスへのアクセスのみを許可したいと思います。
EC2セキュリティグループコンソールでは、IP /範囲でのみフィルタリングできます。 PaypalがIPアドレスをランダムに予告なしに変更すると言っているので、これは適切ではありません。そのため、ホスト名を使用する必要があります。
IPブロックの拡大などを推奨する回答を見てきましたが、実際の直接的な解決策はありません。提案された解決策の1つは、AWSAPIを使用してセキュリティグループを更新することでした。
これは最良のオプションですか?私にできることは、Paypalホストが解決する現在のIPを最後の既知のIPアドレスと比較するためのスケジュールされたタスクを持つことです。それらが異なる場合は、AWSEC2グループを更新します。
同じマシンでそのタスクを実行します。マシンが停止すると、エンドポイントにアクセスできなくなるためです。
これが最も適切な解決策ですか?同様の問題を抱えている自宅でも同じことをします。
セキュリティグループはホスト名フィルタリングを行わず、AWS内のIP範囲またはその他の論理参照のみを行います。
AWSはSG用のAPIを提供しているため、IPアドレスの変更に応じて更新できますが、その方法は本番サービスには少し壊れやすいように聞こえます。
他にも多くのオプションがありますが、もう少し作業が必要です。たとえば、プロキシを設定すると、たとえばホスト名を介してアクセスを制御できます。
AWSは、ここでsquidのインストールと構成に関する詳細なガイドを提供しています https://aws.Amazon.com/articles/6884321864843201
これは、何が関係しているのかを理解するための簡単なスニペットです。
$ Sudo vim /etc/squid/squid.conf
acl s3 dstdom_regex .*s3\.amazonaws\.com
acl s3 dstdom_regex .*s3\.ap-southeast-2\.amazonaws\.com
acl s3 dstdom_regex .*s3\.ap-southeast-1\.amazonaws\.com
http_access allow localnet s3
$ Sudo service squid restart
フィルタリングはAWSレベルで行う必要がありますか?インスタンスに(またはIGWとインスタンス間の別のインスタンスとして)追加のソフトウェアファイアウォールを追加できます。Pfsenseはホスト名に基づいてファイアウォールのブロックを許可する必要があります。