web-dev-qa-db-ja.com

AWS RDSインスタンスの静的IP / DNSエンドポイントにポート3306を開いていますか?

そのため、以前にこの質問をstackoverflowで質問しましたが、ネットワークベースの質問のように思われるため、ここでも質問する必要があると通知されました。同様の質問でserverfaultを検索し、これに遭遇しました one 2014年からですが、さらに拡張したいと思いました。

したがって、私が自分のオフィスで取り組んでいるプロジェクトの場合、私が設定したAWS RDS MySQLサーバーとの間でデータを格納および取得する.NETアプリケーションがあります。私が遭遇した問題は、仕事のネットワークでポート3306が開いていないことです。会社のネットワークに接続していないときに問題なく機能するため、AWS RDSサーバーの問題ではないことがわかります。 (たとえば、私が私の電話からホットスポットする場合、それは機能します)

私はネットワーキング部門に連絡を取り、彼らがこのポートを開くことで何ができるかを調べました。このAWS RDSインスタンスに静的IPを設定してファイアウォールルールを追加し、ポート3306をこの静的IPのみに許可する方法があるかどうか尋ねられました。彼らは、セキュリティ上の理由から、ポート3306を完全に開くのではなく、サーバーのIPアドレスに基づいてポートを開くことのみを望んでいます。彼らは、ポート3306を開くと、オフィスネットワーク全体に対して開かれ、私のコンピューターのIPだけのために開くことはできないと述べました。

AWSダッシュボードで、RDSインスタンスの静的IPの設定について何も表示されませんでした。 ITによると、静的IPが必要な理由は、エンドポイントDNSに関連付けられているIPが提供するIPが変更された場合、この変更に対応するためにファイアウォール設定を調整する必要がないためです。

1)RDSインスタンスでIPを静的に設定することは可能ですか? (上記のリンクに基づいて、それは可能ではないようですが、とにかく何かが変わったことを尋ねたかったのですが、以前の投稿が2014年からだったので可能になりました)

2)AWSが提供するこの特定のDNSエンドポイントに対してのみポートを開くことは可能ですか?私のITチームは、彼らがURLへのポートを開くことは不可能であり、それはIP(静的であるため変更されない)である必要があると述べています。これは本当にそうなのか、これを回避する方法はありますか?私のstackoverflowの投稿からの response に基づいて、彼はそれが可能であることを次のように述べています:

ITチームに、RDSインスタンスURLのポート3306にファイアウォールルールを作成するように指示すると、正常に機能します。

可能であれば、ITネットワーキングチームに提供して、正しい方向に導くための追加情報はありますか?クラウドでホストされるMySQLサーバーの人気を考えると、これはかなり一般的なタスクである必要があり、この問題を抱えるのは私だけではないのではないかと思います。

ありがとうございました!

2
iamdapro

かなりロックダウンされたネットワーク環境があり、ポート3306宛ての送信接続が許可されていないようです。「従来の」ファイアウォールでは、IPをターゲットとするACLのみが許可され、DNS名は許可されないため、RDS URLは機能しないようです。これらのファイアウォールはレイヤー3および4で動作するため、レイヤー7の概念であるDNS名の概念はありません。

会社が特に3306への接続をブロックしている場合、それは既知のポートであるため、別のポートへの接続を開くことができる可能性があります。その後、デフォルトではなくそのポートを使用するようにインスタンスを再作成できます。

代わりに、阻止がレイヤ3および4で実装された包括的なポリシーである場合、今のところ運が悪い場合があります。インスタンスのIPアドレスをDNSルックアップしてACLで使用することもできますが、そのアドレスは変更される可能性があります。

通常、私はクライアントシステムのIPアドレスのためだけに接続を開くように依頼しますが、あなたが言うように、彼らはすでにそれを拒否しました。これは、静的IPではなくDHCPを使用してシステムにアドレスを割り当てるためであると思います。おそらく、システムに静的IPを要求するか、静的IPを使用して企業サーバーでアプリケーションを実行することができます。これにより、受け入れ可能な1対多のACLを完成させることができます。

2
phoebus

AWSがフェイルオーバーの理由でIPではなくDNS名を使用することをネットワーク関係者に伝えます。企業環境で使用しているファイアウォールは、IPではなくDNS名を参照できるため、IPではなくエンドポイントのDNS名を参照できます。

そうでない場合は、エラスティックIPを使用するec2インスタンスでhaproxyを使用できますが、これに正当なビジネスユースケースがある場合は、DNS名を使用するようにプッシュすることをお勧めします。 Haproxyは、もう1つの障害点を追加します。

1

RDSインスタンスには固定IPアドレスがありません。これにより、他のインスタンスへのフェイルオーバーを提供できます。

EC2プロキシサーバーをVPCの任意のポートに配置して、トラフィックをRDSインスタンスに送信できます。これは、TCP純粋にパケットを渡すプロキシであり、Nginxで実行できます。私は試していませんが、機能するはずです。EC2インスタンスに静的IP(AWS用語ではエラスティックIP)を指定します) 、およびNginxはホスト名でRDSインスタンスにプロキシできます。t2.nanoで十分かもしれませんが、より多くのネットワーク帯域幅を備えた大規模なサーバーでは、大量のトラフィックを取得する場合にパフォーマンスが向上する可能性があります。

エフェメラルポート範囲 も開くことを忘れないでください。基本的に、インバウンドポート32768から61000は、AWSからのトラフィックを許可する必要があります。

クラウドデータベースを備えたオンプレミスアプリケーションがある理由を知りたいと思います。アプリケーションをローカルで実行できる場合は、データベースをローカルで実行してみませんか?または、アプリケーションとデータベースの両方をAWSで実行しますか?複数のアプリケーションがデータベースの不整合、デッドロック、または競合状態を引き起こす可能性があります。

ハウツー

NginxをTCPプロキシ 彼らのウェブサイトで として設定する方法の詳細を読むことができます。Tinyプロキシを設定する方法に関するガイドがあります以前に聞いた)AWSで ここ

セキュリティについても考慮する必要があるため、これを支援するためにAWSコンサルタントを短時間雇うのが最善の方法です。

0
Tim