今回はAWSでEC2インスタンスを起動した際に、安全に使うために行った方が良いことについてお話ししたいと思います。
セキュリティグループのインバウンドルールを最小限にする
インバウンドルールというのは、そのEC2インスタンスにアクセスできるトラフィックに制限をするためのルールです。AWSでEC2インスタンスを起動する場合にセキュリティグループをEC2インスタンスに対して設定しますが、インバウンドルールを最低限必要なIPアドレス、ポートのみに限定することでEC2インスタンスを安全にすることができます。
下記のようにSSHのポートであれば「マイIP」を選択し、自分のIPアドレスからのアクセスのみを許可するようにします。
私は、過去にあまり知識の無い担当者が、適当に「すべてのトラフィック」を「任意の場所」から許可したために、そのEC2インスタンスが攻撃者に乗っ取られてしまったのを見たことがあります。
その攻撃者がそのEC2インスタンスを使って有名なサイトに攻撃をしかけてたことでそのサイトから苦情が来てしまい発覚しました。
ですので、インバウンドルールを「すべてのトラフィック」を「任意の場所」から許可してしまうのは大変危険ですので、絶対にしないでください。
EC2インスタンスを安全に使うために、セキュリティグループのインバウンドルールをできる限り最小限に限定することは、一番重要な対策です。
ただ、一般ユーザー向けにWebサーバを公開する場合など「任意の場所」に対してアクセスを許可しなければいけない場合もあるかと思います。
そのような場合は下記の対策も併せて行うことが重要です。
OSのパッケージを定期的に最新化する
OSのパッケージを定期的に最新化することも重要です。OSのパッケージは日々頻繁に更新されており、セキュリティ上の弱点が修正されています。
このセキュリティ上の弱点が存在したままだと、ゼロデイ攻撃というセキュリティパッチが適用されていないサーバを狙った攻撃を受けてしまいます。
過去にもこのゼロデイ攻撃により多くのクレジットカード情報の流出など大きなセキュリティ事故が発生しています。
クレジットカード業界のセキュリティ基準であるPCI DSS(Payment Card Industry Data Security Standard)では重要なセキュリティパッチについては1か月以内に適用することが求められています。
6.2 すべてのシステムコンポーネントとソフトウェアに、ベンダ提供のセキュリティパッチがインストールされ、既知の脆弱性から保護されている。重要なセキュリティパッチは、リリース後 1 カ月以内にインストールする。
Payment Card Industry(PCI)データセキュリティ基準
ですので、少なくとも1か月に一回は定期的にセキュリティパッチがリリースされていないか確認し、適用していく必要があります。
私はEC2インスタンスで利用するOSはAmazon Linuxが一番良いと思っています。
その理由は、AWSが責任を持ってセキュリティの弱点が無いようアップデートしてくれているパッケージを利用できるからです。
Amazon Linuxであれば下記のサイトでどのようなパッケージの更新が行われているか確認することができます。
Amazon Linuxの場合は下記のコマンドでパッケージの最新化を行います。
sudo yum update
更新されるパッケージが表示されたらyと入力しEnterを押して更新します。いくつかのパッケージはOS再起動しなければ変更が反映されませんので、適用後は念のためOSを再起動します。
複数人で使用する場合は、利用者ごとにOSユーザーを作成する
EC2インスタンスでLinuxを起動するとデフォルトの状態で1つユーザーが作成されています。
Amazon Linuxであればec2-userというユーザーが作成されており、CentOSの場合にはcentosユーザーです。
一人だけでサーバを使用する場合はそれで問題ありませんが、複数人が同じアカウントを共有してしまうともしセキュリティ事故があった場合に、誰がサーバにログインして、どういった操作を実行したかという履歴がわからなくなってしまうため、1人1ユーザーアカウントとした方が良いです。
Linuxサーバであれば下記のコマンドでユーザーの作成ができます。
sudo adduser (ユーザー名)
ユーザーの作成や公開鍵認証の設定方法については下記のAWSの資料も参考にしてください。