Amazon の Beanstalk でシステムを実行しています。サーバーへのアクセスを HTTPS のみに制限したいと考えています。環境設定で HTTP をブロックすると、Beanstalk DNS を介したアクセスが妨げられます。ただし、いずれかのサーバーのパブリック IP (または名前) を知っている人は、HTTP 経由で直接アクセスできます。LB はリクエストをポート 80 に転送しているように見えるため、セキュリティ グループを変更してポート 80 を削除することはできません。HTTP アクセスを LB からのみに制限する簡単な方法はありますか? ありがとう
3 に答える
少なくとも 2 つのオプションがあります。
1 - ロード バランサからのみポート 80 でのアクセスを許可するセキュリティ グループ ポリシーを設定します。重要!!!インスタンスのセキュリティ グループでロード バランサーの IP を使用しないでください。代わりに、ロード バランサーのセキュリティ グループ ID を使用してください。
2 - インスタンスからパブリック IP を削除します。すべての EC2 インスタンスにプライベート IP があり、ELB にパブリック IP がある場合は問題ありません。
これは、Elastic Beanstalk 環境プロパティであるEC2 Security Groupsを介して実行できるはずです。
デフォルトでは、これにより任意の IP アドレスからポート 80 への接続が許可されますが、そのルールを削除するか、独自の IP アドレスに置き換えることができます (テスト目的で)。
これに失敗すると、アプリケーション レベルですべての HTTP トラフィックを HTTPS に再ルーティングするか、単純に CGI プロパティ *server_port_secure* をテストして応答を拒否することができます。
はい、ヘルスチェックを機能させるには http/80 を開く必要があります。オプションは、他のすべてのリクエスト (ヘルスチェック URL を除く) を https を使用するようにリダイレクトすることです。この方法では、ポートは開いていますが、「安全でない方法でデータを提供することはありません」。