EC2セキュリティグループの潜在的な問題であると私が考えるものの明確化を探しています。
Linuxインスタンスに接続するためのセキュリティグループを設定しています。 HTTPおよびHTTPSアクセス用の「どこでも」ルールを作成しました。
私のSSHルールについて、AmazonチュートリアルではインバウンドアクセスをパブリックIPアドレスに制限するを指定する必要があると述べています。
取得できないのは、パブリックIPアドレスが動的である場合、どのように安全または機能するかです。
IPアドレスは動的なので、ISPがパブリックIPを変更し、インスタンスにSSH接続できなくなった場合はどうなりますか?
使用しているセットアップガイドへのリンク: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-Amazon-ec2 .html (「セキュリティグループの作成」のステップ7は私にとって問題と思われるものです)
取得できないのは、パブリックIPアドレスが動的である場合、どのように安全または機能するかです。
このソリューションは、IPが頻繁に変更されない場合、または短時間だけアクセスする必要がある場合に機能します。 SSHは、提供するCIDRの外部のトラフィックにさらされないため、セキュリティがさらに強化されます。
特定のCIDRが機能しない場合は、ISPが使用する可能性が高いボードのCIDR範囲を試してみることもできます。これにより、インターネットの大部分からのアクセスが制限され、セキュリティの点で有利です。
iSPがパブリックIPを変更し、インスタンスにSSH接続できなくなった場合はどうなりますか?
AWSコンソールにログインするか、CLIを使用してセキュリティグループルールをオンザフライで更新できます。
CLIと直接対話するスクリプトを作成できます。現在のIPに対してPort 22 rule
をチェックし、異なる場合はそれを更新するものと同じくらい簡単です。もちろん、そのようなスクリプトを実行すると、セキュリティに関する質問が増える可能性があります:)
Sshトラフィックを信頼できるIPソースのみに制限するのが現実的であるのは良いことですが、sshを安全にするのは秘密鍵と賢明な設定の使用です。
考慮すべき重要な項目:
また、ブルートフォース攻撃に関連する「ノイズ」を取り除くためにいくつかのことを行うことができます。
SSHサーバーへのアクセスをIPアドレスで制限することは問題ありませんが、SSHはセキュリティのためにこれに依存していません。パスワードログインを無効にした場合(PasswordAUthentication no
)秘密鍵認証のみを使用してください。秘密鍵なしでは誰も入ることができません。安全です。
したがって、言い換えれば、ファイアウォールルールについて心配したくない場合は、心配する必要はありません。
この古い質問には、最近の解決策がいくつかあります。
AWS内から: AWS Lambdaを使用してAmazon CloudFrontおよびAWS WAFのセキュリティグループを自動的に更新する方法
動的ソースからのリモート更新(node.jsスクリプト): aws-ec2-ssh-secgroup-update node script
動的ソースからのリモート更新(Pythonスクリプト): 現在のパブリックIPをセキュリティグループに自動的に追加して、特定のポートでのトラフィックを許可する
ISPが割り当て可能なすべてのIPのスーパーセットを表すセキュリティグループにCIDR範囲を追加できます。
それか、AWS APIを使用してセキュリティグループを動的に更新します。
aws_ipadd コマンドを使用して、AWSセキュリティグループルールを簡単に更新および管理し、パブリックIPが変更されるたびにポートでホワイトリストに登録できます。
$ aws_ipadd my_project_ssh
Your IP 10.10.1.14/32 and Port 22 is whitelisted successfully.
$ aws_ipadd my_project_ssh
Modifying existing rule...
Removing old whitelisted IP '10.10.1.14/32'.
Whitelisting new IP '10.4.10.16/32'.
Rule successfully updated!