リスク

SSH のポートが公開されていることで、不正に SSH でログインされてしまうリスクがあります。

不正に SSH でログインされてしまうと、ネットワーク内にあるリソース(例えばデータベース)にアクセスされたり、インスタンスにアタッチされている IAM Role などの権限を使って不正に AWS のリソースを操作されたり、ということが起こってしまいます。

パブリックIPを持つインスタンスの場合にアクセス元を制限するのはもちろんのこと、パブリックIPを持たない閉じたネットワークのインスタンスであってもある程度制限をかけることが望ましいとされています。(ネットワークに侵入された際のリスクを軽減できるため)

また、現在使用されていないセキュリティグループであっても、将来誤って利用されてリスクを生み出す可能性があるので、ご対応されることを推奨しております。

上記のリスクを認識上で問題ないと判断された場合は、この項目を無視するように設定していただいてかまいません。

事故例

個人情報が流出したり、場合によっては不正に EC2 インスタンスが建てられてビットコインのマイニングをされ法外な請求がきたり、といった事故に繋がります。

特に個人情報の漏洩のケースでは被害額が数億円にのぼることも珍しくありません。

対応方法

普段の業務で SSH をしていたり、システムで SSH をしているものが存在している場合、影響が出てしまう可能性があります。必ず影響範囲を確認した上で作業してください。

  1. https://console.aws.amazon.com/ec2 からEC2のマネジメントコンソースにアクセスします。

  2. サイドバーの「ネットワーク & セキュリティ」セクションの「セキュリティグループ」をクリックします。

    スクリーンショット 2023-02-28 15.42.36.png

  3. 対象のセキュリティグループを選択し、「インバウンドのルールを編集」をクリックします。

    スクリーンショット 2023-02-28 15.45.30.png

  4. 以下の処理を行います。

    このルールを変更することで、安全にし診断項目をクリアすることができます。

    安全にするために以下の2つの選択肢があります。

    1. SSH を許可するルールを削除する
    2. IP 制限をかける

    1. SSH を許可するルールを削除する

    これはもっとも簡単な方法です。削除することで、SSH する入り口を完全に防ぐことができます。

    ただし、SSH できなくなると困るケースが多いと思うので、不用意に SSH のポートが開放されている場合にのみ行ってください。また、3の「【難】Session Manager を用いて SSH Agent なしにインスタンスにログインする」の方法でも、SSH のインバウンドルールを削除することが可能です。

    ①の「削除」をクリックし、②の「ルールを保存」をクリックすることで変更が完了です。

    スクリーンショット 2022-03-06 16.18.22.png

    2. IP 制限をかける

    アクセスできる IP を制限することで、十分に安全にすることができます。

    IP を指定する方法が2つあります。

    ひとつは、①の「ソース」のドロップダウンメニューより、「マイIP」をクリックする方法です。これを選択すると、自動的に現在の IP アドレスがソースとして指定され、指定した IP 以外からのアクセスが制限されます。

    もうひとつは、②で特定の IP アドレスまたは、IP アドレスの範囲を指定して制限する方法です。サブネットマスクによる指定に対応しています。

    変更が終われば、③の「ルールの保存」をクリックして完了です。

    スクリーンショット 2022-03-06 16.21.50.png

参考情報

AWS Session Manager を用いると、パブリックIP のアサインおよび SSH のポート開放を行うことなくインスタンスにログインすることが可能です。(設定次第では ssh コマンドから秘密鍵を用いて SSH することが可能です。)

AWS Session Manager は IAM でのアクセス制御を行うことができるので、アクセス制御も簡単に行うことができます。有効化するための設定や前提条件は少々煩雑ですが、構築できると不正アクセスされにくい構成にできるのでおすすめです。

ステップ 8: (オプション) Session Manager を通して SSH 接続のアクセス許可を有効にして制御する