共有AWSアカウントにいくつかのEC2インスタンスを設定していて、それらに互いにアクセスできるようにしたいと考えています。同時に、アカウントの他のインスタンスからのアクセスを禁止したいと思います。
セキュリティグループを作成し、ログイン用の「My IP」からのSSHアクセスを追加しました。これはうまく機能します。
ここで、SSH betweenすべてのインスタンスをSSHにする必要がありますが、すべてが同じセキュリティグループに含まれている場合でもできません。
どうやってやるの?
AWSにいくつかのクラスターをセットアップしていて、ノード間のSSHアクセスが必要ですよね?次の2つのオプションがあります。
素朴な方法は、各インスタンスのIPをセキュリティグループの受信リストに追加することです。ただし、クラスターに新しいインスタンスを追加するたびにSGを更新する必要があります。 (もしそうなら)。 これを行わないでください。完全を期すためだけに言及しました。
はるかに良いは、セキュリティグループID自体をトラフィックのソース。
SGはインバウンドフィルターであるだけでなく、すべてのアウトバウンドトラフィックにタグを付けることを理解することが重要です。同じまたは他のセキュリティグループ内の元のSG ID。
VPCのdefaultセキュリティグループを確認してください。あなたはおそらくこのようなものを見るでしょう:
ルールはセキュリティグループIDitselfを参照することに注意してください。
このルールを使用すると、セキュリティグループのメンバーであるホストから発生するすべてが、グループ内の他のすべてのメンバー/インスタンスによって受け入れられます。
あなたのケースでは、SSH、ICMP(ping
が必要な場合)、または必要なその他のポートに制限することができます。
また、Outboundタブを確認し、0.0.0.0/0
へのAll trafficのエントリがあることを確認します(ただし、特定のセキュリティニーズがあります)。そうでない場合、インスタンスは発信接続を開始できません。デフォルトではそこにあるはずです。
それが役に立てば幸い:)
インスタンス間のSSHを許可するために使用するセキュリティグループの構成で:
ソースがグループID自体であるSSHを有効にするルールを追加する必要があります。
例えば。セキュリティグループIDがsg-12345678
の場合、そのグループにルールを追加できます[〜#〜] ssh [〜#〜] from sg-12345678
。
また、Outboundタブに0.0.0.0/0
のルールがあることを確認します。そうでない場合、sg-12345678
へのSSHのルールがなければ、送信トラフィックがブロックされます。デフォルトでは、0.0.0.0/0
がそこにあるはずです。
割り当てたセキュリティグループにSSHアクセスを許可します。